# pylint: disable=too-many-lines
# pylint: disable=line-too-long
"""The trigger commands module.

These commands are used in the following models:
LPD6, MSO4, 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:

::

    - TRIGger FORCe
    - TRIGger:A:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
    - TRIGger:A:BUS:B<x>:ARINC429A:CONDition?
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?
    - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
    - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?
    - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?
    - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue <QString>
    - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?
    - TRIGger:A:BUS:B<x>:AUDio:CONDition {SOF|DATa}
    - TRIGger:A:BUS:B<x>:AUDio:CONDition?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
    - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
    - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
    - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?
    - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
    - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?
    - TRIGger:A:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
    - TRIGger:A:BUS:B<x>:CAN:CONDition?
    - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?
    - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet <NR1>
    - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?
    - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
    - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:CAN:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:CAN:DATa:VALue?
    - TRIGger:A:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
    - TRIGger:A:BUS:B<x>:CAN:ERRType?
    - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?
    - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?
    - TRIGger:A:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
    - TRIGger:A:BUS:B<x>:CAN:FRAMEtype?
    - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
    - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?
    - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue <QString>
    - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
    - TRIGger:A:BUS:B<x>:ETHERnet:CONDition?
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
    - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?
    - TRIGger:A:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
    - TRIGger:A:BUS:B<x>:FLEXray:CONDition?
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?
    - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
    - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?
    - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
    - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
    - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
    - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?
    - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
    - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?
    - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue <QString>
    - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?
    - TRIGger:A:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
    - TRIGger:A:BUS:B<x>:I2C:CONDition?
    - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?
    - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:I2C:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:I2C:DATa:VALue?
    - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
    - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?
    - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue <QString>
    - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?
    - TRIGger:A:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
    - TRIGger:A:BUS:B<x>:I3C:CONDition?
    - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?
    - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:I3C:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:I3C:DATa:VALue?
    - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
    - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?
    - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
    - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?
    - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
    - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?
    - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
    - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?
    - TRIGger:A:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
    - TRIGger:A:BUS:B<x>:LIN:CONDition?
    - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:LIN:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:LIN:DATa:VALue?
    - TRIGger:A:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
    - TRIGger:A:BUS:B<x>:LIN:ERRTYPE?
    - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue <QString>
    - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
    - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?
    - TRIGger:A:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
    - TRIGger:A:BUS:B<x>:MIL1553B:CONDition?
    - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?
    - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
    - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
    - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?
    - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?
    - TRIGger:A:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
    - TRIGger:A:BUS:B<x>:RS232C:CONDition?
    - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe <NR3>
    - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?
    - TRIGger:A:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
    - TRIGger:A:BUS:B<x>:SENT:CONDition?
    - TRIGger:A:BUS:B<x>:SENT:ERRType CRC
    - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
    - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?
    - TRIGger:A:BUS:B<x>:SENT:ERRType?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?
    - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?
    - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
    - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?
    - TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
    - TRIGger:A:BUS:B<x>:SPI:CONDition?
    - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:SPI:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:SPI:DATa:VALue?
    - TRIGger:A:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
    - TRIGger:A:BUS:B<x>:SPMI:CONDition?
    - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe <NR2>
    - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?
    - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?
    - TRIGger:A:BUS:B<x>:SPMI:NORESPonse <Qstring>
    - TRIGger:A:BUS:B<x>:SPMI:NORESPonse?
    - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?
    - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
    - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?
    - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
    - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?
    - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
    - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?
    - TRIGger:A:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
    - TRIGger:A:BUS:B<x>:SVID:CONDition?
    - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
    - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?
    - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
    - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?
    - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
    - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?
    - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue <QString>
    - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?
    - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
    - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?
    - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?
    - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue <QString>
    - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?
    - TRIGger:A:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
    - TRIGger:A:BUS:B<x>:USB:CONDition?
    - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue <QString>
    - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?
    - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet <NR1>
    - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?
    - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?
    - TRIGger:A:BUS:B<x>:USB:DATa:SIZe <NR1>
    - TRIGger:A:BUS:B<x>:USB:DATa:SIZe?
    - TRIGger:A:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
    - TRIGger:A:BUS:B<x>:USB:DATa:TYPe?
    - TRIGger:A:BUS:B<x>:USB:DATa:VALue <QString>
    - TRIGger:A:BUS:B<x>:USB:DATa:VALue?
    - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue <QString>
    - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?
    - TRIGger:A:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
    - TRIGger:A:BUS:B<x>:USB:ERRType?
    - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
    - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?
    - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber <QString>
    - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?
    - TRIGger:A:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
    - TRIGger:A:BUS:B<x>:USB:SPECIALType?
    - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
    - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?
    - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
    - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?
    - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
    - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?
    - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
    - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?
    - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
    - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?
    - TRIGger:A:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
    - TRIGger:A:BUS:B<x>:USB:TOKENType?
    - TRIGger:A:BUS:SOUrce B<x>
    - TRIGger:A:BUS:SOUrce?
    - TRIGger:A:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
    - TRIGger:A:EDGE:COUPling?
    - TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
    - TRIGger:A:EDGE:SLOpe?
    - TRIGger:A:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
    - TRIGger:A:EDGE:SOUrce?
    - TRIGger:A:HOLDoff:BY {TIMe|RANDom}
    - TRIGger:A:HOLDoff:BY?
    - TRIGger:A:HOLDoff:TIMe <NR3>
    - TRIGger:A:HOLDoff:TIMe?
    - TRIGger:A:LEVel:CH<x> <NR3>
    - TRIGger:A:LEVel:CH<x>?
    - TRIGger:A:LOGICPattern:A {HIGH|LOW|X}
    - TRIGger:A:LOGICPattern:A?
    - TRIGger:A:LOGICQUALification {AND|OR|NAND|NOR}
    - TRIGger:A:LOGICQUALification?
    - TRIGger:A:LOGIc:DELTatime <NR3>
    - TRIGger:A:LOGIc:DELTatime?
    - TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
    - TRIGger:A:LOGIc:FUNCtion?
    - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
    - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?
    - TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
    - TRIGger:A:LOGIc:POLarity?
    - TRIGger:A:LOGIc:USECLockedge {OFF|ON|0|1}
    - TRIGger:A:LOGIc:USECLockedge?
    - TRIGger:A:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
    - TRIGger:A:LOGIc:WHEn?
    - TRIGger:A:LOWerthreshold:CH<x> <NR3>
    - TRIGger:A:LOWerthreshold:CH<x>?
    - TRIGger:A:MODe {AUTO|NORMal}
    - TRIGger:A:MODe?
    - TRIGger:A:PULSEWidth:HIGHLimit <NR3>
    - TRIGger:A:PULSEWidth:HIGHLimit?
    - TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
    - TRIGger:A:PULSEWidth:LOGICQUALification?
    - TRIGger:A:PULSEWidth:LOWLimit <NR3>
    - TRIGger:A:PULSEWidth:LOWLimit?
    - TRIGger:A:PULSEWidth:POLarity {NEGative|POSitive}
    - TRIGger:A:PULSEWidth:POLarity?
    - TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
    - TRIGger:A:PULSEWidth:SOUrce?
    - TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
    - TRIGger:A:PULSEWidth:WHEn?
    - TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
    - TRIGger:A:RUNT:LOGICQUALification?
    - TRIGger:A:RUNT:POLarity {EITher|NEGative|POSitive}
    - TRIGger:A:RUNT:POLarity?
    - TRIGger:A:RUNT:SOUrce {CH<x>}
    - TRIGger:A:RUNT:SOUrce?
    - TRIGger:A:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
    - TRIGger:A:RUNT:WHEn?
    - TRIGger:A:RUNT:WIDth <NR3>
    - TRIGger:A:RUNT:WIDth?
    - TRIGger:A:SETHOLDLogicval:A {INCLude|DONTInclude}
    - TRIGger:A:SETHOLDLogicval:A?
    - TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
    - TRIGger:A:SETHold:CLOCk:EDGE?
    - TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
    - TRIGger:A:SETHold:CLOCk:SOUrce?
    - TRIGger:A:SETHold:HOLDTime <NR3>
    - TRIGger:A:SETHold:HOLDTime?
    - TRIGger:A:SETHold:SETTime <NR3>
    - TRIGger:A:SETHold:SETTime?
    - TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
    - TRIGger:A:TIMEOut:LOGICQUALification?
    - TRIGger:A:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
    - TRIGger:A:TIMEOut:POLarity?
    - TRIGger:A:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
    - TRIGger:A:TIMEOut:SOUrce?
    - TRIGger:A:TIMEOut:TIMe <NR3>
    - TRIGger:A:TIMEOut:TIMe?
    - TRIGger:A:TRANsition:DELTatime <NR3>
    - TRIGger:A:TRANsition:DELTatime?
    - TRIGger:A:TRANsition:LOGICQUALification {ON|OFF}
    - TRIGger:A:TRANsition:LOGICQUALification?
    - TRIGger:A:TRANsition:POLarity {EITher|NEGative|POSitive}
    - TRIGger:A:TRANsition:POLarity?
    - TRIGger:A:TRANsition:SOUrce {CH<x>}
    - TRIGger:A:TRANsition:SOUrce?
    - TRIGger:A:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
    - TRIGger:A:TRANsition:WHEn?
    - TRIGger:A:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
    - TRIGger:A:TYPe?
    - TRIGger:A:UPPerthreshold:CH<x> <NR3>
    - TRIGger:A:UPPerthreshold:CH<x>?
    - TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}
    - TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
    - TRIGger:A:WINdow:LOGICQUALification?
    - TRIGger:A:WINdow:SOUrce {CH<x>}
    - TRIGger:A:WINdow:SOUrce?
    - TRIGger:A:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
    - TRIGger:A:WINdow:WHEn?
    - TRIGger:A:WINdow:WIDth <NR3>
    - TRIGger:AUXLevel {<NR3>|ECL|TTL}
    - TRIGger:AUXLevel?
    - TRIGger:B:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
    - TRIGger:B:BUS:B<x>:ARINC429A:CONDition?
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?
    - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
    - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?
    - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?
    - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue <QString>
    - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?
    - TRIGger:B:BUS:B<x>:AUDio:CONDition {SOF|DATa}
    - TRIGger:B:BUS:B<x>:AUDio:CONDition?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
    - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
    - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
    - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?
    - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
    - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?
    - TRIGger:B:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
    - TRIGger:B:BUS:B<x>:CAN:CONDition?
    - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?
    - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet <NR1>
    - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?
    - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
    - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:CAN:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:CAN:DATa:VALue?
    - TRIGger:B:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
    - TRIGger:B:BUS:B<x>:CAN:ERRType?
    - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?
    - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?
    - TRIGger:B:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
    - TRIGger:B:BUS:B<x>:CAN:FRAMEtype?
    - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
    - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?
    - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue <QString>
    - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
    - TRIGger:B:BUS:B<x>:ETHERnet:CONDition?
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
    - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?
    - TRIGger:B:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
    - TRIGger:B:BUS:B<x>:FLEXray:CONDition?
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?
    - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
    - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?
    - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
    - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
    - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
    - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?
    - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
    - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?
    - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue <QString>
    - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?
    - TRIGger:B:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
    - TRIGger:B:BUS:B<x>:I2C:CONDition?
    - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?
    - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:I2C:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:I2C:DATa:VALue?
    - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
    - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?
    - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue <QString>
    - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?
    - TRIGger:B:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
    - TRIGger:B:BUS:B<x>:I3C:CONDition?
    - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
    - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?
    - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:I3C:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:I3C:DATa:VALue?
    - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
    - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?
    - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
    - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?
    - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
    - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?
    - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
    - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?
    - TRIGger:B:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
    - TRIGger:B:BUS:B<x>:LIN:CONDition?
    - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:LIN:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:LIN:DATa:VALue?
    - TRIGger:B:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
    - TRIGger:B:BUS:B<x>:LIN:ERRTYPE?
    - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue <QString>
    - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
    - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?
    - TRIGger:B:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
    - TRIGger:B:BUS:B<x>:MIL1553B:CONDition?
    - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?
    - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
    - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
    - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?
    - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?
    - TRIGger:B:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
    - TRIGger:B:BUS:B<x>:RS232C:CONDition?
    - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe <NR3>
    - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?
    - TRIGger:B:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
    - TRIGger:B:BUS:B<x>:SENT:CONDition?
    - TRIGger:B:BUS:B<x>:SENT:ERRType CRC
    - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
    - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?
    - TRIGger:B:BUS:B<x>:SENT:ERRType?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?
    - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?
    - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
    - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?
    - TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
    - TRIGger:B:BUS:B<x>:SPI:CONDition?
    - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:SPI:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:SPI:DATa:VALue?
    - TRIGger:B:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
    - TRIGger:B:BUS:B<x>:SPMI:CONDition?
    - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe <NR2>
    - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?
    - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?
    - TRIGger:B:BUS:B<x>:SPMI:NORESPonse <Qstring>
    - TRIGger:B:BUS:B<x>:SPMI:NORESPonse?
    - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?
    - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
    - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?
    - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
    - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?
    - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
    - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?
    - TRIGger:B:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
    - TRIGger:B:BUS:B<x>:SVID:CONDition?
    - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
    - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?
    - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
    - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?
    - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
    - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?
    - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue <QString>
    - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?
    - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
    - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?
    - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?
    - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue <QString>
    - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?
    - TRIGger:B:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
    - TRIGger:B:BUS:B<x>:USB:CONDition?
    - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue <QString>
    - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?
    - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet <NR1>
    - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?
    - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?
    - TRIGger:B:BUS:B<x>:USB:DATa:SIZe <NR1>
    - TRIGger:B:BUS:B<x>:USB:DATa:SIZe?
    - TRIGger:B:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
    - TRIGger:B:BUS:B<x>:USB:DATa:TYPe?
    - TRIGger:B:BUS:B<x>:USB:DATa:VALue <QString>
    - TRIGger:B:BUS:B<x>:USB:DATa:VALue?
    - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue <QString>
    - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?
    - TRIGger:B:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
    - TRIGger:B:BUS:B<x>:USB:ERRType?
    - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
    - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?
    - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber <QString>
    - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?
    - TRIGger:B:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
    - TRIGger:B:BUS:B<x>:USB:SPECIALType?
    - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
    - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?
    - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
    - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?
    - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
    - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?
    - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
    - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?
    - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
    - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?
    - TRIGger:B:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
    - TRIGger:B:BUS:B<x>:USB:TOKENType?
    - TRIGger:B:BUS:SOUrce B<x>
    - TRIGger:B:BUS:SOUrce?
    - TRIGger:B:BY {EVENTS|TIMe}
    - TRIGger:B:BY?
    - TRIGger:B:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
    - TRIGger:B:EDGE:COUPling?
    - TRIGger:B:EDGE:SLOpe {RISe|FALL|EITher}
    - TRIGger:B:EDGE:SLOpe?
    - TRIGger:B:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
    - TRIGger:B:EDGE:SOUrce?
    - TRIGger:B:EVENTS:COUNt <NR1>
    - TRIGger:B:EVENTS:COUNt?
    - TRIGger:B:LEVel:CH<x> <NR3>
    - TRIGger:B:LEVel:CH<x>?
    - TRIGger:B:LOGICPattern:B {HIGH|LOW|X}
    - TRIGger:B:LOGICPattern:B?
    - TRIGger:B:LOGIc:DELTatime <NR3>
    - TRIGger:B:LOGIc:DELTatime?
    - TRIGger:B:LOGIc:FUNCtion {AND|NANd|NOR|OR}
    - TRIGger:B:LOGIc:FUNCtion?
    - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
    - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?
    - TRIGger:B:LOGIc:POLarity {POSitive|NEGative|EITher}
    - TRIGger:B:LOGIc:POLarity?
    - TRIGger:B:LOGIc:USECLockedge {OFF|ON|0|1}
    - TRIGger:B:LOGIc:USECLockedge?
    - TRIGger:B:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
    - TRIGger:B:LOGIc:WHEn?
    - TRIGger:B:LOWerthreshold:CH<x> <NR3>
    - TRIGger:B:LOWerthreshold:CH<x>?
    - TRIGger:B:PULSEWidth:HIGHLimit <NR3>
    - TRIGger:B:PULSEWidth:HIGHLimit?
    - TRIGger:B:PULSEWidth:LOGICQUALification {ON|OFF}
    - TRIGger:B:PULSEWidth:LOGICQUALification?
    - TRIGger:B:PULSEWidth:LOWLimit <NR3>
    - TRIGger:B:PULSEWidth:LOWLimit?
    - TRIGger:B:PULSEWidth:POLarity {NEGative|POSitive}
    - TRIGger:B:PULSEWidth:POLarity?
    - TRIGger:B:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
    - TRIGger:B:PULSEWidth:SOUrce?
    - TRIGger:B:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
    - TRIGger:B:PULSEWidth:WHEn?
    - TRIGger:B:RESET SETLevel
    - TRIGger:B:RESET:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
    - TRIGger:B:RESET:EDGE:COUPling?
    - TRIGger:B:RESET:EDGE:LEVel <NR3>
    - TRIGger:B:RESET:EDGE:SLOpe {RISe|FALL|EITher}
    - TRIGger:B:RESET:EDGE:SLOpe?
    - TRIGger:B:RESET:EDGE:SOUrce {CH<x>|CH<x>_D<x>}
    - TRIGger:B:RESET:EDGE:SOUrce?
    - TRIGger:B:RESET:TIMEOut:TIMe <NR3>
    - TRIGger:B:RESET:TIMEOut:TIMe?
    - TRIGger:B:RESET:TYPe {NONe|TIMEOut|EDGE}
    - TRIGger:B:RESET:TYPe?
    - TRIGger:B:RUNT:LOGICQUALification {ON|OFF}
    - TRIGger:B:RUNT:LOGICQUALification?
    - TRIGger:B:RUNT:POLarity {EITher|NEGative|POSitive}
    - TRIGger:B:RUNT:POLarity?
    - TRIGger:B:RUNT:SOUrce {CH<x>}
    - TRIGger:B:RUNT:SOUrce?
    - TRIGger:B:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
    - TRIGger:B:RUNT:WHEn?
    - TRIGger:B:RUNT:WIDth <NR3>
    - TRIGger:B:RUNT:WIDth?
    - TRIGger:B:SETHOLDLogicval:B {INCLude|DONTInclude}
    - TRIGger:B:SETHOLDLogicval:B?
    - TRIGger:B:SETHold:CLOCk:EDGE {FALL|RISe}
    - TRIGger:B:SETHold:CLOCk:EDGE?
    - TRIGger:B:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
    - TRIGger:B:SETHold:CLOCk:SOUrce?
    - TRIGger:B:SETHold:HOLDTime <NR3>
    - TRIGger:B:SETHold:HOLDTime?
    - TRIGger:B:SETHold:SETTime <NR3>
    - TRIGger:B:SETHold:SETTime?
    - TRIGger:B:STATE {ON|OFF|<NR1>}
    - TRIGger:B:STATE?
    - TRIGger:B:TIMEOut:LOGICQUALification {ON|OFF}
    - TRIGger:B:TIMEOut:LOGICQUALification?
    - TRIGger:B:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
    - TRIGger:B:TIMEOut:POLarity?
    - TRIGger:B:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
    - TRIGger:B:TIMEOut:SOUrce?
    - TRIGger:B:TIMEOut:TIMe <NR3>
    - TRIGger:B:TIMEOut:TIMe?
    - TRIGger:B:TIMe <NR3>
    - TRIGger:B:TIMe?
    - TRIGger:B:TRANsition:DELTatime <NR3>
    - TRIGger:B:TRANsition:DELTatime?
    - TRIGger:B:TRANsition:LOGICQUALification {ON|OFF}
    - TRIGger:B:TRANsition:LOGICQUALification?
    - TRIGger:B:TRANsition:POLarity {EITher|NEGative|POSitive}
    - TRIGger:B:TRANsition:POLarity?
    - TRIGger:B:TRANsition:SOUrce {CH<x>}
    - TRIGger:B:TRANsition:SOUrce?
    - TRIGger:B:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
    - TRIGger:B:TRANsition:WHEn?
    - TRIGger:B:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
    - TRIGger:B:TYPe?
    - TRIGger:B:UPPerthreshold:CH<x> <NR3>
    - TRIGger:B:UPPerthreshold:CH<x>?
    - TRIGger:B:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}
    - TRIGger:B:WINdow:LOGICQUALification {ON|OFF}
    - TRIGger:B:WINdow:LOGICQUALification?
    - TRIGger:B:WINdow:SOUrce {CH<x>}
    - TRIGger:B:WINdow:SOUrce?
    - TRIGger:B:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
    - TRIGger:B:WINdow:WHEn?
    - TRIGger:B:WINdow:WIDth <NR3>
    - TRIGger:HYSTeresis:USER:STATe {ON|OFF|1|0}
    - TRIGger:HYSTeresis:USER:STATe?
    - TRIGger:HYSTeresis:USER:VALue <NR1>
    - TRIGger:HYSTeresis:USER:VALue?
    - TRIGger:STATE?
    - TRIGger?
"""  # noqa: E501
from typing import Dict, Optional, TYPE_CHECKING

from .._helpers import (
    DefaultDictPassKeyToFactory,
    SCPICmdRead,
    SCPICmdWrite,
    ValidatedChannel,
    ValidatedDynamicNumberCmd,
)

if TYPE_CHECKING:
    from tm_devices.drivers.pi.pi_device import PIDevice


class TriggerState(SCPICmdRead):
    """The ``TRIGger:STATE`` command.

    **Description:**
        - This query-only command returns the current state of the triggering system.

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

    **SCPI Syntax:**

    ::

        - TRIGger:STATE?
    """


class TriggerHysteresisUserValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:HYSTeresis:USER:VALue`` command.

    **Description:**
        - This command sets or returns the height of the user-defined trigger hysteresis zone in
          volts.

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

    **SCPI Syntax:**

    ::

        - TRIGger:HYSTeresis:USER:VALue <NR1>
        - TRIGger:HYSTeresis:USER:VALue?

    **Info:**
        - ``<NR1>`` sets the height of the hysteresis zone in volts.
    """


class TriggerHysteresisUserState(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:HYSTeresis:USER:STATe`` command.

    **Description:**
        - This command enables or disables user-defined trigger hysteresis.

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

    **SCPI Syntax:**

    ::

        - TRIGger:HYSTeresis:USER:STATe {ON|OFF|1|0}
        - TRIGger:HYSTeresis:USER:STATe?

    **Info:**
        - ``ON`` enables user-defined trigger hysteresis.
        - ``OFF`` disables user-defined trigger hysteresis.
        - ``1`` enables user-defined trigger hysteresis.
        - ``0`` disables user-defined trigger hysteresis.
    """


class TriggerHysteresisUser(SCPICmdRead):
    """The ``TRIGger:HYSTeresis:USER`` command tree.

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

    Properties:
        - ``.state``: The ``TRIGger:HYSTeresis:USER:STATe`` command.
        - ``.value``: The ``TRIGger:HYSTeresis:USER:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._state = TriggerHysteresisUserState(device, f"{self._cmd_syntax}:STATe")
        self._value = TriggerHysteresisUserValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def state(self) -> TriggerHysteresisUserState:
        """Return the ``TRIGger:HYSTeresis:USER:STATe`` command.

        **Description:**
            - This command enables or disables user-defined trigger hysteresis.

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

        **SCPI Syntax:**

        ::

            - TRIGger:HYSTeresis:USER:STATe {ON|OFF|1|0}
            - TRIGger:HYSTeresis:USER:STATe?

        **Info:**
            - ``ON`` enables user-defined trigger hysteresis.
            - ``OFF`` disables user-defined trigger hysteresis.
            - ``1`` enables user-defined trigger hysteresis.
            - ``0`` disables user-defined trigger hysteresis.
        """
        return self._state

    @property
    def value(self) -> TriggerHysteresisUserValue:
        """Return the ``TRIGger:HYSTeresis:USER:VALue`` command.

        **Description:**
            - This command sets or returns the height of the user-defined trigger hysteresis zone in
              volts.

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

        **SCPI Syntax:**

        ::

            - TRIGger:HYSTeresis:USER:VALue <NR1>
            - TRIGger:HYSTeresis:USER:VALue?

        **Info:**
            - ``<NR1>`` sets the height of the hysteresis zone in volts.
        """
        return self._value


class TriggerHysteresis(SCPICmdRead):
    """The ``TRIGger:HYSTeresis`` command tree.

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

    Properties:
        - ``.user``: The ``TRIGger:HYSTeresis:USER`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._user = TriggerHysteresisUser(device, f"{self._cmd_syntax}:USER")

    @property
    def user(self) -> TriggerHysteresisUser:
        """Return the ``TRIGger:HYSTeresis:USER`` command tree.

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

        Sub-properties:
            - ``.state``: The ``TRIGger:HYSTeresis:USER:STATe`` command.
            - ``.value``: The ``TRIGger:HYSTeresis:USER:VALue`` command.
        """
        return self._user


class TriggerBWindowWidth(SCPICmdWrite):
    """The ``TRIGger:B:WINdow:WIDth`` command.

    **Description:**
        - This command sets or queries the minimum width for a window violation. This command is
          equivalent to selecting Window Setup from the Trig menu, selecting Inside > Limit or
          Outside > Limit in the Trigger When box, and setting the Time Limit.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:WIDth value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:WINdow:WIDth <NR3>

    **Info:**
        - ``<NR3>`` is the minimum width for a window violation.
    """


class TriggerBWindowWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:WINdow:WHEn`` command.

    **Description:**
        - This command sets or queries the window trigger event. This command is equivalent to
          selecting Window Setup from the Trig menu and selecting from the Window Trigger When box.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:WINdow:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
        - TRIGger:B:WINdow:WHEn?

    **Info:**
        - ``OUTSIDEGreater`` specifies a trigger event when the signal leaves the window defined by
          the threshold levels for the time specified by Width.
        - ``INSIDEGreater`` specifies a trigger event when the signal enters the window defined by
          the threshold levels for the time specified by Width.
        - ``ENTERSWindow`` specifies a trigger event when the signal enters the window defined by
          the threshold levels.
        - ``EXITSWindow`` specifies a trigger event when the signal leaves the window defined by the
          threshold levels.
    """


class TriggerBWindowSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:WINdow:SOUrce`` command.

    **Description:**
        - This command sets or queries the source for a window trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:WINdow:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:WINdow:SOUrce {CH<x>}
        - TRIGger:B:WINdow:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the trigger source.
    """


class TriggerBWindowLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:WINdow:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a window trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:WINdow:LOGICQUALification?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:WINdow:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:WINdow:LOGICQUALification {ON|OFF}
        - TRIGger:B:WINdow:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the window trigger type uses logic qualification.
        - ``OFF`` specifies that the window trigger type does not use logic qualification.
    """


class TriggerBWindowCrossing(SCPICmdWrite):
    r"""The ``TRIGger:B:WINdow:CROSSIng`` command.

    **Description:**
        - This command sets or queries the window trigger threshold crossing of the selected trigger
          source. The threshold crossing selection is only effective when
          ``:TRIGger``:{A|B}``:WINdow:WHEn`` is INSIDEGreater or OUTSIDEGreater.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:CROSSIng value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

    **Info:**
        - ``UPPer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the upper threshold.
          If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument triggers when the
          signal remains above the upper threshold for longer than the time limit
          (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses downward through the upper
          threshold.
        - ``LOWer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the lower threshold.
          If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument triggers when the
          signal remains below the lower threshold for longer than the time limit
          (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses upwards through the lower
          threshold.
        - ``EITher`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
          triggers when the signal remains between the upper and lower thresholds for longer than
          the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through either the
          upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
          instrument triggers when the signal remains either above the upper threshold or below the
          lower threshold for longer than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and
          then crosses a threshold.
        - ``NONe`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through either the upper or
          lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument
          triggers when the signal remains outside the upper and lower thresholds for longer than
          the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through either the
          upper or lower threshold.
    """


class TriggerBWindow(SCPICmdRead):
    """The ``TRIGger:B:WINdow`` command tree.

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

    Properties:
        - ``.crossing``: The ``TRIGger:B:WINdow:CROSSIng`` command.
        - ``.logicqualification``: The ``TRIGger:B:WINdow:LOGICQUALification`` command.
        - ``.source``: The ``TRIGger:B:WINdow:SOUrce`` command.
        - ``.when``: The ``TRIGger:B:WINdow:WHEn`` command.
        - ``.width``: The ``TRIGger:B:WINdow:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crossing = TriggerBWindowCrossing(device, f"{self._cmd_syntax}:CROSSIng")
        self._logicqualification = TriggerBWindowLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._source = TriggerBWindowSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerBWindowWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = TriggerBWindowWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def crossing(self) -> TriggerBWindowCrossing:
        r"""Return the ``TRIGger:B:WINdow:CROSSIng`` command.

        **Description:**
            - This command sets or queries the window trigger threshold crossing of the selected
              trigger source. The threshold crossing selection is only effective when
              ``:TRIGger``:{A|B}``:WINdow:WHEn`` is INSIDEGreater or OUTSIDEGreater.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:CROSSIng value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

        **Info:**
            - ``UPPer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the
              upper threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
              instrument triggers when the signal remains above the upper threshold for longer than
              the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses downward
              through the upper threshold.
            - ``LOWer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the
              lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
              instrument triggers when the signal remains below the lower threshold for longer than
              the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses upwards through
              the lower threshold.
            - ``EITher`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through
              either the upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is
              OUTSIDEGreater, the instrument triggers when the signal remains either above the upper
              threshold or below the lower threshold for longer than the time limit
              (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses a threshold.
            - ``NONe`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through
              either the upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is
              OUTSIDEGreater, the instrument triggers when the signal remains outside the upper and
              lower thresholds for longer than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``)
              without crossing through either the upper or lower threshold.
        """
        return self._crossing

    @property
    def logicqualification(self) -> TriggerBWindowLogicqualification:
        """Return the ``TRIGger:B:WINdow:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a window trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:WINdow:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:WINdow:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:WINdow:LOGICQUALification {ON|OFF}
            - TRIGger:B:WINdow:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the window trigger type uses logic qualification.
            - ``OFF`` specifies that the window trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def source(self) -> TriggerBWindowSource:
        """Return the ``TRIGger:B:WINdow:SOUrce`` command.

        **Description:**
            - This command sets or queries the source for a window trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:WINdow:SOUrce?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:WINdow:SOUrce {CH<x>}
            - TRIGger:B:WINdow:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the trigger source.
        """
        return self._source

    @property
    def when(self) -> TriggerBWindowWhen:
        """Return the ``TRIGger:B:WINdow:WHEn`` command.

        **Description:**
            - This command sets or queries the window trigger event. This command is equivalent to
              selecting Window Setup from the Trig menu and selecting from the Window Trigger When
              box.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:WINdow:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:WINdow:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
            - TRIGger:B:WINdow:WHEn?

        **Info:**
            - ``OUTSIDEGreater`` specifies a trigger event when the signal leaves the window defined
              by the threshold levels for the time specified by Width.
            - ``INSIDEGreater`` specifies a trigger event when the signal enters the window defined
              by the threshold levels for the time specified by Width.
            - ``ENTERSWindow`` specifies a trigger event when the signal enters the window defined
              by the threshold levels.
            - ``EXITSWindow`` specifies a trigger event when the signal leaves the window defined by
              the threshold levels.
        """
        return self._when

    @property
    def width(self) -> TriggerBWindowWidth:
        """Return the ``TRIGger:B:WINdow:WIDth`` command.

        **Description:**
            - This command sets or queries the minimum width for a window violation. This command is
              equivalent to selecting Window Setup from the Trig menu, selecting Inside > Limit or
              Outside > Limit in the Trigger When box, and setting the Time Limit.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:B:WINdow:WIDth value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:WINdow:WIDth <NR3>

        **Info:**
            - ``<NR3>`` is the minimum width for a window violation.
        """
        return self._width


class TriggerBUpperthresholdChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:UPPerthreshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the specified channel upper trigger level. The CH<x> range is
          1 to 8 and depends on the number of analog channels on your instrument.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:UPPerthreshold:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:UPPerthreshold:CH<x>?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:UPPerthreshold:CH<x> value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:UPPerthreshold:CH<x> <NR3>
        - TRIGger:B:UPPerthreshold:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the trigger level in user units (usually volts).
    """


class TriggerBUpperthreshold(SCPICmdRead):
    """The ``TRIGger:B:UPPerthreshold`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:B:UPPerthreshold:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerBUpperthresholdChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerBUpperthresholdChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerBUpperthresholdChannel]:
        """Return the ``TRIGger:B:UPPerthreshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the specified channel upper trigger level. The CH<x>
              range is 1 to 8 and depends on the number of analog channels on your instrument.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:UPPerthreshold:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:UPPerthreshold:CH<x>?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:UPPerthreshold:CH<x> value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:UPPerthreshold:CH<x> <NR3>
            - TRIGger:B:UPPerthreshold:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the trigger level in user units (usually volts).
        """
        return self._ch


class TriggerBType(SCPICmdWrite, SCPICmdRead):
    r"""The ``TRIGger:B:TYPe`` command.

    **Description:**
        - This command sets or queries the type of A or B trigger.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
        - TRIGger:B:TYPe?

    **Info:**
        - ``EDGE`` is a normal trigger. A trigger event occurs when a signal passes through a
          specified voltage level in a specified direction and is controlled by the
          ``TRIGger:A:EDGE`` commands.
        - ``WIDth`` specifies that the trigger occurs when a pulse with a specified with is found.
        - ``TIMEOut`` specifies that a trigger occurs when a pulse with the specified timeout is
          found.
        - ``RUNt`` specifies that a trigger occurs when a pulse with the specified parameters is
          found.
        - ``WINdow`` specifies that a trigger occurs when a signal with the specified window
          parameters is found.
        - ``LOGIc`` specifies that a trigger occurs when specified conditions are met and is
          controlled by the TRIGger:{A\|B}``:LOGIc`` commands.
        - ``SETHold`` specifies that a trigger occurs when a signal is found that meets the setup
          and hold parameters.
        - ``BUS`` specifies that a trigger occurs when a signal is found that meets the specified
          bus setup parameters.
    """


class TriggerBTransitionWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TRANsition:WHEn`` command.

    **Description:**
        - This command specifies whether to check for a transitioning signal that is faster or
          slower than the specified delta time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:WHEn value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
        - TRIGger:B:TRANsition:WHEn?

    **Info:**
        - ``FASTer`` sets the trigger to occur when the signal transition time is faster than the
          time set by ``TRIGger:A:TRANsition:DELTatime``.
        - ``SLOWer`` sets the trigger to occur when the signal transition time is slower than the
          time set by.``TRIGger:A:TRANsition:DELTatime``.
        - ``EQual`` sets the trigger to occur when the signal transition time is equal to the time
          set by ``TRIGger:A:TRANsition:DELTatime``.
        - ``UNEQual`` sets the trigger to occur when the signal transition time is not equal to the
          time set by ``TRIGger:A:TRANsition:DELTatime``.
    """


class TriggerBTransitionSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TRANsition:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for a transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:SOUrce?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TRANsition:SOUrce {CH<x>}
        - TRIGger:B:TRANsition:SOUrce?

    **Info:**
        - ``CH<x>`` specifies one of the analog channels to be used as the source for a transition
          trigger.
    """


class TriggerBTransitionPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TRANsition:POLarity`` command.

    **Description:**
        - This command specifies the polarity for the transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TRANsition:POLarity {EITher|NEGative|POSitive}
        - TRIGger:B:TRANsition:POLarity?

    **Info:**
        - ``POSitive`` indicates that a pulse edge must traverse from the lower (most negative) to
          higher (most positive) level for transition triggering to occur.
        - ``NEGative`` indicates that a pulse edge must traverse from the upper (most positive) to
          lower (most negative) level for transition triggering to occur.
        - ``EITher`` indicates either positive or negative polarity.
    """


class TriggerBTransitionLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TRANsition:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:TRANsition:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:TRANsition:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TRANsition:LOGICQUALification {ON|OFF}
        - TRIGger:B:TRANsition:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the transition trigger type uses logic qualification.
        - ``OFF`` specifies that the transition trigger type does not use logic qualification.
    """


class TriggerBTransitionDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TRANsition:DELTatime`` command.

    **Description:**
        - This command specifies the delta time (that is Time Limit) used in calculating the
          transition value for the transition (that is Rise or Fall Time) trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:DELTatime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:DELTatime?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:DELTatime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TRANsition:DELTatime <NR3>
        - TRIGger:B:TRANsition:DELTatime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the delta time, in seconds.
    """


class TriggerBTransition(SCPICmdRead):
    """The ``TRIGger:B:TRANsition`` command tree.

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

    Properties:
        - ``.deltatime``: The ``TRIGger:B:TRANsition:DELTatime`` command.
        - ``.logicqualification``: The ``TRIGger:B:TRANsition:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:B:TRANsition:POLarity`` command.
        - ``.source``: The ``TRIGger:B:TRANsition:SOUrce`` command.
        - ``.when``: The ``TRIGger:B:TRANsition:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._deltatime = TriggerBTransitionDeltatime(device, f"{self._cmd_syntax}:DELTatime")
        self._logicqualification = TriggerBTransitionLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerBTransitionPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerBTransitionSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerBTransitionWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def deltatime(self) -> TriggerBTransitionDeltatime:
        """Return the ``TRIGger:B:TRANsition:DELTatime`` command.

        **Description:**
            - This command specifies the delta time (that is Time Limit) used in calculating the
              transition value for the transition (that is Rise or Fall Time) trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:DELTatime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:DELTatime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:TRANsition:DELTatime value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TRANsition:DELTatime <NR3>
            - TRIGger:B:TRANsition:DELTatime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the delta time, in seconds.
        """
        return self._deltatime

    @property
    def logicqualification(self) -> TriggerBTransitionLogicqualification:
        """Return the ``TRIGger:B:TRANsition:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a transition
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:TRANsition:LOGICQUALification?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:TRANsition:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:TRANsition:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TRANsition:LOGICQUALification {ON|OFF}
            - TRIGger:B:TRANsition:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the transition trigger type uses logic qualification.
            - ``OFF`` specifies that the transition trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerBTransitionPolarity:
        """Return the ``TRIGger:B:TRANsition:POLarity`` command.

        **Description:**
            - This command specifies the polarity for the transition trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:TRANsition:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TRANsition:POLarity {EITher|NEGative|POSitive}
            - TRIGger:B:TRANsition:POLarity?

        **Info:**
            - ``POSitive`` indicates that a pulse edge must traverse from the lower (most negative)
              to higher (most positive) level for transition triggering to occur.
            - ``NEGative`` indicates that a pulse edge must traverse from the upper (most positive)
              to lower (most negative) level for transition triggering to occur.
            - ``EITher`` indicates either positive or negative polarity.
        """
        return self._polarity

    @property
    def source(self) -> TriggerBTransitionSource:
        """Return the ``TRIGger:B:TRANsition:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for a transition trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TRANsition:SOUrce {CH<x>}
            - TRIGger:B:TRANsition:SOUrce?

        **Info:**
            - ``CH<x>`` specifies one of the analog channels to be used as the source for a
              transition trigger.
        """
        return self._source

    @property
    def when(self) -> TriggerBTransitionWhen:
        """Return the ``TRIGger:B:TRANsition:WHEn`` command.

        **Description:**
            - This command specifies whether to check for a transitioning signal that is faster or
              slower than the specified delta time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TRANsition:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TRANsition:WHEn?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:TRANsition:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
            - TRIGger:B:TRANsition:WHEn?

        **Info:**
            - ``FASTer`` sets the trigger to occur when the signal transition time is faster than
              the time set by ``TRIGger:A:TRANsition:DELTatime``.
            - ``SLOWer`` sets the trigger to occur when the signal transition time is slower than
              the time set by.``TRIGger:A:TRANsition:DELTatime``.
            - ``EQual`` sets the trigger to occur when the signal transition time is equal to the
              time set by ``TRIGger:A:TRANsition:DELTatime``.
            - ``UNEQual`` sets the trigger to occur when the signal transition time is not equal to
              the time set by ``TRIGger:A:TRANsition:DELTatime``.
        """
        return self._when


class TriggerBTime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TIMe`` command.

    **Description:**
        - This command sets or queries B trigger delay time, in seconds. The B Trigger time applies
          only if ``TRIGger:B:BY`` is set to TIMe.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:TIMe <NR3>
        - TRIGger:B:TIMe?

    **Info:**
        - ``<NR3>`` is the B trigger delay time in seconds.
    """


class TriggerBTimeoutTime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TIMEOut:TIMe`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this command specifies the timeout time,
          in seconds. This command is equivalent to selecting Timeout from the Trig menu and setting
          a value for Time Limit. The timeout trigger type is selected using TIMEOut

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:TIMe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:TIMe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TIMEOut:TIMe <NR3>
        - TRIGger:B:TIMEOut:TIMe?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the timeout time, in seconds.
    """


class TriggerBTimeoutSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TIMEOut:SOUrce`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this command specifies the source. The
          available sources are live channels and digital channels. The default is channel 1. The
          timeout trigger type is selected using TIMEOut.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
        - TRIGger:B:TIMEOut:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the timeout trigger source.
        - ``CH<x>_D<x>`` specifies a digital channel as the timeout trigger source.
    """


class TriggerBTimeoutPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TIMEOut:POLarity`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this commands specifies the polarity to be
          used.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
        - TRIGger:B:TIMEOut:POLarity?

    **Info:**
        - ``STAYSHigh`` triggers when the signal stays high during the timeout time specified by the
          command.
        - ``STAYSLow`` triggers when the signal stays low during the timeout time specified by the
          command.
        - ``EITher`` triggers when the signal is either high or low during the timeout time
          specified by the command.
    """


class TriggerBTimeoutLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:TIMEOut:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a timeout trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:TIMEOut:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:TIMEOut:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:TIMEOut:LOGICQUALification {ON|OFF}
        - TRIGger:B:TIMEOut:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the timeout trigger type uses logic qualification.
        - ``OFF`` specifies that the timeout trigger type does not use logic qualification.
    """


class TriggerBTimeout(SCPICmdRead):
    """The ``TRIGger:B:TIMEOut`` command tree.

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

    Properties:
        - ``.logicqualification``: The ``TRIGger:B:TIMEOut:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:B:TIMEOut:POLarity`` command.
        - ``.source``: The ``TRIGger:B:TIMEOut:SOUrce`` command.
        - ``.time``: The ``TRIGger:B:TIMEOut:TIMe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logicqualification = TriggerBTimeoutLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerBTimeoutPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerBTimeoutSource(device, f"{self._cmd_syntax}:SOUrce")
        self._time = TriggerBTimeoutTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def logicqualification(self) -> TriggerBTimeoutLogicqualification:
        """Return the ``TRIGger:B:TIMEOut:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a timeout
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:TIMEOut:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:TIMEOut:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TIMEOut:LOGICQUALification {ON|OFF}
            - TRIGger:B:TIMEOut:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the timeout trigger type uses logic qualification.
            - ``OFF`` specifies that the timeout trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerBTimeoutPolarity:
        """Return the ``TRIGger:B:TIMEOut:POLarity`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this commands specifies the polarity
              to be used.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
            - TRIGger:B:TIMEOut:POLarity?

        **Info:**
            - ``STAYSHigh`` triggers when the signal stays high during the timeout time specified by
              the command.
            - ``STAYSLow`` triggers when the signal stays low during the timeout time specified by
              the command.
            - ``EITher`` triggers when the signal is either high or low during the timeout time
              specified by the command.
        """
        return self._polarity

    @property
    def source(self) -> TriggerBTimeoutSource:
        """Return the ``TRIGger:B:TIMEOut:SOUrce`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this command specifies the source. The
              available sources are live channels and digital channels. The default is channel 1.
              The timeout trigger type is selected using TIMEOut.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:SOUrce?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
            - TRIGger:B:TIMEOut:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the timeout trigger source.
            - ``CH<x>_D<x>`` specifies a digital channel as the timeout trigger source.
        """
        return self._source

    @property
    def time(self) -> TriggerBTimeoutTime:
        """Return the ``TRIGger:B:TIMEOut:TIMe`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this command specifies the timeout
              time, in seconds. This command is equivalent to selecting Timeout from the Trig menu
              and setting a value for Time Limit. The timeout trigger type is selected using TIMEOut

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:TIMEOut:TIMe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:TIMEOut:TIMe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:TIMEOut:TIMe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:TIMEOut:TIMe <NR3>
            - TRIGger:B:TIMEOut:TIMe?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the timeout time, in seconds.
        """
        return self._time


class TriggerBState(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:STATE`` command.

    **Description:**
        - This command sets or queries the state of B trigger activity. If the B trigger state is
          on, the B trigger is part of the triggering sequence. If the B trigger state is off, then
          only the A trigger causes the trigger event.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:STATE {ON|OFF|<NR1>}
        - TRIGger:B:STATE?

    **Info:**
        - ``ON`` indicates that the B trigger is active and causes trigger events with the A
          trigger.
        - ``OFF`` indicates that only the A trigger causes trigger events.
        - ``<NR1>`` is an integer number. 0 turns off the B trigger; any other value activates the B
          trigger.
    """


class TriggerBSetholdSettime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:SETHold:SETTime`` command.

    **Description:**
        - This command specifies the setup time for setup and hold violation triggering. This
          command is equivalent to selecting Setup/Hold Setup from the Trig menu and then setting
          the desired Setup Time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:SETTime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:SETTime?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:SETTime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:SETHold:SETTime <NR3>
        - TRIGger:B:SETHold:SETTime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the setup time for setup and hold
          violation triggering.
    """


class TriggerBSetholdHoldtime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:SETHold:HOLDTime`` command.

    **Description:**
        - This command specifies the hold time for setup and hold violation triggering. This command
          is equivalent to selecting Setup/Hold Setup from the Trig menu and then setting the
          desired Hold Time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:HOLDTime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:HOLDTime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:HOLDTime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:SETHold:HOLDTime <NR3>
        - TRIGger:B:SETHold:HOLDTime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the hold time setting, in seconds.
          Positive values for hold time occur after the clock edge. Negative values occur before the
          clock edge.
    """


class TriggerBSetholdClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:SETHold:CLOCk:SOUrce`` command.

    **Description:**
        - This command specifies the clock source for the setup and hold triggering. You cannot
          specify the same source for both clock and data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:SOUrce?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
        - TRIGger:B:SETHold:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies the analog channel to use as the clock source waveform.
        - ``CH<x>_D<y>`` specifies the digital channel to use as the clock source waveform.
    """


class TriggerBSetholdClockEdge(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:SETHold:CLOCk:EDGE`` command.

    **Description:**
        - This command specifies the clock edge polarity for setup and hold triggering.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk:EDGE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:EDGE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:EDGE value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:SETHold:CLOCk:EDGE {FALL|RISe}
        - TRIGger:B:SETHold:CLOCk:EDGE?

    **Info:**
        - ``FALL`` specifies polarity as the clock falling edge.
        - ``RISe`` specifies polarity as the clock rising edge.
    """


class TriggerBSetholdClock(SCPICmdRead):
    """The ``TRIGger:B:SETHold:CLOCk`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.edge``: The ``TRIGger:B:SETHold:CLOCk:EDGE`` command.
        - ``.source``: The ``TRIGger:B:SETHold:CLOCk:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._edge = TriggerBSetholdClockEdge(device, f"{self._cmd_syntax}:EDGE")
        self._source = TriggerBSetholdClockSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def edge(self) -> TriggerBSetholdClockEdge:
        """Return the ``TRIGger:B:SETHold:CLOCk:EDGE`` command.

        **Description:**
            - This command specifies the clock edge polarity for setup and hold triggering.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk:EDGE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:EDGE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:SETHold:CLOCk:EDGE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:SETHold:CLOCk:EDGE {FALL|RISe}
            - TRIGger:B:SETHold:CLOCk:EDGE?

        **Info:**
            - ``FALL`` specifies polarity as the clock falling edge.
            - ``RISe`` specifies polarity as the clock rising edge.
        """
        return self._edge

    @property
    def source(self) -> TriggerBSetholdClockSource:
        """Return the ``TRIGger:B:SETHold:CLOCk:SOUrce`` command.

        **Description:**
            - This command specifies the clock source for the setup and hold triggering. You cannot
              specify the same source for both clock and data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:SETHold:CLOCk:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
            - TRIGger:B:SETHold:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies the analog channel to use as the clock source waveform.
            - ``CH<x>_D<y>`` specifies the digital channel to use as the clock source waveform.
        """
        return self._source


class TriggerBSethold(SCPICmdRead):
    """The ``TRIGger:B:SETHold`` command tree.

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

    Properties:
        - ``.clock``: The ``TRIGger:B:SETHold:CLOCk`` command tree.
        - ``.holdtime``: The ``TRIGger:B:SETHold:HOLDTime`` command.
        - ``.settime``: The ``TRIGger:B:SETHold:SETTime`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = TriggerBSetholdClock(device, f"{self._cmd_syntax}:CLOCk")
        self._holdtime = TriggerBSetholdHoldtime(device, f"{self._cmd_syntax}:HOLDTime")
        self._settime = TriggerBSetholdSettime(device, f"{self._cmd_syntax}:SETTime")

    @property
    def clock(self) -> TriggerBSetholdClock:
        """Return the ``TRIGger:B:SETHold:CLOCk`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:CLOCk?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:CLOCk?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.edge``: The ``TRIGger:B:SETHold:CLOCk:EDGE`` command.
            - ``.source``: The ``TRIGger:B:SETHold:CLOCk:SOUrce`` command.
        """
        return self._clock

    @property
    def holdtime(self) -> TriggerBSetholdHoldtime:
        """Return the ``TRIGger:B:SETHold:HOLDTime`` command.

        **Description:**
            - This command specifies the hold time for setup and hold violation triggering. This
              command is equivalent to selecting Setup/Hold Setup from the Trig menu and then
              setting the desired Hold Time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:HOLDTime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:HOLDTime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:HOLDTime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:SETHold:HOLDTime <NR3>
            - TRIGger:B:SETHold:HOLDTime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the hold time setting, in seconds.
              Positive values for hold time occur after the clock edge. Negative values occur before
              the clock edge.
        """
        return self._holdtime

    @property
    def settime(self) -> TriggerBSetholdSettime:
        """Return the ``TRIGger:B:SETHold:SETTime`` command.

        **Description:**
            - This command specifies the setup time for setup and hold violation triggering. This
              command is equivalent to selecting Setup/Hold Setup from the Trig menu and then
              setting the desired Setup Time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:SETHold:SETTime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:SETHold:SETTime?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:SETHold:SETTime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:SETHold:SETTime <NR3>
            - TRIGger:B:SETHold:SETTime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the setup time for setup and hold
              violation triggering.
        """
        return self._settime


class TriggerBSetholdlogicvalB(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:SETHOLDLogicval:B`` command.

    **Description:**
        - This command sets or queries whether the specified channel is included (INCLude) or not
          included (DONTInclude) in the Setup & Hold trigger input configuration. The channel number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:SETHOLDLogicval:B {INCLude|DONTInclude}
        - TRIGger:B:SETHOLDLogicval:B?

    **Info:**
        - ``INCLude`` specifies including the specified channel in the Setup & Hold trigger input
          configuration.
        - ``DONTInclude`` specifies not including the specified channel in the Setup & Hold trigger
          input configuration.
    """


class TriggerBSetholdlogicval(SCPICmdRead):
    """The ``TRIGger:B:SETHOLDLogicval`` command tree.

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

    Properties:
        - ``.b``: The ``TRIGger:B:SETHOLDLogicval:B`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._b = TriggerBSetholdlogicvalB(device, f"{self._cmd_syntax}:B")

    @property
    def b(self) -> TriggerBSetholdlogicvalB:
        """Return the ``TRIGger:B:SETHOLDLogicval:B`` command.

        **Description:**
            - This command sets or queries whether the specified channel is included (INCLude) or
              not included (DONTInclude) in the Setup & Hold trigger input configuration. The
              channel number is specified by x.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:SETHOLDLogicval:B {INCLude|DONTInclude}
            - TRIGger:B:SETHOLDLogicval:B?

        **Info:**
            - ``INCLude`` specifies including the specified channel in the Setup & Hold trigger
              input configuration.
            - ``DONTInclude`` specifies not including the specified channel in the Setup & Hold
              trigger input configuration.
        """
        return self._b


class TriggerBRuntWidth(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RUNT:WIDth`` command.

    **Description:**
        - This command specifies the width, in seconds, for a runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:WIDth?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:WIDth?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:WIDth value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RUNT:WIDth <NR3>
        - TRIGger:B:RUNT:WIDth?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the minimum width, in seconds.
    """


class TriggerBRuntWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RUNT:WHEn`` command.

    **Description:**
        - This command specifies the type of pulse width the trigger checks for when it detects a
          runt.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:WHEn?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
        - TRIGger:B:RUNT:WHEn?

    **Info:**
        - ``OCCURS`` sets the instrument to trigger if a runt signal of any detectable width occurs.
        - ``LESSthan`` sets the instrument to trigger if the a runt pulse is detected with width
          less than the time set by the.
        - ``MOREthan`` sets the instrument to trigger if the a runt pulse is detected with width
          greater than the time set by the.
        - ``EQual`` sets the instrument to trigger if a runt pulse is detected with width equal to
          the time period specified in.
        - ``UNEQual`` sets the instrument to trigger if a runt pulse is detected with width greater
          than or less than (but not equal to) the time period specified in.
    """


class TriggerBRuntSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RUNT:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for the runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RUNT:SOUrce {CH<x>}
        - TRIGger:B:RUNT:SOUrce?

    **Info:**
        - ``CH<x>`` specifies the analog channel number to use as the source waveform for the runt
          trigger. To specify the threshold levels when using CH<x> as the source, use.
    """


class TriggerBRuntPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RUNT:POLarity`` command.

    **Description:**
        - This command specifies the polarity for the runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:POLarity?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RUNT:POLarity {EITher|NEGative|POSitive}
        - TRIGger:B:RUNT:POLarity?

    **Info:**
        - ``POSitive`` indicates that the rising edge crosses the low threshold and the falling edge
          recrosses the low threshold without either edge ever crossing the high threshold.
        - ``NEGative`` indicates that the falling edge crosses the high threshold and the rising
          edge recrosses the high threshold without either edge ever crossing the low threshold.
        - ``EITher`` triggers on a runt of either polarity.
    """


class TriggerBRuntLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RUNT:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:LOGICQUALification?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:LOGICQUALification?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:RUNT:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RUNT:LOGICQUALification {ON|OFF}
        - TRIGger:B:RUNT:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the runt trigger type uses logic qualification.
        - ``OFF`` specifies that the runt trigger type does not use logic qualification.
    """


class TriggerBRunt(SCPICmdRead):
    """The ``TRIGger:B:RUNT`` command tree.

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

    Properties:
        - ``.logicqualification``: The ``TRIGger:B:RUNT:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:B:RUNT:POLarity`` command.
        - ``.source``: The ``TRIGger:B:RUNT:SOUrce`` command.
        - ``.when``: The ``TRIGger:B:RUNT:WHEn`` command.
        - ``.width``: The ``TRIGger:B:RUNT:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logicqualification = TriggerBRuntLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerBRuntPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerBRuntSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerBRuntWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = TriggerBRuntWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def logicqualification(self) -> TriggerBRuntLogicqualification:
        """Return the ``TRIGger:B:RUNT:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:RUNT:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:RUNT:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RUNT:LOGICQUALification {ON|OFF}
            - TRIGger:B:RUNT:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the runt trigger type uses logic qualification.
            - ``OFF`` specifies that the runt trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerBRuntPolarity:
        """Return the ``TRIGger:B:RUNT:POLarity`` command.

        **Description:**
            - This command specifies the polarity for the runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:POLarity?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RUNT:POLarity {EITher|NEGative|POSitive}
            - TRIGger:B:RUNT:POLarity?

        **Info:**
            - ``POSitive`` indicates that the rising edge crosses the low threshold and the falling
              edge recrosses the low threshold without either edge ever crossing the high threshold.
            - ``NEGative`` indicates that the falling edge crosses the high threshold and the rising
              edge recrosses the high threshold without either edge ever crossing the low threshold.
            - ``EITher`` triggers on a runt of either polarity.
        """
        return self._polarity

    @property
    def source(self) -> TriggerBRuntSource:
        """Return the ``TRIGger:B:RUNT:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for the runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RUNT:SOUrce {CH<x>}
            - TRIGger:B:RUNT:SOUrce?

        **Info:**
            - ``CH<x>`` specifies the analog channel number to use as the source waveform for the
              runt trigger. To specify the threshold levels when using CH<x> as the source, use.
        """
        return self._source

    @property
    def when(self) -> TriggerBRuntWhen:
        """Return the ``TRIGger:B:RUNT:WHEn`` command.

        **Description:**
            - This command specifies the type of pulse width the trigger checks for when it detects
              a runt.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
            - TRIGger:B:RUNT:WHEn?

        **Info:**
            - ``OCCURS`` sets the instrument to trigger if a runt signal of any detectable width
              occurs.
            - ``LESSthan`` sets the instrument to trigger if the a runt pulse is detected with width
              less than the time set by the.
            - ``MOREthan`` sets the instrument to trigger if the a runt pulse is detected with width
              greater than the time set by the.
            - ``EQual`` sets the instrument to trigger if a runt pulse is detected with width equal
              to the time period specified in.
            - ``UNEQual`` sets the instrument to trigger if a runt pulse is detected with width
              greater than or less than (but not equal to) the time period specified in.
        """
        return self._when

    @property
    def width(self) -> TriggerBRuntWidth:
        """Return the ``TRIGger:B:RUNT:WIDth`` command.

        **Description:**
            - This command specifies the width, in seconds, for a runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RUNT:WIDth?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RUNT:WIDth?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RUNT:WIDth value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RUNT:WIDth <NR3>
            - TRIGger:B:RUNT:WIDth?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the minimum width, in seconds.
        """
        return self._width


class TriggerBResetType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET:TYPe`` command.

    **Description:**
        - This command sets or queries the type of A→B sequential trigger reset. If the B trigger
          reset is active, the reset criteria are part of the B triggering sequence. If the reset
          conditions defined by the reset type are met, the instrument must start over searching for
          a new occurrence of the A event. You must identify a trigger Source and Threshold for each
          reset type, except for the Timeout trigger type.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TYPe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:TYPe {NONe|TIMEOut|EDGE}
        - TRIGger:B:RESET:TYPe?

    **Info:**
        - ``NONe`` defeats the trigger reset feature.
        - ``TIMEOut`` initiates a reset if the timeout conditions specified by
          ``TRIGger:B:RESET:TIMEOut`` are met.
        - ``EDGE`` initiates a reset if the edge trigger conditions are met.
    """


class TriggerBResetTimeoutTime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET:TIMEOut:TIMe`` command.

    **Description:**
        - This command sets or queries the reset timer for a sequential timeout trigger reset.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TIMEOut:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TIMEOut:TIMe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:TIMEOut:TIMe value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:TIMEOut:TIMe <NR3>
        - TRIGger:B:RESET:TIMEOut:TIMe?

    **Info:**
        - ``<NR3>`` is the reset timer for a sequential timeout trigger reset.
    """


class TriggerBResetTimeout(SCPICmdRead):
    """The ``TRIGger:B:RESET:TIMEOut`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TIMEOut?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TIMEOut?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.time``: The ``TRIGger:B:RESET:TIMEOut:TIMe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._time = TriggerBResetTimeoutTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def time(self) -> TriggerBResetTimeoutTime:
        """Return the ``TRIGger:B:RESET:TIMEOut:TIMe`` command.

        **Description:**
            - This command sets or queries the reset timer for a sequential timeout trigger reset.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TIMEOut:TIMe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TIMEOut:TIMe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:RESET:TIMEOut:TIMe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:TIMEOut:TIMe <NR3>
            - TRIGger:B:RESET:TIMEOut:TIMe?

        **Info:**
            - ``<NR3>`` is the reset timer for a sequential timeout trigger reset.
        """
        return self._time


class TriggerBResetEdgeSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET:EDGE:SOUrce`` command.

    **Description:**
        - This command sets or queries the trigger source for the A→B sequential edge trigger reset
          feature.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:EDGE:SOUrce {CH<x>|CH<x>_D<x>}
        - TRIGger:B:RESET:EDGE:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the trigger source.
        - ``CH<x>_D<x>`` specifies a digital channel as the trigger source.
    """


class TriggerBResetEdgeSlope(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET:EDGE:SLOpe`` command.

    **Description:**
        - This command sets or queries the trigger slope for a sequential edge trigger reset.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:EDGE:SLOpe {RISe|FALL|EITher}
        - TRIGger:B:RESET:EDGE:SLOpe?

    **Info:**
        - ``RISe`` specifies to reset the trigger on the rising or positive edge of a signal.
        - ``FALL`` specifies to reset the trigger on the falling or negative edge of a signal.
        - ``EITHER`` specified to reset the trigger on either the rising or falling edge of a
          signal.
    """


class TriggerBResetEdgeLevel(SCPICmdWrite):
    """The ``TRIGger:B:RESET:EDGE:LEVel`` command.

    **Description:**
        - This command sets the voltage level to use for an Edge Reset trigger when triggering on an
          analog channel waveform.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:LEVel value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:EDGE:LEVel <NR3>

    **Info:**
        - ``<NR3>`` is the voltage level to use for an Edge Reset trigger when triggering on an
          analog channel waveform.
    """


class TriggerBResetEdgeCoupling(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET:EDGE:COUPling`` command.

    **Description:**
        - Sets or queries the trigger coupling for a sequential edge trigger reset when the Source
          is set to an analog channel.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:COUPling?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:COUPling?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:COUPling value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
        - TRIGger:B:RESET:EDGE:COUPling?

    **Info:**
        - ``DC`` selects DC trigger coupling.
        - ``HFRej`` selects high frequency low sensitivity.
        - ``LFRej`` selects low frequency low sensitivity.
        - ``NOISErej`` selects DC low sensitivity.
    """


class TriggerBResetEdge(SCPICmdRead):
    """The ``TRIGger:B:RESET:EDGE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.coupling``: The ``TRIGger:B:RESET:EDGE:COUPling`` command.
        - ``.level``: The ``TRIGger:B:RESET:EDGE:LEVel`` command.
        - ``.slope``: The ``TRIGger:B:RESET:EDGE:SLOpe`` command.
        - ``.source``: The ``TRIGger:B:RESET:EDGE:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._coupling = TriggerBResetEdgeCoupling(device, f"{self._cmd_syntax}:COUPling")
        self._level = TriggerBResetEdgeLevel(device, f"{self._cmd_syntax}:LEVel")
        self._slope = TriggerBResetEdgeSlope(device, f"{self._cmd_syntax}:SLOpe")
        self._source = TriggerBResetEdgeSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def coupling(self) -> TriggerBResetEdgeCoupling:
        """Return the ``TRIGger:B:RESET:EDGE:COUPling`` command.

        **Description:**
            - Sets or queries the trigger coupling for a sequential edge trigger reset when the
              Source is set to an analog channel.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:COUPling?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:COUPling?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:RESET:EDGE:COUPling value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
            - TRIGger:B:RESET:EDGE:COUPling?

        **Info:**
            - ``DC`` selects DC trigger coupling.
            - ``HFRej`` selects high frequency low sensitivity.
            - ``LFRej`` selects low frequency low sensitivity.
            - ``NOISErej`` selects DC low sensitivity.
        """
        return self._coupling

    @property
    def level(self) -> TriggerBResetEdgeLevel:
        """Return the ``TRIGger:B:RESET:EDGE:LEVel`` command.

        **Description:**
            - This command sets the voltage level to use for an Edge Reset trigger when triggering
              on an analog channel waveform.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:LEVel value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:EDGE:LEVel <NR3>

        **Info:**
            - ``<NR3>`` is the voltage level to use for an Edge Reset trigger when triggering on an
              analog channel waveform.
        """
        return self._level

    @property
    def slope(self) -> TriggerBResetEdgeSlope:
        """Return the ``TRIGger:B:RESET:EDGE:SLOpe`` command.

        **Description:**
            - This command sets or queries the trigger slope for a sequential edge trigger reset.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:SLOpe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:EDGE:SLOpe {RISe|FALL|EITher}
            - TRIGger:B:RESET:EDGE:SLOpe?

        **Info:**
            - ``RISe`` specifies to reset the trigger on the rising or positive edge of a signal.
            - ``FALL`` specifies to reset the trigger on the falling or negative edge of a signal.
            - ``EITHER`` specified to reset the trigger on either the rising or falling edge of a
              signal.
        """
        return self._slope

    @property
    def source(self) -> TriggerBResetEdgeSource:
        """Return the ``TRIGger:B:RESET:EDGE:SOUrce`` command.

        **Description:**
            - This command sets or queries the trigger source for the A→B sequential edge trigger
              reset feature.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:EDGE:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:EDGE:SOUrce {CH<x>|CH<x>_D<x>}
            - TRIGger:B:RESET:EDGE:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the trigger source.
            - ``CH<x>_D<x>`` specifies a digital channel as the trigger source.
        """
        return self._source


class TriggerBReset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:RESET`` command.

    **Description:**
        - This command sets the B reset trigger level to 50%.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:RESET SETLevel

    **Info:**
        - ``SETLevel`` sets the B reset trigger level to 50%.

    Properties:
        - ``.edge``: The ``TRIGger:B:RESET:EDGE`` command tree.
        - ``.timeout``: The ``TRIGger:B:RESET:TIMEOut`` command tree.
        - ``.type``: The ``TRIGger:B:RESET:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._edge = TriggerBResetEdge(device, f"{self._cmd_syntax}:EDGE")
        self._timeout = TriggerBResetTimeout(device, f"{self._cmd_syntax}:TIMEOut")
        self._type = TriggerBResetType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def edge(self) -> TriggerBResetEdge:
        """Return the ``TRIGger:B:RESET:EDGE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:EDGE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:EDGE?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.coupling``: The ``TRIGger:B:RESET:EDGE:COUPling`` command.
            - ``.level``: The ``TRIGger:B:RESET:EDGE:LEVel`` command.
            - ``.slope``: The ``TRIGger:B:RESET:EDGE:SLOpe`` command.
            - ``.source``: The ``TRIGger:B:RESET:EDGE:SOUrce`` command.
        """
        return self._edge

    @property
    def timeout(self) -> TriggerBResetTimeout:
        """Return the ``TRIGger:B:RESET:TIMEOut`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TIMEOut?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TIMEOut?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.time``: The ``TRIGger:B:RESET:TIMEOut:TIMe`` command.
        """
        return self._timeout

    @property
    def type(self) -> TriggerBResetType:
        """Return the ``TRIGger:B:RESET:TYPe`` command.

        **Description:**
            - This command sets or queries the type of A→B sequential trigger reset. If the B
              trigger reset is active, the reset criteria are part of the B triggering sequence. If
              the reset conditions defined by the reset type are met, the instrument must start over
              searching for a new occurrence of the A event. You must identify a trigger Source and
              Threshold for each reset type, except for the Timeout trigger type.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:RESET:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:RESET:TYPe?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET:TYPe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET:TYPe {NONe|TIMEOut|EDGE}
            - TRIGger:B:RESET:TYPe?

        **Info:**
            - ``NONe`` defeats the trigger reset feature.
            - ``TIMEOut`` initiates a reset if the timeout conditions specified by
              ``TRIGger:B:RESET:TIMEOut`` are met.
            - ``EDGE`` initiates a reset if the edge trigger conditions are met.
        """
        return self._type


class TriggerBPulsewidthWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:WHEn`` command.

    **Description:**
        - This command specifies to trigger when a pulse is detected with a width (duration) that is
          less than, greater than, equal to, or unequal to a specified value (set using ), OR whose
          width falls outside of or within a specified range of two values (set using and ).

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:WHEn value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
        - TRIGger:B:PULSEWidth:WHEn?

    **Info:**
        - ``LESSthan`` causes a trigger when a pulse is detected with a width less than the time set
          by the.
        - ``MOREthan`` causes a trigger when a pulse is detected with a width greater than the time
          set by the.
        - ``EQual`` causes a trigger when a pulse is detected with a width equal to the time period
          specified in.
        - ``UNEQual`` causes a trigger when a pulse is detected with a width greater than or less
          than (but not equal) the time period specified in.
        - ``WIThin`` causes a trigger when a pulse is detected that is within a range set by two
          values.
        - ``OUTside`` causes a trigger when a pulse is detected that is outside of a range set by
          two values.
    """


class TriggerBPulsewidthSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for a pulse width trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:SOUrce?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
        - TRIGger:B:PULSEWidth:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog input channel as the pulse-width trigger source.
        - ``CH<x>_D<x>`` specifies an digital input channel as the pulse-width trigger source.
    """


class TriggerBPulsewidthPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:POLarity`` command.

    **Description:**
        - This command specifies the polarity for a pulse width trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:POLarity {NEGative|POSitive}
        - TRIGger:B:PULSEWidth:POLarity?

    **Info:**
        - ``NEGative`` specifies a negative pulse.
        - ``POSitive`` specifies a positive pulse.
    """


class TriggerBPulsewidthLowlimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:LOWLimit`` command.

    **Description:**
        - This command specifies the lower limit to use, in seconds, when triggering on detection of
          a pulse whose duration is inside or outside a range of two values. (Use to specify the
          upper limit of the range.) This command also specifies the single limit to use, in
          seconds, when triggering on detection of a pulse whose duration is less than, greater
          than, equal to, or not equal to this time limit.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:LOWLimit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:LOWLimit?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:LOWLimit value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:LOWLimit <NR3>
        - TRIGger:B:PULSEWidth:LOWLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that represents the lower value of the range.
    """


class TriggerBPulsewidthLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a pulse width
          trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:PULSEWidth:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:PULSEWidth:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:LOGICQUALification {ON|OFF}
        - TRIGger:B:PULSEWidth:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the pulse width trigger type uses logic qualification.
        - ``OFF`` specifies that the pulse width trigger type does not use logic qualification.
    """


class TriggerBPulsewidthHighlimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth:HIGHLimit`` command.

    **Description:**
        - This command specifies the upper limit to use, in seconds, when triggering on detection of
          a pulse whose duration is inside or outside a range of two values. (Use to specify the
          lower value of the range.)

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:HIGHLimit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:HIGHLimit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:HIGHLimit value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:PULSEWidth:HIGHLimit <NR3>
        - TRIGger:B:PULSEWidth:HIGHLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that represents the higher value of the range.
    """


class TriggerBPulsewidth(SCPICmdRead):
    """The ``TRIGger:B:PULSEWidth`` command tree.

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

    Properties:
        - ``.highlimit``: The ``TRIGger:B:PULSEWidth:HIGHLimit`` command.
        - ``.logicqualification``: The ``TRIGger:B:PULSEWidth:LOGICQUALification`` command.
        - ``.lowlimit``: The ``TRIGger:B:PULSEWidth:LOWLimit`` command.
        - ``.polarity``: The ``TRIGger:B:PULSEWidth:POLarity`` command.
        - ``.source``: The ``TRIGger:B:PULSEWidth:SOUrce`` command.
        - ``.when``: The ``TRIGger:B:PULSEWidth:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._highlimit = TriggerBPulsewidthHighlimit(device, f"{self._cmd_syntax}:HIGHLimit")
        self._logicqualification = TriggerBPulsewidthLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._lowlimit = TriggerBPulsewidthLowlimit(device, f"{self._cmd_syntax}:LOWLimit")
        self._polarity = TriggerBPulsewidthPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerBPulsewidthSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerBPulsewidthWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def highlimit(self) -> TriggerBPulsewidthHighlimit:
        """Return the ``TRIGger:B:PULSEWidth:HIGHLimit`` command.

        **Description:**
            - This command specifies the upper limit to use, in seconds, when triggering on
              detection of a pulse whose duration is inside or outside a range of two values. (Use
              to specify the lower value of the range.)

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:HIGHLimit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:HIGHLimit?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:PULSEWidth:HIGHLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:HIGHLimit <NR3>
            - TRIGger:B:PULSEWidth:HIGHLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that represents the higher value of the range.
        """
        return self._highlimit

    @property
    def logicqualification(self) -> TriggerBPulsewidthLogicqualification:
        """Return the ``TRIGger:B:PULSEWidth:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a pulse width
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:PULSEWidth:LOGICQUALification?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:PULSEWidth:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:PULSEWidth:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:LOGICQUALification {ON|OFF}
            - TRIGger:B:PULSEWidth:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the pulse width trigger type uses logic qualification.
            - ``OFF`` specifies that the pulse width trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def lowlimit(self) -> TriggerBPulsewidthLowlimit:
        """Return the ``TRIGger:B:PULSEWidth:LOWLimit`` command.

        **Description:**
            - This command specifies the lower limit to use, in seconds, when triggering on
              detection of a pulse whose duration is inside or outside a range of two values. (Use
              to specify the upper limit of the range.) This command also specifies the single limit
              to use, in seconds, when triggering on detection of a pulse whose duration is less
              than, greater than, equal to, or not equal to this time limit.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:LOWLimit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:LOWLimit?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:PULSEWidth:LOWLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:LOWLimit <NR3>
            - TRIGger:B:PULSEWidth:LOWLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that represents the lower value of the range.
        """
        return self._lowlimit

    @property
    def polarity(self) -> TriggerBPulsewidthPolarity:
        """Return the ``TRIGger:B:PULSEWidth:POLarity`` command.

        **Description:**
            - This command specifies the polarity for a pulse width trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:PULSEWidth:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:POLarity {NEGative|POSitive}
            - TRIGger:B:PULSEWidth:POLarity?

        **Info:**
            - ``NEGative`` specifies a negative pulse.
            - ``POSitive`` specifies a positive pulse.
        """
        return self._polarity

    @property
    def source(self) -> TriggerBPulsewidthSource:
        """Return the ``TRIGger:B:PULSEWidth:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for a pulse width trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
            - TRIGger:B:PULSEWidth:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog input channel as the pulse-width trigger source.
            - ``CH<x>_D<x>`` specifies an digital input channel as the pulse-width trigger source.
        """
        return self._source

    @property
    def when(self) -> TriggerBPulsewidthWhen:
        """Return the ``TRIGger:B:PULSEWidth:WHEn`` command.

        **Description:**
            - This command specifies to trigger when a pulse is detected with a width (duration)
              that is less than, greater than, equal to, or unequal to a specified value (set using
              ), OR whose width falls outside of or within a specified range of two values (set
              using and ).

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:PULSEWidth:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:PULSEWidth:WHEn?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:PULSEWidth:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
            - TRIGger:B:PULSEWidth:WHEn?

        **Info:**
            - ``LESSthan`` causes a trigger when a pulse is detected with a width less than the time
              set by the.
            - ``MOREthan`` causes a trigger when a pulse is detected with a width greater than the
              time set by the.
            - ``EQual`` causes a trigger when a pulse is detected with a width equal to the time
              period specified in.
            - ``UNEQual`` causes a trigger when a pulse is detected with a width greater than or
              less than (but not equal) the time period specified in.
            - ``WIThin`` causes a trigger when a pulse is detected that is within a range set by two
              values.
            - ``OUTside`` causes a trigger when a pulse is detected that is outside of a range set
              by two values.
        """
        return self._when


class TriggerBLowerthresholdChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOWerthreshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the A or B lower trigger level threshold for the channel,
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOWerthreshold:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOWerthreshold:CH<x>?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOWerthreshold:CH<x> value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOWerthreshold:CH<x> <NR3>
        - TRIGger:B:LOWerthreshold:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the threshold voltage in user units.
    """


class TriggerBLowerthreshold(SCPICmdRead):
    """The ``TRIGger:B:LOWerthreshold`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:B:LOWerthreshold:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerBLowerthresholdChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerBLowerthresholdChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerBLowerthresholdChannel]:
        """Return the ``TRIGger:B:LOWerthreshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the A or B lower trigger level threshold for the channel,
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOWerthreshold:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOWerthreshold:CH<x>?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:LOWerthreshold:CH<x> value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOWerthreshold:CH<x> <NR3>
            - TRIGger:B:LOWerthreshold:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the threshold voltage in user units.
        """
        return self._ch


class TriggerBLogicWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:WHEn`` command.

    **Description:**
        - This command sets or queries the condition for generating an A or B logic trigger with
          respect to the defined input pattern. This command is equivalent to selecting Logic for
          Trigger Type, Use Clock Edge to No, and choosing a trigger condition from the Logic
          Pattern drop-down list.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
        - TRIGger:B:LOGIc:WHEn?

    **Info:**
        - ``TRUe`` triggers on an input pattern that is true.
        - ``FALSe`` triggers on an input pattern that is false.
        - ``EQual`` triggers on an input pattern that is true for a time period equal to a user
          defined Time Limit (DELTatime) value.
        - ``UNEQual`` triggers on an input pattern that is true for a time period not equal to a
          user defined Time Limit (DELTatime) value.
    """


class TriggerBLogicUseclockedge(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:USECLockedge`` command.

    **Description:**
        - This command specifies whether or not Logic trigger type uses clock source.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:USECLockedge?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:USECLockedge?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:USECLockedge value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:USECLockedge {OFF|ON|0|1}
        - TRIGger:B:LOGIc:USECLockedge?

    **Info:**
        - ``ON`` specifies that logic trigger type uses clock source.
        - ``OFF`` specifies that logic trigger type does not use clock source.
        - ``0`` specifies that logic trigger type does not use clock source; any other number value
          uses clock source.
        - ``1`` specifies that logic trigger type uses clock source.
    """


class TriggerBLogicPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:POLarity`` command.

    **Description:**
        - This command sets or queries the polarity for the clock channel when Use Clock Edge is set
          to Yes for Logic trigger type.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:POLarity?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:POLarity {POSitive|NEGative|EITher}
        - TRIGger:B:LOGIc:POLarity?

    **Info:**
        - ``NEGative`` specifies negative polarity.
        - ``EITher`` specifies either polarity.
    """


class TriggerBLogicInputClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce`` command.

    **Description:**
        - This command specifies the channel to use as the clock source for logic trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
        - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the clock source. Number of channels depends on
          instrument configuration.
        - ``CH<x>_D<y>`` specifies a digital channel as the clock source. Number of channels depends
          on instrument configuration.
    """


class TriggerBLogicInputClock(SCPICmdRead):
    """The ``TRIGger:B:LOGIc:INPut:CLOCk`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.source``: The ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._source = TriggerBLogicInputClockSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def source(self) -> TriggerBLogicInputClockSource:
        """Return the ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce`` command.

        **Description:**
            - This command specifies the channel to use as the clock source for logic trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
            - TRIGger:B:LOGIc:INPut:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the clock source. Number of channels depends
              on instrument configuration.
            - ``CH<x>_D<y>`` specifies a digital channel as the clock source. Number of channels
              depends on instrument configuration.
        """
        return self._source


class TriggerBLogicInput(SCPICmdRead):
    """The ``TRIGger:B:LOGIc:INPut`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:INPut?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.clock``: The ``TRIGger:B:LOGIc:INPut:CLOCk`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = TriggerBLogicInputClock(device, f"{self._cmd_syntax}:CLOCk")

    @property
    def clock(self) -> TriggerBLogicInputClock:
        """Return the ``TRIGger:B:LOGIc:INPut:CLOCk`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:INPut:CLOCk?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.source``: The ``TRIGger:B:LOGIc:INPut:CLOCk:SOUrce`` command.
        """
        return self._clock


class TriggerBLogicFunction(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:FUNCtion`` command.

    **Description:**
        - This command sets or queries the logical combination of the input channels for logic
          triggers. This command is equivalent to selecting Logic for the Trigger Type, and setting
          or viewing the Define Logic.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:FUNCtion?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:FUNCtion?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:FUNCtion value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:FUNCtion {AND|NANd|NOR|OR}
        - TRIGger:B:LOGIc:FUNCtion?

    **Info:**
        - ``AND`` specifies to trigger if all conditions are true.
        - ``NANd`` specifies to trigger if any of the conditions are false.
        - ``NOR`` specifies to trigger if all conditions are false.
        - ``OR`` specifies to trigger if any of the conditions are true.
    """


class TriggerBLogicDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGIc:DELTatime`` command.

    **Description:**
        - This command specifies or queries the Logic trigger delta time value. The time value is
          used as part of the Logic trigger condition to determine if the duration of a logic
          pattern meets the specified time constraints.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:DELTatime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:DELTatime?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:DELTatime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGIc:DELTatime <NR3>
        - TRIGger:B:LOGIc:DELTatime?

    **Info:**
        - ``<NR3>`` the Logic trigger delta time value.
    """


class TriggerBLogic(SCPICmdRead):
    """The ``TRIGger:B:LOGIc`` command tree.

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

    Properties:
        - ``.deltatime``: The ``TRIGger:B:LOGIc:DELTatime`` command.
        - ``.function``: The ``TRIGger:B:LOGIc:FUNCtion`` command.
        - ``.input``: The ``TRIGger:B:LOGIc:INPut`` command tree.
        - ``.polarity``: The ``TRIGger:B:LOGIc:POLarity`` command.
        - ``.useclockedge``: The ``TRIGger:B:LOGIc:USECLockedge`` command.
        - ``.when``: The ``TRIGger:B:LOGIc:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._deltatime = TriggerBLogicDeltatime(device, f"{self._cmd_syntax}:DELTatime")
        self._function = TriggerBLogicFunction(device, f"{self._cmd_syntax}:FUNCtion")
        self._input = TriggerBLogicInput(device, f"{self._cmd_syntax}:INPut")
        self._polarity = TriggerBLogicPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._useclockedge = TriggerBLogicUseclockedge(device, f"{self._cmd_syntax}:USECLockedge")
        self._when = TriggerBLogicWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def deltatime(self) -> TriggerBLogicDeltatime:
        """Return the ``TRIGger:B:LOGIc:DELTatime`` command.

        **Description:**
            - This command specifies or queries the Logic trigger delta time value. The time value
              is used as part of the Logic trigger condition to determine if the duration of a logic
              pattern meets the specified time constraints.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:DELTatime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:DELTatime?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:DELTatime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:DELTatime <NR3>
            - TRIGger:B:LOGIc:DELTatime?

        **Info:**
            - ``<NR3>`` the Logic trigger delta time value.
        """
        return self._deltatime

    @property
    def function(self) -> TriggerBLogicFunction:
        """Return the ``TRIGger:B:LOGIc:FUNCtion`` command.

        **Description:**
            - This command sets or queries the logical combination of the input channels for logic
              triggers. This command is equivalent to selecting Logic for the Trigger Type, and
              setting or viewing the Define Logic.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:FUNCtion?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:FUNCtion?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:FUNCtion value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:FUNCtion {AND|NANd|NOR|OR}
            - TRIGger:B:LOGIc:FUNCtion?

        **Info:**
            - ``AND`` specifies to trigger if all conditions are true.
            - ``NANd`` specifies to trigger if any of the conditions are false.
            - ``NOR`` specifies to trigger if all conditions are false.
            - ``OR`` specifies to trigger if any of the conditions are true.
        """
        return self._function

    @property
    def input(self) -> TriggerBLogicInput:
        """Return the ``TRIGger:B:LOGIc:INPut`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:INPut?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:INPut?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.clock``: The ``TRIGger:B:LOGIc:INPut:CLOCk`` command tree.
        """
        return self._input

    @property
    def polarity(self) -> TriggerBLogicPolarity:
        """Return the ``TRIGger:B:LOGIc:POLarity`` command.

        **Description:**
            - This command sets or queries the polarity for the clock channel when Use Clock Edge is
              set to Yes for Logic trigger type.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:POLarity?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:POLarity {POSitive|NEGative|EITher}
            - TRIGger:B:LOGIc:POLarity?

        **Info:**
            - ``NEGative`` specifies negative polarity.
            - ``EITher`` specifies either polarity.
        """
        return self._polarity

    @property
    def useclockedge(self) -> TriggerBLogicUseclockedge:
        """Return the ``TRIGger:B:LOGIc:USECLockedge`` command.

        **Description:**
            - This command specifies whether or not Logic trigger type uses clock source.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:USECLockedge?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:USECLockedge?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:LOGIc:USECLockedge value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:USECLockedge {OFF|ON|0|1}
            - TRIGger:B:LOGIc:USECLockedge?

        **Info:**
            - ``ON`` specifies that logic trigger type uses clock source.
            - ``OFF`` specifies that logic trigger type does not use clock source.
            - ``0`` specifies that logic trigger type does not use clock source; any other number
              value uses clock source.
            - ``1`` specifies that logic trigger type uses clock source.
        """
        return self._useclockedge

    @property
    def when(self) -> TriggerBLogicWhen:
        """Return the ``TRIGger:B:LOGIc:WHEn`` command.

        **Description:**
            - This command sets or queries the condition for generating an A or B logic trigger with
              respect to the defined input pattern. This command is equivalent to selecting Logic
              for Trigger Type, Use Clock Edge to No, and choosing a trigger condition from the
              Logic Pattern drop-down list.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LOGIc:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LOGIc:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:LOGIc:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
            - TRIGger:B:LOGIc:WHEn?

        **Info:**
            - ``TRUe`` triggers on an input pattern that is true.
            - ``FALSe`` triggers on an input pattern that is false.
            - ``EQual`` triggers on an input pattern that is true for a time period equal to a user
              defined Time Limit (DELTatime) value.
            - ``UNEQual`` triggers on an input pattern that is true for a time period not equal to a
              user defined Time Limit (DELTatime) value.
        """
        return self._when


class TriggerBLogicpatternB(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LOGICPattern:B`` command.

    **Description:**
        - This command sets or queries the Logic Pattern that is used along with the Define Logic
          choice (``LOGIc:FUNCtion``) to determine when the logic trigger occurs.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:LOGICPattern:B {HIGH|LOW|X}
        - TRIGger:B:LOGICPattern:B?

    **Info:**
        - ``HIGH`` specifies the logic high.
        - ``LOW`` specifies the logic low.
        - ``X`` specifies a don't care state.
    """


class TriggerBLogicpattern(SCPICmdRead):
    """The ``TRIGger:B:LOGICPattern`` command tree.

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

    Properties:
        - ``.b``: The ``TRIGger:B:LOGICPattern:B`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._b = TriggerBLogicpatternB(device, f"{self._cmd_syntax}:B")

    @property
    def b(self) -> TriggerBLogicpatternB:
        """Return the ``TRIGger:B:LOGICPattern:B`` command.

        **Description:**
            - This command sets or queries the Logic Pattern that is used along with the Define
              Logic choice (``LOGIc:FUNCtion``) to determine when the logic trigger occurs.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:LOGICPattern:B {HIGH|LOW|X}
            - TRIGger:B:LOGICPattern:B?

        **Info:**
            - ``HIGH`` specifies the logic high.
            - ``LOW`` specifies the logic low.
            - ``X`` specifies a don't care state.
        """
        return self._b


class TriggerBLevelChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:LEVel:CH<x>`` command.

    **Description:**
        - This command sets or queries the CH<x> trigger level for an Edge, Pulse Width, Runt or
          Rise/Fall (Transition and Slew Rate) trigger when triggering on an analog channel
          waveform. Each channel can have an independent trigger level. The <x> is the channel
          number.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:LEVel:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:LEVel:CH<x>?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:LEVel:CH<x> value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:LEVel:CH<x> <NR3>
        - TRIGger:B:LEVel:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the trigger level in user units (usually volts).
    """


class TriggerBLevel(SCPICmdRead):
    """The ``TRIGger:B:LEVel`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:B:LEVel:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerBLevelChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerBLevelChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerBLevelChannel]:
        """Return the ``TRIGger:B:LEVel:CH<x>`` command.

        **Description:**
            - This command sets or queries the CH<x> trigger level for an Edge, Pulse Width, Runt or
              Rise/Fall (Transition and Slew Rate) trigger when triggering on an analog channel
              waveform. Each channel can have an independent trigger level. The <x> is the channel
              number.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:LEVel:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:LEVel:CH<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:LEVel:CH<x> value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:LEVel:CH<x> <NR3>
            - TRIGger:B:LEVel:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the trigger level in user units (usually volts).
        """
        return self._ch


class TriggerBEventsCount(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:EVENTS:COUNt`` command.

    **Description:**
        - This command sets or queries the number of events that must occur before the B trigger.
          The B trigger event count applies only if ``TRIGger:B:BY`` is set to EVENTS.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:EVENTS:COUNt?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:EVENTS:COUNt?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:EVENTS:COUNt value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:EVENTS:COUNt <NR1>
        - TRIGger:B:EVENTS:COUNt?

    **Info:**
        - ``<NR1>`` is the number of B trigger events, which can range from 1 to 65,471.
    """


class TriggerBEvents(SCPICmdRead):
    """The ``TRIGger:B:EVENTS`` command tree.

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

    Properties:
        - ``.count``: The ``TRIGger:B:EVENTS:COUNt`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._count = TriggerBEventsCount(device, f"{self._cmd_syntax}:COUNt")

    @property
    def count(self) -> TriggerBEventsCount:
        """Return the ``TRIGger:B:EVENTS:COUNt`` command.

        **Description:**
            - This command sets or queries the number of events that must occur before the B
              trigger. The B trigger event count applies only if ``TRIGger:B:BY`` is set to EVENTS.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:EVENTS:COUNt?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:EVENTS:COUNt?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:EVENTS:COUNt value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:EVENTS:COUNt <NR1>
            - TRIGger:B:EVENTS:COUNt?

        **Info:**
            - ``<NR1>`` is the number of B trigger events, which can range from 1 to 65,471.
        """
        return self._count


class TriggerBEdgeSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:EDGE:SOUrce`` command.

    **Description:**
        - This command sets or queries the source for the edge trigger. For instruments that have an
          Auxiliary Input (such as the MSO58LP), AUXiliary can be selected as trigger source.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
        - TRIGger:B:EDGE:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the edge trigger source.
        - ``CH<x>_D<y>`` specifies a digital channel as the edge trigger source.
        - ``LINE`` specifies AC line voltage, and is a valid source when B trigger is inactive.
        - ``AUXiliary`` specifies the Auxiliary Input.
    """


class TriggerBEdgeSlope(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:EDGE:SLOpe`` command.

    **Description:**
        - This command sets or queries the slope for the edge trigger. This command is equivalent to
          selecting Edge from the Trigger Type drop-down in the Trigger setup context menu, and then
          choosing the desired Slope. This command is also equivalent to pressing the front-panel
          Slope button.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:SLOpe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:SLOpe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:SLOpe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:EDGE:SLOpe {RISe|FALL|EITher}
        - TRIGger:B:EDGE:SLOpe?

    **Info:**
        - ``RISe`` specifies to trigger on the rising or positive edge of a signal.
        - ``FALL`` specifies to trigger on the falling or negative edge of a signal.
    """


class TriggerBEdgeCoupling(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:EDGE:COUPling`` command.

    **Description:**
        - This command sets or queries the type of coupling for the edge trigger. This command is
          equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup context
          menu, and choosing from the Coupling drop-down list.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:COUPling?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:COUPling?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:COUPling value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
        - TRIGger:B:EDGE:COUPling?

    **Info:**
        - ``DC`` selects DC trigger coupling, which passes all input signals to the trigger
          circuitry.
        - ``HFRej`` coupling attenuates signals above 50 kHz before passing the signals to the
          trigger circuitry.
        - ``LFRej`` coupling attenuates signals below 80 kHz before passing the signals to the
          trigger circuitry.
        - ``NOISErej`` coupling provides stable triggering by increasing the trigger hysteresis.
          Increased hysteresis reduces the trigger sensitivity to noise but can require greater
          trigger signal amplitude.
    """


class TriggerBEdge(SCPICmdRead):
    """The ``TRIGger:B:EDGE`` command tree.

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

    Properties:
        - ``.coupling``: The ``TRIGger:B:EDGE:COUPling`` command.
        - ``.slope``: The ``TRIGger:B:EDGE:SLOpe`` command.
        - ``.source``: The ``TRIGger:B:EDGE:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._coupling = TriggerBEdgeCoupling(device, f"{self._cmd_syntax}:COUPling")
        self._slope = TriggerBEdgeSlope(device, f"{self._cmd_syntax}:SLOpe")
        self._source = TriggerBEdgeSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def coupling(self) -> TriggerBEdgeCoupling:
        """Return the ``TRIGger:B:EDGE:COUPling`` command.

        **Description:**
            - This command sets or queries the type of coupling for the edge trigger. This command
              is equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup
              context menu, and choosing from the Coupling drop-down list.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:COUPling?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:COUPling?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:COUPling value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
            - TRIGger:B:EDGE:COUPling?

        **Info:**
            - ``DC`` selects DC trigger coupling, which passes all input signals to the trigger
              circuitry.
            - ``HFRej`` coupling attenuates signals above 50 kHz before passing the signals to the
              trigger circuitry.
            - ``LFRej`` coupling attenuates signals below 80 kHz before passing the signals to the
              trigger circuitry.
            - ``NOISErej`` coupling provides stable triggering by increasing the trigger hysteresis.
              Increased hysteresis reduces the trigger sensitivity to noise but can require greater
              trigger signal amplitude.
        """
        return self._coupling

    @property
    def slope(self) -> TriggerBEdgeSlope:
        """Return the ``TRIGger:B:EDGE:SLOpe`` command.

        **Description:**
            - This command sets or queries the slope for the edge trigger. This command is
              equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup
              context menu, and then choosing the desired Slope. This command is also equivalent to
              pressing the front-panel Slope button.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:SLOpe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:SLOpe?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:SLOpe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:EDGE:SLOpe {RISe|FALL|EITher}
            - TRIGger:B:EDGE:SLOpe?

        **Info:**
            - ``RISe`` specifies to trigger on the rising or positive edge of a signal.
            - ``FALL`` specifies to trigger on the falling or negative edge of a signal.
        """
        return self._slope

    @property
    def source(self) -> TriggerBEdgeSource:
        """Return the ``TRIGger:B:EDGE:SOUrce`` command.

        **Description:**
            - This command sets or queries the source for the edge trigger. For instruments that
              have an Auxiliary Input (such as the MSO58LP), AUXiliary can be selected as trigger
              source.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:EDGE:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:EDGE:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:EDGE:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
            - TRIGger:B:EDGE:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the edge trigger source.
            - ``CH<x>_D<y>`` specifies a digital channel as the edge trigger source.
            - ``LINE`` specifies AC line voltage, and is a valid source when B trigger is inactive.
            - ``AUXiliary`` specifies the Auxiliary Input.
        """
        return self._source


class TriggerBBy(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BY`` command.

    **Description:**
        - This command selects or returns whether the B trigger occurs after a specified number of
          events or a specified period of time after the A trigger.

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

    **SCPI Syntax:**

    ::

        - TRIGger:B:BY {EVENTS|TIMe}
        - TRIGger:B:BY?

    **Info:**
        - ``EVENTS`` sets the B trigger to take place following a set number of trigger events after
          the A trigger occurs. The number of events is specified by ``TRIGger:B:EVENTS:COUNt``.
        - ``TIMe`` sets the B trigger to occur a set time after the A trigger event. The time period
          is specified by ``TRIGger:B:TIMe``.
    """


class TriggerBBusSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:SOUrce`` command.

    **Description:**
        - This command sets or queries the source bus for a bus trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:SOUrce B<x>
        - TRIGger:B:BUS:SOUrce?

    **Info:**
        - ``B<x>`` sets the selected source to the bus.
    """


class TriggerBBusBItemUsbTokentype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:TOKENType`` command.

    **Description:**
        - This command specifies the token type for the USB trigger. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:TOKENType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:TOKENType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:TOKENType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
        - TRIGger:B:BUS:B<x>:USB:TOKENType?

    **Info:**
        - ``ANY`` indicates any of the token types.
        - ``SOF`` indicates a SOF (start-of-frame) token type.
        - ``OUT`` indicates an OUT token type.
        - ``IN`` indicates an IN token type.
        - ``SETUP`` indicates a SETUP token type.
    """


class TriggerBBusBItemUsbSplitSeValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction start/end bit value to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
        - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?

    **Info:**
        - ``NOCARE`` - any combination of S and E bits.
        - ``FULLSPEED`` - S bit = 0, E bit = 0.
        - ``LOWSPEED`` - S bit = 1, E bit = 0.
        - ``ISOSTART`` - S bit = 1, E bit = 0.
        - ``ISOMID`` - see note above.
        - ``ISOEND`` - see note above.
        - ``ISOALL`` - see note above.
    """  # noqa: E501


class TriggerBBusBItemUsbSplitSe(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbSplitSeValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbSplitSeValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction start/end bit value to trigger on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
            - TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue?

        **Info:**
            - ``NOCARE`` - any combination of S and E bits.
            - ``FULLSPEED`` - S bit = 0, E bit = 0.
            - ``LOWSPEED`` - S bit = 1, E bit = 0.
            - ``ISOSTART`` - S bit = 1, E bit = 0.
            - ``ISOMID`` - see note above.
            - ``ISOEND`` - see note above.
            - ``ISOALL`` - see note above.
        """  # noqa: E501
        return self._value


class TriggerBBusBItemUsbSplitScValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies whether to
          trigger on the start or complete phase of the split transaction, based on the
          Start/Complete bit field value. (0 = Start, 1 = Complete). The default is NOCARE. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
        - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?

    **Info:**
        - ``NOCARE`` - trigger on either the start or complete phase of the split transaction.
        - ``SSPLIT`` - trigger on the start phase of the split transaction.
        - ``CSPLIT`` - trigger on the complete phase of the split transaction.
    """


class TriggerBBusBItemUsbSplitSc(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbSplitScValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbSplitScValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies whether
              to trigger on the start or complete phase of the split transaction, based on the
              Start/Complete bit field value. (0 = Start, 1 = Complete). The default is NOCARE. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
            - TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue?

        **Info:**
            - ``NOCARE`` - trigger on either the start or complete phase of the split transaction.
            - ``SSPLIT`` - trigger on the start phase of the split transaction.
            - ``CSPLIT`` - trigger on the complete phase of the split transaction.
        """
        return self._value


class TriggerBBusBItemUsbSplitPortValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction port address value to trigger on. The trigger condition must be set to Special
          with a packet type SPLIT. The value can be up to 7 characters long. The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
        - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?

    **Info:**
        - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbSplitPort(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbSplitPortValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbSplitPortValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction port address value to trigger on. The trigger condition must be set
              to Special with a packet type SPLIT. The value can be up to 7 characters long. The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
            - TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue?

        **Info:**
            - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and
              1.
        """
        return self._value


class TriggerBBusBItemUsbSplitHubValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction hub address value to trigger on. The trigger condition must be set to Special
          with packet type SPLIT. The value can be up to 7 characters long. The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
        - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?

    **Info:**
        - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbSplitHub(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbSplitHubValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbSplitHubValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction hub address value to trigger on. The trigger condition must be set
              to Special with packet type SPLIT. The value can be up to 7 characters long. The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
            - TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue?

        **Info:**
            - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and
              1.
        """
        return self._value


class TriggerBBusBItemUsbSplitEtValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction endpoint type value to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
        - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?

    **Info:**
        - ``NOCARE`` - any endpoint type.
        - ``CONTRol`` - control endpoint type.
        - ``ISOchronous`` - isochronous endpoint type.
        - ``BULK`` - bulk endpoint type (BULK-IN or BULK-OUT).
        - ``INTERRUPT`` - interrupt endpoint type (Interrupt-IN).
    """


class TriggerBBusBItemUsbSplitEt(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbSplitEtValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbSplitEtValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction endpoint type value to trigger on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
            - TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue?

        **Info:**
            - ``NOCARE`` - any endpoint type.
            - ``CONTRol`` - control endpoint type.
            - ``ISOchronous`` - isochronous endpoint type.
            - ``BULK`` - bulk endpoint type (BULK-IN or BULK-OUT).
            - ``INTERRUPT`` - interrupt endpoint type (Interrupt-IN).
        """
        return self._value


class TriggerBBusBItemUsbSplit(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPLit`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.et``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET`` command tree.
        - ``.hub``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB`` command tree.
        - ``.port``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT`` command tree.
        - ``.sc``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC`` command tree.
        - ``.se``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._et = TriggerBBusBItemUsbSplitEt(device, f"{self._cmd_syntax}:ET")
        self._hub = TriggerBBusBItemUsbSplitHub(device, f"{self._cmd_syntax}:HUB")
        self._port = TriggerBBusBItemUsbSplitPort(device, f"{self._cmd_syntax}:PORT")
        self._sc = TriggerBBusBItemUsbSplitSc(device, f"{self._cmd_syntax}:SC")
        self._se = TriggerBBusBItemUsbSplitSe(device, f"{self._cmd_syntax}:SE")

    @property
    def et(self) -> TriggerBBusBItemUsbSplitEt:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:ET?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET:VALue`` command.
        """
        return self._et

    @property
    def hub(self) -> TriggerBBusBItemUsbSplitHub:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB:VALue`` command.
        """
        return self._hub

    @property
    def port(self) -> TriggerBBusBItemUsbSplitPort:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT:VALue`` command.
        """
        return self._port

    @property
    def sc(self) -> TriggerBBusBItemUsbSplitSc:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SC?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC:VALue`` command.
        """
        return self._sc

    @property
    def se(self) -> TriggerBBusBItemUsbSplitSe:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit:SE?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE:VALue`` command.
        """
        return self._se


class TriggerBBusBItemUsbSpecialtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SPECIALType`` command.

    **Description:**
        - This command specifies the packet ID (PID) for the special packet. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPECIALType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPECIALType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SPECIALType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
        - TRIGger:B:BUS:B<x>:USB:SPECIALType?

    **Info:**
        - ``ANY`` specifies the PID value as Any (XX00).
        - ``ERROr`` specifies the PID value as ERR (1100).
        - ``PING`` specifies the PID value as PING (0100).
        - ``PREamble`` specifies the PID value as PRE (1100).
        - ``RESERVed`` specifies the PID value as Reserved (0000).
        - ``SPLit`` specifies the PID value as Split (1000).
    """


class TriggerBBusBItemUsbSofframenumber(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber`` command.

    **Description:**
        - This command specifies the binary data string to be used for start of frame number, when
          the trigger condition is Token Packet and the token type is Start of Frame. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber <QString>
        - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?

    **Info:**
        - ``<QString>`` within the range 000 0000 0000 to 111 1111 1111 (000 hex to 7FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbHandshaketype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType`` command.

    **Description:**
        - This command specifies the handshake type for the USB trigger. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
        - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?

    **Info:**
        - ``ANY`` indicates the instrument will trigger on any handshake type.
        - ``NAK`` indicates the instrument will trigger when a device cannot send or receive data.
        - ``ACK`` indicates the instrument will trigger when a packet is successfully received.
        - ``STALL`` indicates the instrument will trigger when a device requires intervention from
          the host.
        - ``NYET`` specifies the handshake type as No response Yet (0110).
    """


class TriggerBBusBItemUsbErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ERRType`` command.

    **Description:**
        - This command specifies the error type to be used when the trigger condition is set to
          ERRor. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
        - TRIGger:B:BUS:B<x>:USB:ERRType?

    **Info:**
        - ``PID`` indicates the error type is set to packet ID.
        - ``CRC5`` indicates the error type is set to 5-bit CRC.
        - ``CRC16`` indicates the error type is set to 16-bit CRC.
        - ``BITSTUFFing`` indicates the error type is set to bit stuffing.
    """


class TriggerBBusBItemUsbEndpointValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue`` command.

    **Description:**
        - This command specifies the binary endpoint string to be used for the USB trigger. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue <QString>
        - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?

    **Info:**
        - ``<QString>`` within the range 0000 to 1111 (00 hex to 0F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbEndpoint(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ENDPoint`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemUsbEndpointValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemUsbEndpointValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue`` command.

        **Description:**
            - This command specifies the binary endpoint string to be used for the USB trigger. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue <QString>
            - TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue?

        **Info:**
            - ``<QString>`` within the range 0000 to 1111 (00 hex to 0F hex).
        """
        return self._value


class TriggerBBusBItemUsbDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string to be used when triggering on a USB trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:USB:DATa:VALue?

    **Info:**
        - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbDataType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe`` command.

    **Description:**
        - This command specifies the data type for a USB trigger. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
        - TRIGger:B:BUS:B<x>:USB:DATa:TYPe?

    **Info:**
        - ``ANY`` indicates either a DATA0 or DATA1 data packet type.
        - ``MDATA`` indicates a MDATA data packet type when on HIGH speed.
    """


class TriggerBBusBItemUsbDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe`` command.

    **Description:**
        - This command specifies the number of contiguous data bytes to trigger on. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:USB:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is number in the range 1 to 16.
    """


class TriggerBBusBItemUsbDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on a USB bus signal. The
          trigger condition must be set to DATAPACKET. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?

    **Info:**
        - ``INrange`` specifies the qualifier as Inside Range.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``OUTrange`` specifies the qualifier as Out of Range.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
    """  # noqa: E501


class TriggerBBusBItemUsbDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet`` command.

    **Description:**
        - This command specifies the data offset in bytes to trigger on. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet <NR1>
        - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is number in the range 0 to 1024.
    """


class TriggerBBusBItemUsbDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the binary data string for the upper limit for inside-of-range and
          outside-of-range qualifiers for the USB trigger when the trigger condition is DATA. Use
          the command to set the lower limit. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?

    **Info:**
        - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe`` command.
        - ``.type``: The ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemUsbDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerBBusBItemUsbDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerBBusBItemUsbDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerBBusBItemUsbDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._type = TriggerBBusBItemUsbDataType(device, f"{self._cmd_syntax}:TYPe")
        self._value = TriggerBBusBItemUsbDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemUsbDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the binary data string for the upper limit for inside-of-range
              and outside-of-range qualifiers for the USB trigger when the trigger condition is
              DATA. Use the command to set the lower limit. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:USB:DATa:HIVALue?

        **Info:**
            - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerBBusBItemUsbDataOffset:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet`` command.

        **Description:**
            - This command specifies the data offset in bytes to trigger on. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet <NR1>
            - TRIGger:B:BUS:B<x>:USB:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is number in the range 0 to 1024.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerBBusBItemUsbDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on a USB bus signal. The
              trigger condition must be set to DATAPACKET. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:USB:DATa:QUALifier?

        **Info:**
            - ``INrange`` specifies the qualifier as Inside Range.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``OUTrange`` specifies the qualifier as Out of Range.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerBBusBItemUsbDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe`` command.

        **Description:**
            - This command specifies the number of contiguous data bytes to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:USB:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is number in the range 1 to 16.
        """
        return self._size

    @property
    def type(self) -> TriggerBBusBItemUsbDataType:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe`` command.

        **Description:**
            - This command specifies the data type for a USB trigger. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
            - TRIGger:B:BUS:B<x>:USB:DATa:TYPe?

        **Info:**
            - ``ANY`` indicates either a DATA0 or DATA1 data packet type.
            - ``MDATA`` indicates a MDATA data packet type when on HIGH speed.
        """
        return self._type

    @property
    def value(self) -> TriggerBBusBItemUsbDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string to be used when triggering on a USB
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:USB:DATa:VALue?

        **Info:**
            - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
        """
        return self._value


class TriggerBBusBItemUsbCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for the USB trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
        - TRIGger:B:BUS:B<x>:USB:CONDition?

    **Info:**
        - ``SYNC`` indicates triggering on a Sync field of a packet.
        - ``RESET`` sets triggering on a reset condition.
        - ``SUSPEND`` sets triggering on a suspend condition.
        - ``RESUME`` sets triggering on a resume condition.
        - ``EOP`` indicates triggering on an end-of-packet signal.
        - ``TOKENPacket`` indicates triggering on a token packet.
        - ``DATAPacket`` indicates triggering on a data packet.
        - ``HANDSHAKEPacket`` indicates triggering on a handshake packet.
        - ``SPECIALPacket`` indicates triggering on a special status packet.
        - ``ERRor`` indicates triggering on an error condition.
    """  # noqa: E501


class TriggerBBusBItemUsbAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string to be used for USB trigger. The trigger
          condition must be set to TOKEN. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue <QString>
        - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue`` command.

    **Description:**
        - This command specifies the binary address string for the upper limit for inside-of-range
          and outside-of-range qualifiers for the USB trigger. Use the command to set the lower
          limit. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemUsbAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemUsbAddressHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._value = TriggerBBusBItemUsbAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemUsbAddressHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue`` command.

        **Description:**
            - This command specifies the binary address string for the upper limit for
              inside-of-range and outside-of-range qualifiers for the USB trigger. Use the command
              to set the lower limit. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
        """
        return self._hivalue

    @property
    def value(self) -> TriggerBBusBItemUsbAddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string to be used for USB trigger. The
              trigger condition must be set to TOKEN. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue <QString>
            - TRIGger:B:BUS:B<x>:USB:ADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class TriggerBBusBItemUsb(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:USB`` command tree.

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

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:USB:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:USB:DATa`` command tree.
        - ``.endpoint``: The ``TRIGger:B:BUS:B<x>:USB:ENDPoint`` command tree.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:USB:ERRType`` command.
        - ``.handshaketype``: The ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType`` command.
        - ``.sofframenumber``: The ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber`` command.
        - ``.specialtype``: The ``TRIGger:B:BUS:B<x>:USB:SPECIALType`` command.
        - ``.split``: The ``TRIGger:B:BUS:B<x>:USB:SPLit`` command tree.
        - ``.tokentype``: The ``TRIGger:B:BUS:B<x>:USB:TOKENType`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemUsbAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerBBusBItemUsbCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemUsbData(device, f"{self._cmd_syntax}:DATa")
        self._endpoint = TriggerBBusBItemUsbEndpoint(device, f"{self._cmd_syntax}:ENDPoint")
        self._errtype = TriggerBBusBItemUsbErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._handshaketype = TriggerBBusBItemUsbHandshaketype(
            device, f"{self._cmd_syntax}:HANDSHAKEType"
        )
        self._sofframenumber = TriggerBBusBItemUsbSofframenumber(
            device, f"{self._cmd_syntax}:SOFFRAMENUMber"
        )
        self._specialtype = TriggerBBusBItemUsbSpecialtype(
            device, f"{self._cmd_syntax}:SPECIALType"
        )
        self._split = TriggerBBusBItemUsbSplit(device, f"{self._cmd_syntax}:SPLit")
        self._tokentype = TriggerBBusBItemUsbTokentype(device, f"{self._cmd_syntax}:TOKENType")

    @property
    def address(self) -> TriggerBBusBItemUsbAddress:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess:HIVALue`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerBBusBItemUsbCondition:
        """Return the ``TRIGger:B:BUS:B<x>:USB:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for the USB trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
            - TRIGger:B:BUS:B<x>:USB:CONDition?

        **Info:**
            - ``SYNC`` indicates triggering on a Sync field of a packet.
            - ``RESET`` sets triggering on a reset condition.
            - ``SUSPEND`` sets triggering on a suspend condition.
            - ``RESUME`` sets triggering on a resume condition.
            - ``EOP`` indicates triggering on an end-of-packet signal.
            - ``TOKENPacket`` indicates triggering on a token packet.
            - ``DATAPacket`` indicates triggering on a data packet.
            - ``HANDSHAKEPacket`` indicates triggering on a handshake packet.
            - ``SPECIALPacket`` indicates triggering on a special status packet.
            - ``ERRor`` indicates triggering on an error condition.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemUsbData:
        """Return the ``TRIGger:B:BUS:B<x>:USB:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:USB:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:B:BUS:B<x>:USB:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:USB:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:USB:DATa:SIZe`` command.
            - ``.type``: The ``TRIGger:B:BUS:B<x>:USB:DATa:TYPe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:DATa:VALue`` command.
        """
        return self._data

    @property
    def endpoint(self) -> TriggerBBusBItemUsbEndpoint:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ENDPoint`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ENDPoint?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:USB:ENDPoint:VALue`` command.
        """
        return self._endpoint

    @property
    def errtype(self) -> TriggerBBusBItemUsbErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:USB:ERRType`` command.

        **Description:**
            - This command specifies the error type to be used when the trigger condition is set to
              ERRor. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
            - TRIGger:B:BUS:B<x>:USB:ERRType?

        **Info:**
            - ``PID`` indicates the error type is set to packet ID.
            - ``CRC5`` indicates the error type is set to 5-bit CRC.
            - ``CRC16`` indicates the error type is set to 16-bit CRC.
            - ``BITSTUFFing`` indicates the error type is set to bit stuffing.
        """
        return self._errtype

    @property
    def handshaketype(self) -> TriggerBBusBItemUsbHandshaketype:
        """Return the ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType`` command.

        **Description:**
            - This command specifies the handshake type for the USB trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
            - TRIGger:B:BUS:B<x>:USB:HANDSHAKEType?

        **Info:**
            - ``ANY`` indicates the instrument will trigger on any handshake type.
            - ``NAK`` indicates the instrument will trigger when a device cannot send or receive
              data.
            - ``ACK`` indicates the instrument will trigger when a packet is successfully received.
            - ``STALL`` indicates the instrument will trigger when a device requires intervention
              from the host.
            - ``NYET`` specifies the handshake type as No response Yet (0110).
        """
        return self._handshaketype

    @property
    def sofframenumber(self) -> TriggerBBusBItemUsbSofframenumber:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber`` command.

        **Description:**
            - This command specifies the binary data string to be used for start of frame number,
              when the trigger condition is Token Packet and the token type is Start of Frame. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber <QString>
            - TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber?

        **Info:**
            - ``<QString>`` within the range 000 0000 0000 to 111 1111 1111 (000 hex to 7FF hex).
        """
        return self._sofframenumber

    @property
    def specialtype(self) -> TriggerBBusBItemUsbSpecialtype:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPECIALType`` command.

        **Description:**
            - This command specifies the packet ID (PID) for the special packet. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPECIALType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPECIALType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:SPECIALType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
            - TRIGger:B:BUS:B<x>:USB:SPECIALType?

        **Info:**
            - ``ANY`` specifies the PID value as Any (XX00).
            - ``ERROr`` specifies the PID value as ERR (1100).
            - ``PING`` specifies the PID value as PING (0100).
            - ``PREamble`` specifies the PID value as PRE (1100).
            - ``RESERVed`` specifies the PID value as Reserved (0000).
            - ``SPLit`` specifies the PID value as Split (1000).
        """
        return self._specialtype

    @property
    def split(self) -> TriggerBBusBItemUsbSplit:
        """Return the ``TRIGger:B:BUS:B<x>:USB:SPLit`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:USB:SPLit?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.et``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:ET`` command tree.
            - ``.hub``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:HUB`` command tree.
            - ``.port``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:PORT`` command tree.
            - ``.sc``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SC`` command tree.
            - ``.se``: The ``TRIGger:B:BUS:B<x>:USB:SPLit:SE`` command tree.
        """
        return self._split

    @property
    def tokentype(self) -> TriggerBBusBItemUsbTokentype:
        """Return the ``TRIGger:B:BUS:B<x>:USB:TOKENType`` command.

        **Description:**
            - This command specifies the token type for the USB trigger. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:USB:TOKENType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:TOKENType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:USB:TOKENType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
            - TRIGger:B:BUS:B<x>:USB:TOKENType?

        **Info:**
            - ``ANY`` indicates any of the token types.
            - ``SOF`` indicates a SOF (start-of-frame) token type.
            - ``OUT`` indicates an OUT token type.
            - ``IN`` indicates an IN token type.
            - ``SETUP`` indicates a SETUP token type.
        """
        return self._tokentype


class TriggerBBusBItemSvidSlaveAddress(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess`` command.

    **Description:**
        - This command sets the binary address of the slave for a SVID bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
        - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?

    **Info:**
        - ``<QString>`` sets the binary payload value. Default size and value is 4 bits and 'XXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSvidSlave(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:SLAVe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemSvidSlaveAddress(device, f"{self._cmd_syntax}:ADDRess")

    @property
    def address(self) -> TriggerBBusBItemSvidSlaveAddress:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess`` command.

        **Description:**
            - This command sets the binary address of the slave for a SVID bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
            - TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess?

        **Info:**
            - ``<QString>`` sets the binary payload value. Default size and value is 4 bits and
              'XXXX' respectively.
        """
        return self._address


class TriggerBBusBItemSvidPayloadValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue`` command.

    **Description:**
        - This command sets the binary payload value for a SVID bus to trigger on. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue <QString>
        - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?

    **Info:**
        - ``<QString>`` sets the binary payload value. Default size and value is 8 bits and
          'XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSvidPayloadType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe`` command.

    **Description:**
        - This command sets or queries the payload type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
        - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?

    **Info:**
        - ``MASTer`` sets the payload type to master. This is the default value.
        - ``SLAVe`` sets the payload type to slave.
    """


class TriggerBBusBItemSvidPayload(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerBBusBItemSvidPayloadType(device, f"{self._cmd_syntax}:TYPe")
        self._value = TriggerBBusBItemSvidPayloadValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def type(self) -> TriggerBBusBItemSvidPayloadType:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe`` command.

        **Description:**
            - This command sets or queries the payload type for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
            - TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe?

        **Info:**
            - ``MASTer`` sets the payload type to master. This is the default value.
            - ``SLAVe`` sets the payload type to slave.
        """
        return self._type

    @property
    def value(self) -> TriggerBBusBItemSvidPayloadValue:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue`` command.

        **Description:**
            - This command sets the binary payload value for a SVID bus to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue <QString>
            - TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue?

        **Info:**
            - ``<QString>`` sets the binary payload value. Default size and value is 8 bits and
              'XXXXXXXX' respectively.
        """
        return self._value


class TriggerBBusBItemSvidParityType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe`` command.

    **Description:**
        - This command sets or queries the parity type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
        - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?

    **Info:**
        - ``MASTer`` sets the parity type to master. This is the default value.
        - ``SLAVe`` sets the parity type to slave.
    """


class TriggerBBusBItemSvidParity(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:PARity`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerBBusBItemSvidParityType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> TriggerBBusBItemSvidParityType:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe`` command.

        **Description:**
            - This command sets or queries the parity type for SVID bus. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
            - TRIGger:B:BUS:B<x>:SVID:PARity:TYPe?

        **Info:**
            - ``MASTer`` sets the parity type to master. This is the default value.
            - ``SLAVe`` sets the parity type to slave.
        """
        return self._type


class TriggerBBusBItemSvidErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
        - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?

    **Info:**
        - ``NACK`` sets the error type to nack.
        - ``REJect`` sets the error type to reject.
        - ``MIXed`` sets the error type to mixed.
        - ``PARity`` sets the error type to parity.
    """


class TriggerBBusBItemSvidError(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerBBusBItemSvidErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> TriggerBBusBItemSvidErrorType:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for SVID bus. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
            - TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe?

        **Info:**
            - ``NACK`` sets the error type to nack.
            - ``REJect`` sets the error type to reject.
            - ``MIXed`` sets the error type to mixed.
            - ``PARity`` sets the error type to parity.
        """
        return self._type


class TriggerBBusBItemSvidCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a SVID bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
        - TRIGger:B:BUS:B<x>:SVID:CONDition?

    **Info:**
        - ``STARTCONDition`` sets the trigger condition to start condition. This is the default
          value.
        - ``SLAVEADDRess`` sets the trigger condition to slave address.
        - ``COMMand`` sets the trigger condition to command.
        - ``PAYLoad`` sets the trigger condition to payload.
        - ``ERRors`` sets the trigger condition to errors.
    """


class TriggerBBusBItemSvidCommandType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe`` command.

    **Description:**
        - This command sets or queries the command type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
        - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?

    **Info:**
        - ``GET`` sets the command type to get. This is the default value.
        - ``SET`` sets the command type to set.
        - ``OPTional`` sets the command type to optional.
    """


class TriggerBBusBItemSvidCommandResponse(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse`` command.

    **Description:**
        - This command sets or queries the command response for SVID bus. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
        - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?

    **Info:**
        - ``GETREG`` sets the command response to GetReg. This is the default value.
        - ``GETREGVENDor`` sets the command response to GetRegVendor.
        - ``GETREGTESTCFG`` sets the command response to GetRegTestCfg.
        - ``SETVIDFAST`` sets the command response to SetVID Fast.
        - ``SETVIDSLOW`` sets the command response to SetVID Slow.
        - ``SETVIDDECay`` sets the command response to SetVID Decay.
        - ``SETPS`` sets the command response to SetPS.
        - ``SETREGADDR`` sets the command response to SetRegAddr.
        - ``SETREGDATa`` sets the command response to SetRegData.
        - ``SETREGADDRVENDor`` sets the command response to SetRegAddrVendor.
        - ``SETREGDATAVENDor`` sets the command response to SetRegDataVendor.
        - ``SETREGADDRTESTCONFg`` sets the command response to SetRegAddrTestCfg.
        - ``SETREGDATATESTCONFg`` sets the command response to SetRegDataTestCfg.
        - ``TESTMODe`` sets the command response to Test Mode.
        - ``SETWP`` sets the command response to SetWP.
        - ``GETREGPKTRECent`` sets the command response to GetRegPktRecent.
        - ``GETREGPKTALERt`` sets the command response to GetRegPktAlert.
        - ``GETREGPKTBAD`` sets the command response to GetRegPktBad.
        - ``GETREGVREVENt`` sets the command response to GetRegVrEvent.
    """  # noqa: E501


class TriggerBBusBItemSvidCommand(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID:COMMand`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.response``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse`` command.
        - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._response = TriggerBBusBItemSvidCommandResponse(device, f"{self._cmd_syntax}:RESPonse")
        self._type = TriggerBBusBItemSvidCommandType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def response(self) -> TriggerBBusBItemSvidCommandResponse:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse`` command.

        **Description:**
            - This command sets or queries the command response for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
            - TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse?

        **Info:**
            - ``GETREG`` sets the command response to GetReg. This is the default value.
            - ``GETREGVENDor`` sets the command response to GetRegVendor.
            - ``GETREGTESTCFG`` sets the command response to GetRegTestCfg.
            - ``SETVIDFAST`` sets the command response to SetVID Fast.
            - ``SETVIDSLOW`` sets the command response to SetVID Slow.
            - ``SETVIDDECay`` sets the command response to SetVID Decay.
            - ``SETPS`` sets the command response to SetPS.
            - ``SETREGADDR`` sets the command response to SetRegAddr.
            - ``SETREGDATa`` sets the command response to SetRegData.
            - ``SETREGADDRVENDor`` sets the command response to SetRegAddrVendor.
            - ``SETREGDATAVENDor`` sets the command response to SetRegDataVendor.
            - ``SETREGADDRTESTCONFg`` sets the command response to SetRegAddrTestCfg.
            - ``SETREGDATATESTCONFg`` sets the command response to SetRegDataTestCfg.
            - ``TESTMODe`` sets the command response to Test Mode.
            - ``SETWP`` sets the command response to SetWP.
            - ``GETREGPKTRECent`` sets the command response to GetRegPktRecent.
            - ``GETREGPKTALERt`` sets the command response to GetRegPktAlert.
            - ``GETREGPKTBAD`` sets the command response to GetRegPktBad.
            - ``GETREGVREVENt`` sets the command response to GetRegVrEvent.
        """  # noqa: E501
        return self._response

    @property
    def type(self) -> TriggerBBusBItemSvidCommandType:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe`` command.

        **Description:**
            - This command sets or queries the command type for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
            - TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe?

        **Info:**
            - ``GET`` sets the command type to get. This is the default value.
            - ``SET`` sets the command type to set.
            - ``OPTional`` sets the command type to optional.
        """
        return self._type


class TriggerBBusBItemSvid(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SVID`` command tree.

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

    Properties:
        - ``.command``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand`` command tree.
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:SVID:CONDition`` command.
        - ``.error``: The ``TRIGger:B:BUS:B<x>:SVID:ERRor`` command tree.
        - ``.parity``: The ``TRIGger:B:BUS:B<x>:SVID:PARity`` command tree.
        - ``.payload``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad`` command tree.
        - ``.slave``: The ``TRIGger:B:BUS:B<x>:SVID:SLAVe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = TriggerBBusBItemSvidCommand(device, f"{self._cmd_syntax}:COMMand")
        self._condition = TriggerBBusBItemSvidCondition(device, f"{self._cmd_syntax}:CONDition")
        self._error = TriggerBBusBItemSvidError(device, f"{self._cmd_syntax}:ERRor")
        self._parity = TriggerBBusBItemSvidParity(device, f"{self._cmd_syntax}:PARity")
        self._payload = TriggerBBusBItemSvidPayload(device, f"{self._cmd_syntax}:PAYLoad")
        self._slave = TriggerBBusBItemSvidSlave(device, f"{self._cmd_syntax}:SLAVe")

    @property
    def command(self) -> TriggerBBusBItemSvidCommand:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:COMMand`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:COMMand?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.response``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand:RESPonse`` command.
            - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand:TYPe`` command.
        """
        return self._command

    @property
    def condition(self) -> TriggerBBusBItemSvidCondition:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a SVID bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SVID:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
            - TRIGger:B:BUS:B<x>:SVID:CONDition?

        **Info:**
            - ``STARTCONDition`` sets the trigger condition to start condition. This is the default
              value.
            - ``SLAVEADDRess`` sets the trigger condition to slave address.
            - ``COMMand`` sets the trigger condition to command.
            - ``PAYLoad`` sets the trigger condition to payload.
            - ``ERRors`` sets the trigger condition to errors.
        """  # noqa: E501
        return self._condition

    @property
    def error(self) -> TriggerBBusBItemSvidError:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:ERRor?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def parity(self) -> TriggerBBusBItemSvidParity:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:PARity`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PARity?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:PARity:TYPe`` command.
        """
        return self._parity

    @property
    def payload(self) -> TriggerBBusBItemSvidPayload:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:PAYLoad?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:TYPe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad:VALue`` command.
        """
        return self._payload

    @property
    def slave(self) -> TriggerBBusBItemSvidSlave:
        """Return the ``TRIGger:B:BUS:B<x>:SVID:SLAVe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SVID:SLAVe?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:SVID:SLAVe:ADDRess`` command.
        """
        return self._slave


class TriggerBBusBItemSpmiSlaveaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the slave address used
          in SPMI triggering if the trigger condition is RESet, SLEep, SHUTdown, WAKeup,
          AUTHenticate, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, LONGEXTREGWRIte,
          DEVICEDESCSLAVEREAd, or REG0WRIte.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the slave address on which to
          trigger.
    """


class TriggerBBusBItemSpmiSlaveaddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSpmiSlaveaddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSpmiSlaveaddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the slave address
              used in SPMI triggering if the trigger condition is RESet, SLEep, SHUTdown, WAKeup,
              AUTHenticate, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd,
              LONGEXTREGWRIte, DEVICEDESCSLAVEREAd, or REG0WRIte.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the slave address on which to
              trigger.
        """
        return self._value


class TriggerBBusBItemSpmiRegisteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the register address
          used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, REGREAd,
          REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the register address.
    """


class TriggerBBusBItemSpmiRegisteraddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSpmiRegisteraddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSpmiRegisteraddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the register
              address used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte,
              REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the register address.
        """
        return self._value


class TriggerBBusBItemSpmiNoresponse(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse`` command.

    **Description:**
        - This command sets or queries whether or not to trigger on No Response frames.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:NORESPonse <Qstring>
        - TRIGger:B:BUS:B<x>:SPMI:NORESPonse?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is either TRUE or FALSE boolean value.
    """


class TriggerBBusBItemSpmiMasteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the master address
          used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, or
          DEVICEDESCMASTERREAd.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the master address on which to
          trigger.
    """


class TriggerBBusBItemSpmiMasteraddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSpmiMasteraddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSpmiMasteraddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the master address
              used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, or
              DEVICEDESCMASTERREAd.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the master address on which to
              trigger.
        """
        return self._value


class TriggerBBusBItemSpmiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for SPMI triggering if the
          trigger condition is MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte,
          LONGEXTREGREAd, LONGEXTREGWRIte, or REG0WRIte.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the data value on which to
          trigger.
    """


class TriggerBBusBItemSpmiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to be used when
          triggering on an SPMI bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe <NR2>
        - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<NR2>`` is the size of the data string in bytes.
    """


class TriggerBBusBItemSpmiData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.size``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerBBusBItemSpmiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemSpmiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerBBusBItemSpmiDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string, in bytes, to be used when
              triggering on an SPMI bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe <NR2>
            - TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<NR2>`` is the size of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemSpmiDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for SPMI triggering if the
              trigger condition is MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd,
              EXTREGWRIte, LONGEXTREGREAd, LONGEXTREGWRIte, or REG0WRIte.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SPMI:DATa:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the data value on which to
              trigger.
        """
        return self._value


class TriggerBBusBItemSpmiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified SPMI bus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPMI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
        - TRIGger:B:BUS:B<x>:SPMI:CONDition?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``SSC`` specifies triggering on the Sequence Start Condition.
        - ``RESet`` specifies triggering on the Reset command sequence.
        - ``SLEep`` specifies triggering on the Sleep command sequnce.
        - ``SHUTdown`` specifies triggering on the Shutdown command sequence.
        - ``WAKeup`` specifies triggering on the Wakeup command sequence.
        - ``MASTERREAd`` specifies triggering on the Master Read command sequence.
        - ``MASTERWRIte`` specifies triggering on the Master Write command sequence.
        - ``REGREAd`` specifies triggering on the Register Read command sequence.
        - ``REGWRIte`` specifies triggering on the Register Write command sequence.
        - ``DEVICEDESCMASTERREAd`` specifies triggering on the Device Descriptor Block Master Read
          command sequence.
        - ``DEVICEDESCSLAVEREAd`` specifies triggering on the Device Descriptor Block Slave Read
          command sequence.
        - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
        - ``EXTREGWRIte`` specifies triggering on the Extended Register Write command sequence.
        - ``LONGEXTREGREAd`` specifies triggering on the Extended Register Read Long command
          sequence.
        - ``LONGEXTREGWRIte`` specifies triggering on the Extended Register Write Long command
          sequence.
        - ``REG0WRIte`` specifies triggering on the Register 0 Write command sequence.
        - ``AUTHenticate`` specifies triggering on the Authentication command sequence.
        - ``TRANSferbusownership`` specifies triggering on the Transfer Bus Ownership (TBO) command
          sequence.
        - ``PARItyerror`` specifies triggering on the parity errors.
    """  # noqa: E501


class TriggerBBusBItemSpmi(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPMI`` command tree.

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

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:SPMI:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa`` command tree.
        - ``.masteraddress``: The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess`` command tree.
        - ``.noresponse``: The ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse`` command.
        - ``.registeraddress``: The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.
        - ``.slaveaddress``: The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemSpmiCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemSpmiData(device, f"{self._cmd_syntax}:DATa")
        self._masteraddress = TriggerBBusBItemSpmiMasteraddress(
            device, f"{self._cmd_syntax}:MASTERADDRess"
        )
        self._noresponse = TriggerBBusBItemSpmiNoresponse(device, f"{self._cmd_syntax}:NORESPonse")
        self._registeraddress = TriggerBBusBItemSpmiRegisteraddress(
            device, f"{self._cmd_syntax}:REGISTERADDRess"
        )
        self._slaveaddress = TriggerBBusBItemSpmiSlaveaddress(
            device, f"{self._cmd_syntax}:SLAVEADDRess"
        )

    @property
    def condition(self) -> TriggerBBusBItemSpmiCondition:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified SPMI bus.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
            - TRIGger:B:BUS:B<x>:SPMI:CONDition?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``SSC`` specifies triggering on the Sequence Start Condition.
            - ``RESet`` specifies triggering on the Reset command sequence.
            - ``SLEep`` specifies triggering on the Sleep command sequnce.
            - ``SHUTdown`` specifies triggering on the Shutdown command sequence.
            - ``WAKeup`` specifies triggering on the Wakeup command sequence.
            - ``MASTERREAd`` specifies triggering on the Master Read command sequence.
            - ``MASTERWRIte`` specifies triggering on the Master Write command sequence.
            - ``REGREAd`` specifies triggering on the Register Read command sequence.
            - ``REGWRIte`` specifies triggering on the Register Write command sequence.
            - ``DEVICEDESCMASTERREAd`` specifies triggering on the Device Descriptor Block Master
              Read command sequence.
            - ``DEVICEDESCSLAVEREAd`` specifies triggering on the Device Descriptor Block Slave Read
              command sequence.
            - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
            - ``EXTREGWRIte`` specifies triggering on the Extended Register Write command sequence.
            - ``LONGEXTREGREAd`` specifies triggering on the Extended Register Read Long command
              sequence.
            - ``LONGEXTREGWRIte`` specifies triggering on the Extended Register Write Long command
              sequence.
            - ``REG0WRIte`` specifies triggering on the Register 0 Write command sequence.
            - ``AUTHenticate`` specifies triggering on the Authentication command sequence.
            - ``TRANSferbusownership`` specifies triggering on the Transfer Bus Ownership (TBO)
              command sequence.
            - ``PARItyerror`` specifies triggering on the parity errors.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemSpmiData:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.size``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa:VALue`` command.
        """
        return self._data

    @property
    def masteraddress(self) -> TriggerBBusBItemSpmiMasteraddress:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.
        """
        return self._masteraddress

    @property
    def noresponse(self) -> TriggerBBusBItemSpmiNoresponse:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse`` command.

        **Description:**
            - This command sets or queries whether or not to trigger on No Response frames.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPMI:NORESPonse <Qstring>
            - TRIGger:B:BUS:B<x>:SPMI:NORESPonse?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is either TRUE or FALSE boolean value.
        """
        return self._noresponse

    @property
    def registeraddress(self) -> TriggerBBusBItemSpmiRegisteraddress:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.
        """
        return self._registeraddress

    @property
    def slaveaddress(self) -> TriggerBBusBItemSpmiSlaveaddress:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.
        """
        return self._slaveaddress


class TriggerBBusBItemSpiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SPI triggering if the trigger
          condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPI:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:SPI:DATa:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSpiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string to be used for a SPI trigger if the
          trigger condition is DATa. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerBBusBItemSpiData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.size``: The ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerBBusBItemSpiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemSpiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerBBusBItemSpiDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string to be used for a SPI trigger if
              the trigger condition is DATa. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:SPI:DATa:SIZe?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemSpiDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SPI triggering if the trigger
              condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPI:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:SPI:DATa:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary format.
        """
        return self._value


class TriggerBBusBItemSpiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPI:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for a SPI trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPI:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SPI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
        - TRIGger:B:BUS:B<x>:SPI:CONDition?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``SS`` specifies the Slave Selection condition.
        - ``STARTofframe`` is applicable when ``BUS:B<x>:SPI:FRAMING`` is set to IDLEtime. When the
          trigger condition is set to STARTofframe, the instrument triggers on the first SPI clock
          after an idle time when there are no clocks.
        - ``DATa`` sets the trigger condition to Master-In Slave-Out and Master-Out Slave-In.
    """


class TriggerBBusBItemSpi(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SPI`` command tree.

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

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:SPI:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:SPI:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemSpiCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemSpiData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerBBusBItemSpiCondition:
        """Return the ``TRIGger:B:BUS:B<x>:SPI:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for a SPI trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SPI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
            - TRIGger:B:BUS:B<x>:SPI:CONDition?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``SS`` specifies the Slave Selection condition.
            - ``STARTofframe`` is applicable when ``BUS:B<x>:SPI:FRAMING`` is set to IDLEtime. When
              the trigger condition is set to STARTofframe, the instrument triggers on the first SPI
              clock after an idle time when there are no clocks.
            - ``DATa`` sets the trigger condition to Master-In Slave-Out and Master-Out Slave-In.
        """
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemSpiData:
        """Return the ``TRIGger:B:BUS:B<x>:SPI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SPI:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.size``: The ``TRIGger:B:BUS:B<x>:SPI:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SPI:DATa:VALue`` command.
        """
        return self._data


class TriggerBBusBItemSentSlowIdentifierValue(SCPICmdWrite):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the qualifier to use when triggering on SENT slow packet bus
          data.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary identifier value.
    """


class TriggerBBusBItemSentSlowIdentifier(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSentSlowIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSentSlowIdentifierValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the qualifier to use when triggering on SENT slow packet
              bus data.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary identifier value.
        """
        return self._value


class TriggerBBusBItemSentSlowDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.

    **Description:**
        - This command sets or queries the binary slow channel value to use when triggering on a
          SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary slow channel data value.
    """


class TriggerBBusBItemSentSlowDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.

    **Description:**
        - This command sets or queries the binary identifier value to use when triggering on a SENT
          bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerBBusBItemSentSlowDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary Slow channel data value to use when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSentSlowData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemSentSlowDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemSentSlowDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemSentSlowDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemSentSlowDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary Slow channel data value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemSentSlowDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.

        **Description:**
            - This command sets or queries the binary identifier value to use when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemSentSlowDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.

        **Description:**
            - This command sets or queries the binary slow channel value to use when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary slow channel data value.
        """
        return self._value


class TriggerBBusBItemSentSlow(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:SLOW`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.data``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA`` command tree.
        - ``.identifier``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = TriggerBBusBItemSentSlowData(device, f"{self._cmd_syntax}:DATA")
        self._identifier = TriggerBBusBItemSentSlowIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def data(self) -> TriggerBBusBItemSentSlowData:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.
        """
        return self._data

    @property
    def identifier(self) -> TriggerBBusBItemSentSlowIdentifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerBBusBItemSentPauseQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT pause
          pulses.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
        - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``OUTrange`` sets the qualifier to out of range.
        - ``UNEQual`` sets the qualifier as Unequal.
    """  # noqa: E501


class TriggerBBusBItemSentPause(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:PAUSE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:PAUSE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:PAUSE?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._qualifier = TriggerBBusBItemSentPauseQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )

    @property
    def qualifier(self) -> TriggerBBusBItemSentPauseQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT pause
              pulses.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
            - TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``OUTrange`` sets the qualifier to out of range.
            - ``UNEQual`` sets the qualifier as Unequal.
        """  # noqa: E501
        return self._qualifier


class TriggerBBusBItemSentFastStatusValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue`` command.

    **Description:**
        - This command sets or queries the binary status value to be used when triggering on a SENT
          bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the binary status value on which to trigger.
    """


class TriggerBBusBItemSentFastStatus(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSentFastStatusValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSentFastStatusValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue`` command.

        **Description:**
            - This command sets or queries the binary status value to be used when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the binary status value on which to trigger.
        """
        return self._value


class TriggerBBusBItemSentFastInvertnibbleValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message inverted nibble value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 inverted nibble binary value on which to trigger.
    """


class TriggerBBusBItemSentFastInvertnibble(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemSentFastInvertnibbleValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemSentFastInvertnibbleValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message inverted nibble value to be used
              when triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 inverted nibble binary value on which to trigger.
        """
        return self._value


class TriggerBBusBItemSentFastCounterValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message counter value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 fast message counter binary value on which to trigger.
    """


class TriggerBBusBItemSentFastCounterQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for the secure format counter.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerBBusBItemSentFastCounterHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast message counter value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSentFastCounter(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemSentFastCounterHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerBBusBItemSentFastCounterQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemSentFastCounterValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemSentFastCounterHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast message counter value to be used
              when triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemSentFastCounterQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for the secure format counter.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemSentFastCounterValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message counter value to be used when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 fast message counter binary value on which to
              trigger.
        """
        return self._value


class TriggerBBusBItemSentFastChan2bValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 2 value to be used when triggering on
          a SENT bus signal. The trigger condition must be set to FAST.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 2 binary value on which to trigger.
    """


class TriggerBBusBItemSentFastChan2bQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for device channel 2.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerBBusBItemSentFastChan2bHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 2 value to use when triggering
          on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSentFastChan2b(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemSentFastChan2bHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemSentFastChan2bQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemSentFastChan2bValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemSentFastChan2bHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 2 value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemSentFastChan2bQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for device channel 2.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemSentFastChan2bValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 2 value to be used when
              triggering on a SENT bus signal. The trigger condition must be set to FAST.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 2 binary value on which to trigger.
        """
        return self._value


class TriggerBBusBItemSentFastChan1aValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 1 value to be used when triggering on
          a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 value on which to trigger.
    """


class TriggerBBusBItemSentFastChan1aQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for device channel 1.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerBBusBItemSentFastChan1aHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 1 value to use when triggering
          on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemSentFastChan1a(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemSentFastChan1aHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemSentFastChan1aQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemSentFastChan1aValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemSentFastChan1aHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 1 value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemSentFastChan1aQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for device channel 1.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemSentFastChan1aValue:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 1 value to be used when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
            - TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 value on which to trigger.
        """
        return self._value


class TriggerBBusBItemSentFast(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:FAST`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.chan1a``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.
        - ``.chan2b``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.
        - ``.counter``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer`` command tree.
        - ``.invertnibble``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.
        - ``.status``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._chan1a = TriggerBBusBItemSentFastChan1a(device, f"{self._cmd_syntax}:CHAN1A")
        self._chan2b = TriggerBBusBItemSentFastChan2b(device, f"{self._cmd_syntax}:CHAN2B")
        self._counter = TriggerBBusBItemSentFastCounter(device, f"{self._cmd_syntax}:COUNTer")
        self._invertnibble = TriggerBBusBItemSentFastInvertnibble(
            device, f"{self._cmd_syntax}:INVERTNIBble"
        )
        self._status = TriggerBBusBItemSentFastStatus(device, f"{self._cmd_syntax}:STATus")

    @property
    def chan1a(self) -> TriggerBBusBItemSentFastChan1a:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.
        """
        return self._chan1a

    @property
    def chan2b(self) -> TriggerBBusBItemSentFastChan2b:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.
        """
        return self._chan2b

    @property
    def counter(self) -> TriggerBBusBItemSentFastCounter:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.
        """
        return self._counter

    @property
    def invertnibble(self) -> TriggerBBusBItemSentFastInvertnibble:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.
        """
        return self._invertnibble

    @property
    def status(self) -> TriggerBBusBItemSentFastStatus:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus:VALue`` command.
        """
        return self._status


class TriggerBBusBItemSentErrtypeCrc(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC`` command.

    **Description:**
        - This command sets or queries the CRC error type to be used when triggering on SENT data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
        - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``FAST`` specifies triggering on CRC errors in only the Fast Channel.
        - ``SLOW`` specifies triggering on CRC errors in only the slow channel.
    """


class TriggerBBusBItemSentErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:ERRType`` command.

    **Description:**
        - This command sets or queries the error type to be used when triggering on SENT data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:ERRType CRC
        - TRIGger:B:BUS:B<x>:SENT:ERRType?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``CRC`` specifies triggering on CRC errors.

    Properties:
        - ``.crc``: The ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crc = TriggerBBusBItemSentErrtypeCrc(device, f"{self._cmd_syntax}:CRC")

    @property
    def crc(self) -> TriggerBBusBItemSentErrtypeCrc:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC`` command.

        **Description:**
            - This command sets or queries the CRC error type to be used when triggering on SENT
              data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
            - TRIGger:B:BUS:B<x>:SENT:ERRType:CRC?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``FAST`` specifies triggering on CRC errors in only the Fast Channel.
            - ``SLOW`` specifies triggering on CRC errors in only the slow channel.
        """
        return self._crc


class TriggerBBusBItemSentCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a SENT bus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:SENT:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
        - TRIGger:B:BUS:B<x>:SENT:CONDition?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``START`` sets triggering on start of packet.
        - ``FAST`` sets triggering on fast channel packets.
        - ``SLOW`` sets triggering on slow channel packets.
        - ``ERRor`` sets triggering on errors.
    """


class TriggerBBusBItemSent(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:SENT`` command tree.

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

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:SENT:CONDition`` command.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:SENT:ERRType`` command.
        - ``.fast``: The ``TRIGger:B:BUS:B<x>:SENT:FAST`` command tree.
        - ``.pause``: The ``TRIGger:B:BUS:B<x>:SENT:PAUSE`` command tree.
        - ``.slow``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemSentCondition(device, f"{self._cmd_syntax}:CONDition")
        self._errtype = TriggerBBusBItemSentErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._fast = TriggerBBusBItemSentFast(device, f"{self._cmd_syntax}:FAST")
        self._pause = TriggerBBusBItemSentPause(device, f"{self._cmd_syntax}:PAUSE")
        self._slow = TriggerBBusBItemSentSlow(device, f"{self._cmd_syntax}:SLOW")

    @property
    def condition(self) -> TriggerBBusBItemSentCondition:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a SENT bus.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
            - TRIGger:B:BUS:B<x>:SENT:CONDition?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``START`` sets triggering on start of packet.
            - ``FAST`` sets triggering on fast channel packets.
            - ``SLOW`` sets triggering on slow channel packets.
            - ``ERRor`` sets triggering on errors.
        """
        return self._condition

    @property
    def errtype(self) -> TriggerBBusBItemSentErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:ERRType`` command.

        **Description:**
            - This command sets or queries the error type to be used when triggering on SENT data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:SENT:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:SENT:ERRType CRC
            - TRIGger:B:BUS:B<x>:SENT:ERRType?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``CRC`` specifies triggering on CRC errors.

        Sub-properties:
            - ``.crc``: The ``TRIGger:B:BUS:B<x>:SENT:ERRType:CRC`` command.
        """
        return self._errtype

    @property
    def fast(self) -> TriggerBBusBItemSentFast:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:FAST`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:FAST?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.chan1a``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.
            - ``.chan2b``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.
            - ``.counter``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:COUNTer`` command tree.
            - ``.invertnibble``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.
            - ``.status``: The ``TRIGger:B:BUS:B<x>:SENT:FAST:STATus`` command tree.
        """
        return self._fast

    @property
    def pause(self) -> TriggerBBusBItemSentPause:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:PAUSE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:PAUSE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:PAUSE?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:SENT:PAUSE:QUALifier`` command.
        """
        return self._pause

    @property
    def slow(self) -> TriggerBBusBItemSentSlow:
        """Return the ``TRIGger:B:BUS:B<x>:SENT:SLOW`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:SENT:SLOW?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.data``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:DATA`` command tree.
            - ``.identifier``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.
        """
        return self._slow


class TriggerBBusBItemRs232cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data address string used for the RS-232 bus trigger when
          the trigger condition is set to Data. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the address value. The argument is a string of 0, 1, or X
          representing a binary number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemRs232cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes to be used for an
          RS-232C trigger when the trigger condition is Data. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe <NR3>
        - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the data size in bytes.
    """


class TriggerBBusBItemRs232cData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:RS232C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerBBusBItemRs232cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemRs232cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerBBusBItemRs232cDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes to be used for an
              RS-232C trigger when the trigger condition is Data. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe <NR3>
            - TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the data size in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemRs232cDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data address string used for the RS-232 bus trigger
              when the trigger condition is set to Data. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:RS232C:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the address value. The argument is a string of 0, 1, or X
              representing a binary number.
        """
        return self._value


class TriggerBBusBItemRs232cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:RS232C:CONDition`` command.

    **Description:**
        - This command specifies the condition for an RS-232C trigger, where the bus number is
          specified by< >x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:RS232C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
        - TRIGger:B:BUS:B<x>:RS232C:CONDition?

    **Info:**
        - ``STARt`` sets the Trigger on condition to Start.
        - ``EOp`` sets the Trigger on condition to End of Packet.
        - ``DATa`` sets the Trigger on condition to Data.
        - ``PARItyerror`` sets the Trigger on condition to Parity Error.
    """


class TriggerBBusBItemRs232c(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:RS232C`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:RS232C:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemRs232cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemRs232cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerBBusBItemRs232cCondition:
        """Return the ``TRIGger:B:BUS:B<x>:RS232C:CONDition`` command.

        **Description:**
            - This command specifies the condition for an RS-232C trigger, where the bus number is
              specified by< >x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:RS232C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
            - TRIGger:B:BUS:B<x>:RS232C:CONDition?

        **Info:**
            - ``STARt`` sets the Trigger on condition to Start.
            - ``EOp`` sets the Trigger on condition to End of Packet.
            - ``DATa`` sets the Trigger on condition to Data.
            - ``PARItyerror`` sets the Trigger on condition to Parity Error.
        """
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemRs232cData:
        """Return the ``TRIGger:B:BUS:B<x>:RS232C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:RS232C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa:VALue`` command.
        """
        return self._data


class TriggerBBusBItemParallelDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for a Parallel Bus trigger. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary data string used for a Parallel Bus trigger.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemParallelData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:PARallel:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:PARallel:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:PARallel:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemParallelDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemParallelDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for a Parallel Bus trigger. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:PARallel:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary data string used for a Parallel Bus trigger.
        """
        return self._value


class TriggerBBusBItemParallel(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:PARallel`` command tree.

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

    Properties:
        - ``.data``: The ``TRIGger:B:BUS:B<x>:PARallel:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = TriggerBBusBItemParallelData(device, f"{self._cmd_syntax}:DATa")

    @property
    def data(self) -> TriggerBBusBItemParallelData:
        """Return the ``TRIGger:B:BUS:B<x>:PARallel:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:PARallel:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:PARallel:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:PARallel:DATa:VALue`` command.
        """
        return self._data


class TriggerBBusBItemMil1553bTimeQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?

    **Info:**
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """


class TriggerBBusBItemMil1553bTimeMorelimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.

    **Description:**
        - This command sets or queries the upper limit to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the upper bound for measuring remote
          terminal response time (RT) or the inter-message gap (IMG) in seconds.
    """


class TriggerBBusBItemMil1553bTimeLesslimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.

    **Description:**
        - This command sets or queries the lower limit to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
        - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the lower bound for measuring remote
          terminal response time (RT) or the inter-message gap (IMG) in seconds.
    """


class TriggerBBusBItemMil1553bTime(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.lesslimit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.
        - ``.morelimit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lesslimit = TriggerBBusBItemMil1553bTimeLesslimit(
            device, f"{self._cmd_syntax}:LESSLimit"
        )
        self._morelimit = TriggerBBusBItemMil1553bTimeMorelimit(
            device, f"{self._cmd_syntax}:MORELimit"
        )
        self._qualifier = TriggerBBusBItemMil1553bTimeQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )

    @property
    def lesslimit(self) -> TriggerBBusBItemMil1553bTimeLesslimit:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.

        **Description:**
            - This command sets or queries the lower limit to be used when triggering on response
              time / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by
              x. The trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the lower bound for measuring
              remote terminal response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._lesslimit

    @property
    def morelimit(self) -> TriggerBBusBItemMil1553bTimeMorelimit:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.

        **Description:**
            - This command sets or queries the upper limit to be used when triggering on response
              time / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by
              x. The trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the upper bound for measuring
              remote terminal response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._morelimit

    @property
    def qualifier(self) -> TriggerBBusBItemMil1553bTimeQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on response time
              / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
              trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier?

        **Info:**
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """
        return self._qualifier


class TriggerBBusBItemMil1553bStatusParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity`` command.

    **Description:**
        - This command sets or queries the value of the status word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?

    **Info:**
        - ``ONE`` filters status words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the parity bit.
    """


class TriggerBBusBItemMil1553bStatusBitTf(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.

    **Description:**
        - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?

    **Info:**
        - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the TF bit.
    """


class TriggerBBusBItemMil1553bStatusBitSubsf(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.

    **Description:**
        - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?

    **Info:**
        - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SUBSF bit.
    """


class TriggerBBusBItemMil1553bStatusBitSrq(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.

    **Description:**
        - This command sets or queries the value of the status word service request bit (SRQ bit,
          bit 11) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
          specified by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?

    **Info:**
        - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SRQ bit.
    """


class TriggerBBusBItemMil1553bStatusBitMe(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.

    **Description:**
        - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?

    **Info:**
        - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the ME bit.
    """


class TriggerBBusBItemMil1553bStatusBitInstr(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.

    **Description:**
        - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?

    **Info:**
        - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the INSTR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the INSTR bit.
    """


class TriggerBBusBItemMil1553bStatusBitDbca(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.

    **Description:**
        - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
          bit, bit 18) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
          specified by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?

    **Info:**
        - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the DBCA bit.
    """


class TriggerBBusBItemMil1553bStatusBitBusy(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.

    **Description:**
        - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status word
          for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
          condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?

    **Info:**
        - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BUSY bit.
    """


class TriggerBBusBItemMil1553bStatusBitBcr(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.

    **Description:**
        - This command sets or queries the value of the broadcast command received bit (BCR bit, bit
          15) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
          by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?

    **Info:**
        - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BCR bit.
    """


#  pylint: disable=too-many-instance-attributes
class TriggerBBusBItemMil1553bStatusBit(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.bcr``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.
        - ``.busy``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.
        - ``.dbca``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.
        - ``.instr``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.
        - ``.me``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.
        - ``.srq``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.
        - ``.subsf``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.
        - ``.tf``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._bcr = TriggerBBusBItemMil1553bStatusBitBcr(device, f"{self._cmd_syntax}:BCR")
        self._busy = TriggerBBusBItemMil1553bStatusBitBusy(device, f"{self._cmd_syntax}:BUSY")
        self._dbca = TriggerBBusBItemMil1553bStatusBitDbca(device, f"{self._cmd_syntax}:DBCA")
        self._instr = TriggerBBusBItemMil1553bStatusBitInstr(device, f"{self._cmd_syntax}:INSTR")
        self._me = TriggerBBusBItemMil1553bStatusBitMe(device, f"{self._cmd_syntax}:ME")
        self._srq = TriggerBBusBItemMil1553bStatusBitSrq(device, f"{self._cmd_syntax}:SRQ")
        self._subsf = TriggerBBusBItemMil1553bStatusBitSubsf(device, f"{self._cmd_syntax}:SUBSF")
        self._tf = TriggerBBusBItemMil1553bStatusBitTf(device, f"{self._cmd_syntax}:TF")

    @property
    def bcr(self) -> TriggerBBusBItemMil1553bStatusBitBcr:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.

        **Description:**
            - This command sets or queries the value of the broadcast command received bit (BCR bit,
              bit 15) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
              specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR?

        **Info:**
            - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BCR bit.
        """
        return self._bcr

    @property
    def busy(self) -> TriggerBBusBItemMil1553bStatusBitBusy:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.

        **Description:**
            - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status
              word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
              trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?

        **Info:**
            - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BUSY bit.
        """
        return self._busy

    @property
    def dbca(self) -> TriggerBBusBItemMil1553bStatusBitDbca:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.

        **Description:**
            - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
              bit, bit 18) in a status word for a MIL-STD-1553 bus to triggering on. The bus number
              is specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?

        **Info:**
            - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the DBCA bit.
        """
        return self._dbca

    @property
    def instr(self) -> TriggerBBusBItemMil1553bStatusBitInstr:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.

        **Description:**
            - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10)
              in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
              by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?

        **Info:**
            - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the INSTR bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the INSTR bit.
        """
        return self._instr

    @property
    def me(self) -> TriggerBBusBItemMil1553bStatusBitMe:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.

        **Description:**
            - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
              status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x.
              The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME?

        **Info:**
            - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the ME bit.
        """
        return self._me

    @property
    def srq(self) -> TriggerBBusBItemMil1553bStatusBitSrq:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.

        **Description:**
            - This command sets or queries the value of the status word service request bit (SRQ
              bit, bit 11) in a status word for a MIL-STD-1553 bus to triggering on. The bus number
              is specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?

        **Info:**
            - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the SRQ bit.
        """
        return self._srq

    @property
    def subsf(self) -> TriggerBBusBItemMil1553bStatusBitSubsf:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.

        **Description:**
            - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17)
              in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
              by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?

        **Info:**
            - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the SUBSF bit.
        """
        return self._subsf

    @property
    def tf(self) -> TriggerBBusBItemMil1553bStatusBitTf:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.

        **Description:**
            - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
              status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x.
              The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF?

        **Info:**
            - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the TF bit.
        """
        return self._tf


class TriggerBBusBItemMil1553bStatusAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on status word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bStatusAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on status word
          addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition
          must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemMil1553bStatusAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on status word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          STATus and the address qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bStatusAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemMil1553bStatusAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerBBusBItemMil1553bStatusAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemMil1553bStatusAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> TriggerBBusBItemMil1553bStatusAddressHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on status word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to STATus and the address qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemMil1553bStatusAddressQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on status word
              addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger
              condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemMil1553bStatusAddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on status word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._value


class TriggerBBusBItemMil1553bStatus(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.
        - ``.bit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.
        - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemMil1553bStatusAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._bit = TriggerBBusBItemMil1553bStatusBit(device, f"{self._cmd_syntax}:BIT")
        self._parity = TriggerBBusBItemMil1553bStatusParity(device, f"{self._cmd_syntax}:PARity")

    @property
    def address(self) -> TriggerBBusBItemMil1553bStatusAddress:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def bit(self) -> TriggerBBusBItemMil1553bStatusBit:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.bcr``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.
            - ``.busy``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.
            - ``.dbca``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.
            - ``.instr``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.
            - ``.me``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.
            - ``.srq``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.
            - ``.subsf``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.
            - ``.tf``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.
        """
        return self._bit

    @property
    def parity(self) -> TriggerBBusBItemMil1553bStatusParity:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity`` command.

        **Description:**
            - This command sets or queries the value of the status word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity?

        **Info:**
            - ``ONE`` filters status words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters status words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the parity bit.
        """
        return self._parity


class TriggerBBusBItemMil1553bErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the type of error condition for a MIL-STD-1553 bus to trigger
          on. The bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
        - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?

    **Info:**
        - ``PARity`` specifies triggering on an incorrectly calculated parity bit in any word.
        - ``SYNC`` specifies triggering on any sync pulse that does not transition in the middle of
          the pulse as required.
        - ``DATA`` specifies triggering on any non-contiguous data words.
    """


class TriggerBBusBItemMil1553bDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the value when triggering on data words for a MIL-STD-1553
          bus. The bus number is specified by x. The trigger condition must be set to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bDataParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity`` command.

    **Description:**
        - This command sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?

    **Info:**
        - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of data words on the parity bit.
    """


class TriggerBBusBItemMil1553bData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._parity = TriggerBBusBItemMil1553bDataParity(device, f"{self._cmd_syntax}:PARity")
        self._value = TriggerBBusBItemMil1553bDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def parity(self) -> TriggerBBusBItemMil1553bDataParity:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity?

        **Info:**
            - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
            - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
            - ``NOCARE`` disables filtering of data words on the parity bit.
        """
        return self._parity

    @property
    def value(self) -> TriggerBBusBItemMil1553bDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the value when triggering on data words for a
              MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set
              to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value.
        """
        return self._value


class TriggerBBusBItemMil1553bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition`` command.

    **Description:**
        - This command sets or queries the field or condition for a MIL-STD-1553 bus to trigger on.
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
        - TRIGger:B:BUS:B<x>:MIL1553B:CONDition?

    **Info:**
        - ``SYNC`` specifies triggering on the sync pulse of any word.
        - ``COMMAND`` specifies triggering on a matching command word.
        - ``STATus`` specifies triggering on a matching status word.
        - ``DATA`` specifies triggering on a matching data word.
        - ``TIMe`` specifies triggering on the response time or intermessage gap between words.
        - ``ERRor`` specifies triggering on a specified error condition.
    """


class TriggerBBusBItemMil1553bCommandTrbit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.

    **Description:**
        - This command sets or queries the value of the command word Transmit / Receive bit for a
          MIL-STD-1553 bus to trigger on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?

    **Info:**
        - ``RX`` filters command words to only match those that are receive packets.
        - ``TX`` filters command words to only match those that are transmit packets.
        - ``X`` disables filtering of command words on the R/T bit.
    """


class TriggerBBusBItemMil1553bCommandSubaddress(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.

    **Description:**
        - This command sets or queries the value of the command word subaddress field for a
          MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?

    **Info:**
        - ``<QString>`` is the subaddress value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bCommandParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.

    **Description:**
        - This command sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?

    **Info:**
        - ``ONE`` filters command words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters command words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of command words on the parity bit.
    """


class TriggerBBusBItemMil1553bCommandCount(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.

    **Description:**
        - This command sets or queries the value of the command word 'word count' field for a
          MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?

    **Info:**
        - ``<QString>`` is the word count value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bCommandAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on command word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          COMMAND

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bCommandAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on command word
          addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemMil1553bCommandAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on command word addresses for
          a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          COMMAND, and the address qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemMil1553bCommandAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemMil1553bCommandAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerBBusBItemMil1553bCommandAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemMil1553bCommandAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> TriggerBBusBItemMil1553bCommandAddressHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on command word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to COMMAND, and the address qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemMil1553bCommandAddressQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on command word
              addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemMil1553bCommandAddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on command word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to COMMAND

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._value


class TriggerBBusBItemMil1553bCommand(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.
        - ``.count``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.
        - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.
        - ``.subaddress``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.
        - ``.trbit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemMil1553bCommandAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._count = TriggerBBusBItemMil1553bCommandCount(device, f"{self._cmd_syntax}:COUNt")
        self._parity = TriggerBBusBItemMil1553bCommandParity(device, f"{self._cmd_syntax}:PARity")
        self._subaddress = TriggerBBusBItemMil1553bCommandSubaddress(
            device, f"{self._cmd_syntax}:SUBADdress"
        )
        self._trbit = TriggerBBusBItemMil1553bCommandTrbit(device, f"{self._cmd_syntax}:TRBit")

    @property
    def address(self) -> TriggerBBusBItemMil1553bCommandAddress:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def count(self) -> TriggerBBusBItemMil1553bCommandCount:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.

        **Description:**
            - This command sets or queries the value of the command word 'word count' field for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt?

        **Info:**
            - ``<QString>`` is the word count value.
        """
        return self._count

    @property
    def parity(self) -> TriggerBBusBItemMil1553bCommandParity:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity?

        **Info:**
            - ``ONE`` filters command words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters command words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of command words on the parity bit.
        """
        return self._parity

    @property
    def subaddress(self) -> TriggerBBusBItemMil1553bCommandSubaddress:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.

        **Description:**
            - This command sets or queries the value of the command word subaddress field for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?

        **Info:**
            - ``<QString>`` is the subaddress value.
        """
        return self._subaddress

    @property
    def trbit(self) -> TriggerBBusBItemMil1553bCommandTrbit:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.

        **Description:**
            - This command sets or queries the value of the command word Transmit / Receive bit for
              a MIL-STD-1553 bus to trigger on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
            - TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit?

        **Info:**
            - ``RX`` filters command words to only match those that are receive packets.
            - ``TX`` filters command words to only match those that are transmit packets.
            - ``X`` disables filtering of command words on the R/T bit.
        """
        return self._trbit


class TriggerBBusBItemMil1553b(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:MIL1553B`` command tree.

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

    Properties:
        - ``.command``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND`` command tree.
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe`` command.
        - ``.status``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus`` command tree.
        - ``.time``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = TriggerBBusBItemMil1553bCommand(device, f"{self._cmd_syntax}:COMMAND")
        self._condition = TriggerBBusBItemMil1553bCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemMil1553bData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerBBusBItemMil1553bErrtype(device, f"{self._cmd_syntax}:ERRTYPe")
        self._status = TriggerBBusBItemMil1553bStatus(device, f"{self._cmd_syntax}:STATus")
        self._time = TriggerBBusBItemMil1553bTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def command(self) -> TriggerBBusBItemMil1553bCommand:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.
            - ``.count``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.
            - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.
            - ``.subaddress``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.
            - ``.trbit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.
        """
        return self._command

    @property
    def condition(self) -> TriggerBBusBItemMil1553bCondition:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition`` command.

        **Description:**
            - This command sets or queries the field or condition for a MIL-STD-1553 bus to trigger
              on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
            - TRIGger:B:BUS:B<x>:MIL1553B:CONDition?

        **Info:**
            - ``SYNC`` specifies triggering on the sync pulse of any word.
            - ``COMMAND`` specifies triggering on a matching command word.
            - ``STATus`` specifies triggering on a matching status word.
            - ``DATA`` specifies triggering on a matching data word.
            - ``TIMe`` specifies triggering on the response time or intermessage gap between words.
            - ``ERRor`` specifies triggering on a specified error condition.
        """
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemMil1553bData:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:PARity`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerBBusBItemMil1553bErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe`` command.

        **Description:**
            - This command sets or queries the type of error condition for a MIL-STD-1553 bus to
              trigger on. The bus number is specified by x. The trigger condition must be set to
              ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
            - TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe?

        **Info:**
            - ``PARity`` specifies triggering on an incorrectly calculated parity bit in any word.
            - ``SYNC`` specifies triggering on any sync pulse that does not transition in the middle
              of the pulse as required.
            - ``DATA`` specifies triggering on any non-contiguous data words.
        """
        return self._errtype

    @property
    def status(self) -> TriggerBBusBItemMil1553bStatus:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:STATus?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:STATus?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.
            - ``.bit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.
            - ``.parity``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus:PARity`` command.
        """
        return self._status

    @property
    def time(self) -> TriggerBBusBItemMil1553bTime:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.lesslimit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.
            - ``.morelimit``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.
        """
        return self._time


class TriggerBBusBItemLinIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for LIN bus trigger if the trigger
          condition is ID or IDANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue <QString>
        - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` is the binary address string used for LIN trigger if the trigger condition
          is ID or IDANDDATA.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemLinIdentifier(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:IDentifier?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:IDentifier?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemLinIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemLinIdentifierValue:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for LIN bus trigger if the
              trigger condition is ID or IDANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue <QString>
            - TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` is the binary address string used for LIN trigger if the trigger
              condition is ID or IDANDDATA.
        """
        return self._value


class TriggerBBusBItemLinErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE`` command.

    **Description:**
        - This command specifies the error type be used for LIN trigger. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
        - TRIGger:B:BUS:B<x>:LIN:ERRTYPE?

    **Info:**
        - ``SYNC`` sets the LIN error type to SYNC.
        - ``PARity`` sets the LIN error type to parity.
        - ``CHecksum`` sets the LIN error type to checksum.
    """


class TriggerBBusBItemLinDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string to be used for LIN trigger condition if
          trigger condition is ID or IDANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:LIN:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the LIN trigger data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemLinDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for LIN trigger.
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the size of the data string in bytes.
    """


class TriggerBBusBItemLinDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier`` command.

    **Description:**
        - This command specifies the LIN data qualifier. This only applies if the trigger condition
          is IDANDDATA or DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the LIN data qualifier to less than.
        - ``MOREthan`` sets the LIN data qualifier to greater than.
        - ``EQual`` sets the LIN data qualifier to equal.
        - ``UNEQual`` sets the LIN data qualifier to not equal.
        - ``LESSEQual`` sets the LIN data qualifier to less than or equal.
        - ``MOREEQual`` sets the LIN data qualifier to greater than or equal.
        - ``INrange`` sets the LIN data qualifier to in range.
        - ``OUTrange`` sets the LIN data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemLinDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the high data value string used for a LIN bus trigger when the
          trigger condition is DATA or IDANDDATA and the data qualifier is INRANGE or OUTRANGE. The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary data string used for LIN trigger if
          the trigger condition is ID or IDANDDATA.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemLinData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemLinDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemLinDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerBBusBItemLinDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemLinDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemLinDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the high data value string used for a LIN bus trigger when the
              trigger condition is DATA or IDANDDATA and the data qualifier is INRANGE or OUTRANGE.
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary data string used for LIN trigger
              if the trigger condition is ID or IDANDDATA.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemLinDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier`` command.

        **Description:**
            - This command specifies the LIN data qualifier. This only applies if the trigger
              condition is IDANDDATA or DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the LIN data qualifier to less than.
            - ``MOREthan`` sets the LIN data qualifier to greater than.
            - ``EQual`` sets the LIN data qualifier to equal.
            - ``UNEQual`` sets the LIN data qualifier to not equal.
            - ``LESSEQual`` sets the LIN data qualifier to less than or equal.
            - ``MOREEQual`` sets the LIN data qualifier to greater than or equal.
            - ``INrange`` sets the LIN data qualifier to in range.
            - ``OUTrange`` sets the LIN data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerBBusBItemLinDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for LIN
              trigger. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:LIN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the size of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemLinDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string to be used for LIN trigger condition if
              trigger condition is ID or IDANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:LIN:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the LIN trigger data value.
        """
        return self._value


class TriggerBBusBItemLinCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for LIN. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:LIN:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
        - TRIGger:B:BUS:B<x>:LIN:CONDition?

    **Info:**
        - ``SYNCfield`` sets the LIN trigger condition to sync field.
        - ``IDentifier`` sets the LIN trigger condition to identifier.
        - ``DATa`` sets the LIN trigger condition to data.
        - ``IDANDDATA`` sets the LIN trigger condition to id and data.
        - ``WAKEup`` sets the LIN trigger condition to wake up.
        - ``SLEEP`` sets the LIN trigger condition to sleep.
        - ``ERRor`` sets the LIN trigger condition to error.
    """


class TriggerBBusBItemLin(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:LIN`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:LIN:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:LIN:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE`` command.
        - ``.identifier``: The ``TRIGger:B:BUS:B<x>:LIN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemLinCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemLinData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerBBusBItemLinErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._identifier = TriggerBBusBItemLinIdentifier(device, f"{self._cmd_syntax}:IDentifier")

    @property
    def condition(self) -> TriggerBBusBItemLinCondition:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for LIN. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
            - TRIGger:B:BUS:B<x>:LIN:CONDition?

        **Info:**
            - ``SYNCfield`` sets the LIN trigger condition to sync field.
            - ``IDentifier`` sets the LIN trigger condition to identifier.
            - ``DATa`` sets the LIN trigger condition to data.
            - ``IDANDDATA`` sets the LIN trigger condition to id and data.
            - ``WAKEup`` sets the LIN trigger condition to wake up.
            - ``SLEEP`` sets the LIN trigger condition to sleep.
            - ``ERRor`` sets the LIN trigger condition to error.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemLinData:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:LIN:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerBBusBItemLinErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE`` command.

        **Description:**
            - This command specifies the error type be used for LIN trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
            - TRIGger:B:BUS:B<x>:LIN:ERRTYPE?

        **Info:**
            - ``SYNC`` sets the LIN error type to SYNC.
            - ``PARity`` sets the LIN error type to parity.
            - ``CHecksum`` sets the LIN error type to checksum.
        """
        return self._errtype

    @property
    def identifier(self) -> TriggerBBusBItemLinIdentifier:
        """Return the ``TRIGger:B:BUS:B<x>:LIN:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:LIN:IDentifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:LIN:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:LIN:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerBBusBItemI3cTbitDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction`` command.

    **Description:**
        - This command specifies the I3C trigger for T-Bit error direction when triggering on error
          type field. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
        - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?

    **Info:**
        - ``READ`` sets the trigger condition to T-bit Parity Error. This is the default value.
        - ``WRITe`` sets the trigger condition to T-bit Slave Error.
    """


class TriggerBBusBItemI3cTbit(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:TBIT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerBBusBItemI3cTbitDirection(device, f"{self._cmd_syntax}:DIREction")

    @property
    def direction(self) -> TriggerBBusBItemI3cTbitDirection:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction`` command.

        **Description:**
            - This command specifies the I3C trigger for T-Bit error direction when triggering on
              error type field. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
            - TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction?

        **Info:**
            - ``READ`` sets the trigger condition to T-bit Parity Error. This is the default value.
            - ``WRITe`` sets the trigger condition to T-bit Slave Error.
        """
        return self._direction


class TriggerBBusBItemI3cSdrDirectpacket(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.

    **Description:**
        - This command sets or queries the I3C trigger for SDR Direct Packets. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
        - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?

    **Info:**
        - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
        - ``DISLave`` sets the trigger condition to Disable Slave.
        - ``ENTasx`` sets the trigger condition to Enter Activity State.
        - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
        - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
        - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
        - ``SEText`` sets the trigger condition to Set Exchange Time.
        - ``SETDya`` sets the trigger condition to Set Dynamic Address.
        - ``SETNdya`` sets the trigger condition to Set New Dynamic Address.
        - ``GETMWrl`` sets the trigger condition to Get Max Write Length.
        - ``GETMRdl`` sets the trigger condition to Get Max Read Length.
        - ``GETPrid`` sets the trigger condition to Get Provisional ID.
        - ``GETBusch`` sets the trigger condition to Get Bus Characteristics.
        - ``GETDevch`` sets the trigger condition to Get Dev Characteristics.
        - ``GETSlave`` sets the trigger condition to Get Slave Current Status.
        - ``ACCM`` sets the trigger condition to Get Accept Mastership.
        - ``SETBrt`` sets the trigger condition to Set Bridge Direct Target.
        - ``MDATASpeed`` sets the trigger condition to Get Max Data Speed.
        - ``HDRCapability`` sets the trigger condition to Get HDR Capability.
        - ``GETXTime`` sets the trigger condition to Get Exchange Time.
    """  # noqa: E501


class TriggerBBusBItemI3cSdrBroadcastpacket(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.

    **Description:**
        - This command sets or queries the I3C trigger for SDR broadcast packets. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
        - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?

    **Info:**
        - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
        - ``DISLave`` sets the trigger condition to Disable Slave.
        - ``ENTasx`` sets the trigger condition to Enter Activity State.
        - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
        - ``ENTRDya`` sets the trigger condition to Enter Dynamic Address.
        - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
        - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
        - ``DLSLave`` sets the trigger condition to Define List of Slaves.
        - ``ENTRTSTMode`` sets the trigger condition to Enter Test Mode.
        - ``EXTime`` sets the trigger condition to Set Exchange Time.
        - ``SETaasa`` sets the trigger condition to Set Static As Dynamic Address.
    """  # noqa: E501


class TriggerBBusBItemI3cSdr(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:SDR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:SDR?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:SDR?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.broadcastpacket``: The ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.
        - ``.directpacket``: The ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._broadcastpacket = TriggerBBusBItemI3cSdrBroadcastpacket(
            device, f"{self._cmd_syntax}:BROADCASTPacket"
        )
        self._directpacket = TriggerBBusBItemI3cSdrDirectpacket(
            device, f"{self._cmd_syntax}:DIRECTPacket"
        )

    @property
    def broadcastpacket(self) -> TriggerBBusBItemI3cSdrBroadcastpacket:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.

        **Description:**
            - This command sets or queries the I3C trigger for SDR broadcast packets. The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
            - TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket?

        **Info:**
            - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
            - ``DISLave`` sets the trigger condition to Disable Slave.
            - ``ENTasx`` sets the trigger condition to Enter Activity State.
            - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
            - ``ENTRDya`` sets the trigger condition to Enter Dynamic Address.
            - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
            - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
            - ``DLSLave`` sets the trigger condition to Define List of Slaves.
            - ``ENTRTSTMode`` sets the trigger condition to Enter Test Mode.
            - ``EXTime`` sets the trigger condition to Set Exchange Time.
            - ``SETaasa`` sets the trigger condition to Set Static As Dynamic Address.
        """  # noqa: E501
        return self._broadcastpacket

    @property
    def directpacket(self) -> TriggerBBusBItemI3cSdrDirectpacket:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.

        **Description:**
            - This command sets or queries the I3C trigger for SDR Direct Packets. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
            - TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket?

        **Info:**
            - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
            - ``DISLave`` sets the trigger condition to Disable Slave.
            - ``ENTasx`` sets the trigger condition to Enter Activity State.
            - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
            - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
            - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
            - ``SEText`` sets the trigger condition to Set Exchange Time.
            - ``SETDya`` sets the trigger condition to Set Dynamic Address.
            - ``SETNdya`` sets the trigger condition to Set New Dynamic Address.
            - ``GETMWrl`` sets the trigger condition to Get Max Write Length.
            - ``GETMRdl`` sets the trigger condition to Get Max Read Length.
            - ``GETPrid`` sets the trigger condition to Get Provisional ID.
            - ``GETBusch`` sets the trigger condition to Get Bus Characteristics.
            - ``GETDevch`` sets the trigger condition to Get Dev Characteristics.
            - ``GETSlave`` sets the trigger condition to Get Slave Current Status.
            - ``ACCM`` sets the trigger condition to Get Accept Mastership.
            - ``SETBrt`` sets the trigger condition to Set Bridge Direct Target.
            - ``MDATASpeed`` sets the trigger condition to Get Max Data Speed.
            - ``HDRCapability`` sets the trigger condition to Get HDR Capability.
            - ``GETXTime`` sets the trigger condition to Get Exchange Time.
        """  # noqa: E501
        return self._directpacket


class TriggerBBusBItemI3cErrortype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe`` command.

    **Description:**
        - This command specifies the error type when triggering on I3C errors. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
        - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?

    **Info:**
        - ``NACK`` sets the trigger condition to Missing ACK error . This is the default value.
        - ``TBIT`` sets the trigger condition to Slave/Parity Error shown by Transition bit.
        - ``BADDr`` sets the trigger condition to BroadCast Error.
    """


class TriggerBBusBItemI3cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for I3C triggering if the trigger
          condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:I3C:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the I3C trigger data value. Default Data is
          XXXXXXXX and user can enter up to XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemI3cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an I3C
          trigger if the trigger condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the size of the data string in bytes. Data bytes can vary from 1 to 5.
    """


class TriggerBBusBItemI3cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection`` command.

    **Description:**
        - This command specifies the I3C bus data direction when triggering on data field. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?

    **Info:**
        - ``READ`` sets the trigger condition to Read Packet. This is the default value.
        - ``WRITE`` sets the trigger condition to Write Packet.
        - ``NOCARE`` sets the trigger condition to Either Read or Write Packet.
    """


class TriggerBBusBItemI3cData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerBBusBItemI3cDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._size = TriggerBBusBItemI3cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemI3cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerBBusBItemI3cDataDirection:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection`` command.

        **Description:**
            - This command specifies the I3C bus data direction when triggering on data field. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:B:BUS:B<x>:I3C:DATa:DIRection?

        **Info:**
            - ``READ`` sets the trigger condition to Read Packet. This is the default value.
            - ``WRITE`` sets the trigger condition to Write Packet.
            - ``NOCARE`` sets the trigger condition to Either Read or Write Packet.
        """
        return self._direction

    @property
    def size(self) -> TriggerBBusBItemI3cDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an I3C
              trigger if the trigger condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:I3C:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the size of the data string in bytes. Data bytes can vary from 1 to 5.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemI3cDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for I3C triggering if the trigger
              condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:I3C:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the I3C trigger data value. Default Data is
              XXXXXXXX and user can enter up to XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX.
        """
        return self._value


class TriggerBBusBItemI3cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a I3C bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
        - TRIGger:B:BUS:B<x>:I3C:CONDition?

    **Info:**
        - ``STARt`` sets the trigger condition to STARt. This is the default value.
        - ``REPEATStart`` sets the trigger condition to REPEATStart.
        - ``ADDRess`` sets the trigger condition to ADDRess.
        - ``DATa`` sets the trigger condition to DATa.
        - ``SDRDirect`` sets the trigger condition to SDRDirect.
        - ``SDRBroadcast`` sets the trigger condition to SDRBroadcast.
        - ``ERRors`` sets the trigger condition to ERRors.
        - ``HOTJoin`` sets the trigger condition to HOTJoin.
        - ``HDRRestart`` sets the trigger condition to HDRRestart.
        - ``HDRExit`` sets the trigger condition to HDRExit.
        - ``STOP`` sets the trigger condition to STOP.
    """  # noqa: E501


class TriggerBBusBItemI3cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for the I3C trigger if the trigger
          condition is ADDRESS. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue <QString>
        - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the I3C trigger data value. XXXXXXX in case of
          7-bit addressing mode XXXXXXXXXX in case of 10-bit addressing mode.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemI3cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe`` command.

    **Description:**
        - This command specifies the I3C address mode to either 7bit or 10bit when triggering on
          address field. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
        - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?

    **Info:**
        - ``ADDR7`` sets the trigger condition to 7-bit Address. This is the default value.
        - ``ADDR10`` sets the trigger condition to 10-bit Address.
    """


class TriggerBBusBItemI3cAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerBBusBItemI3cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerBBusBItemI3cAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerBBusBItemI3cAddressMode:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe`` command.

        **Description:**
            - This command specifies the I3C address mode to either 7bit or 10bit when triggering on
              address field. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
            - TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe?

        **Info:**
            - ``ADDR7`` sets the trigger condition to 7-bit Address. This is the default value.
            - ``ADDR10`` sets the trigger condition to 10-bit Address.
        """
        return self._mode

    @property
    def value(self) -> TriggerBBusBItemI3cAddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for the I3C trigger if the
              trigger condition is ADDRESS. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue <QString>
            - TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the I3C trigger data value. XXXXXXX in case
              of 7-bit addressing mode XXXXXXXXXX in case of 10-bit addressing mode.
        """
        return self._value


class TriggerBBusBItemI3c(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I3C`` command tree.

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

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:I3C:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:I3C:DATa`` command tree.
        - ``.errortype``: The ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe`` command.
        - ``.sdr``: The ``TRIGger:B:BUS:B<x>:I3C:SDR`` command tree.
        - ``.tbit``: The ``TRIGger:B:BUS:B<x>:I3C:TBIT`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemI3cAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerBBusBItemI3cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemI3cData(device, f"{self._cmd_syntax}:DATa")
        self._errortype = TriggerBBusBItemI3cErrortype(device, f"{self._cmd_syntax}:ERRORTYPe")
        self._sdr = TriggerBBusBItemI3cSdr(device, f"{self._cmd_syntax}:SDR")
        self._tbit = TriggerBBusBItemI3cTbit(device, f"{self._cmd_syntax}:TBIT")

    @property
    def address(self) -> TriggerBBusBItemI3cAddress:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:MODe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerBBusBItemI3cCondition:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a I3C bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
            - TRIGger:B:BUS:B<x>:I3C:CONDition?

        **Info:**
            - ``STARt`` sets the trigger condition to STARt. This is the default value.
            - ``REPEATStart`` sets the trigger condition to REPEATStart.
            - ``ADDRess`` sets the trigger condition to ADDRess.
            - ``DATa`` sets the trigger condition to DATa.
            - ``SDRDirect`` sets the trigger condition to SDRDirect.
            - ``SDRBroadcast`` sets the trigger condition to SDRBroadcast.
            - ``ERRors`` sets the trigger condition to ERRors.
            - ``HOTJoin`` sets the trigger condition to HOTJoin.
            - ``HDRRestart`` sets the trigger condition to HDRRestart.
            - ``HDRExit`` sets the trigger condition to HDRExit.
            - ``STOP`` sets the trigger condition to STOP.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemI3cData:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:DIRection`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:I3C:DATa:VALue`` command.
        """
        return self._data

    @property
    def errortype(self) -> TriggerBBusBItemI3cErrortype:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe`` command.

        **Description:**
            - This command specifies the error type when triggering on I3C errors. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
            - TRIGger:B:BUS:B<x>:I3C:ERRORTYPe?

        **Info:**
            - ``NACK`` sets the trigger condition to Missing ACK error . This is the default value.
            - ``TBIT`` sets the trigger condition to Slave/Parity Error shown by Transition bit.
            - ``BADDr`` sets the trigger condition to BroadCast Error.
        """
        return self._errortype

    @property
    def sdr(self) -> TriggerBBusBItemI3cSdr:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:SDR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:SDR?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:SDR?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.broadcastpacket``: The ``TRIGger:B:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.
            - ``.directpacket``: The ``TRIGger:B:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.
        """
        return self._sdr

    @property
    def tbit(self) -> TriggerBBusBItemI3cTbit:
        """Return the ``TRIGger:B:BUS:B<x>:I3C:TBIT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I3C:TBIT?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:B:BUS:B<x>:I3C:TBIT:DIREction`` command.
        """
        return self._tbit


class TriggerBBusBItemI2cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for I2C triggering if the trigger
          condition is DATA or ADDRANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:I2C:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary data string, where the number of bits is 8 times the number of
          bytes specified. The only allowed characters in the string are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemI2cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an I2C
          trigger if the trigger condition is DATA or ADDRANDDATA. Applies to bus <x>, where the bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerBBusBItemI2cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection`` command.

    **Description:**
        - This command specifies the I 2 C trigger type to be valid on a Read, Write, or Either
          condition. Read or write is indicated by the R/W bit in the I 2 C protocol. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?

    **Info:**
        - ``READ`` specifies read as the data direction.
        - ``WRITE`` specifies write as the data direction.
        - ``NOCARE`` specifies either as the data direction.
    """


class TriggerBBusBItemI2cData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerBBusBItemI2cDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._size = TriggerBBusBItemI2cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemI2cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerBBusBItemI2cDataDirection:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection`` command.

        **Description:**
            - This command specifies the I 2 C trigger type to be valid on a Read, Write, or Either
              condition. Read or write is indicated by the R/W bit in the I 2 C protocol. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:B:BUS:B<x>:I2C:DATa:DIRection?

        **Info:**
            - ``READ`` specifies read as the data direction.
            - ``WRITE`` specifies write as the data direction.
            - ``NOCARE`` specifies either as the data direction.
        """
        return self._direction

    @property
    def size(self) -> TriggerBBusBItemI2cDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an I2C
              trigger if the trigger condition is DATA or ADDRANDDATA. Applies to bus <x>, where the
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:I2C:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemI2cDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for I2C triggering if the trigger
              condition is DATA or ADDRANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:I2C:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary data string, where the number of bits is 8 times the
              number of bytes specified. The only allowed characters in the string are 0, 1, and X.
        """
        return self._value


class TriggerBBusBItemI2cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for an I 2 C trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
        - TRIGger:B:BUS:B<x>:I2C:CONDition?

    **Info:**
        - ``STARt`` specifies a search based on start condition.
        - ``STOP`` specifies a search based on stop condition.
        - ``REPEATstart`` specifies a search based on repeat of start condition.
        - ``ACKMISS`` specifies a search based on missing acknowledgement condition.
        - ``ADDRess`` specifies a search based on address.
        - ``DATa`` specifies a search based on data.
        - ``ADDRANDDATA`` specifies a search based on address and data.
    """


class TriggerBBusBItemI2cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for the I 2 C trigger if the trigger
          condition is ADDRESS or ADDRANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue <QString>
        - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is up to 7 or 10-bits depending on the address mode that specifies the
          address. The only allowed characters in the QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemI2cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe`` command.

    **Description:**
        - This command specifies the I 2 C address mode to 7 or 10-bit. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
        - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?

    **Info:**
        - ``ADDR7`` specifies the 7-bit I2C address mode.
        - ``ADDR10`` specifies the 10-bit I2C address mode.
    """


class TriggerBBusBItemI2cAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerBBusBItemI2cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerBBusBItemI2cAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerBBusBItemI2cAddressMode:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe`` command.

        **Description:**
            - This command specifies the I 2 C address mode to 7 or 10-bit. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
            - TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe?

        **Info:**
            - ``ADDR7`` specifies the 7-bit I2C address mode.
            - ``ADDR10`` specifies the 10-bit I2C address mode.
        """
        return self._mode

    @property
    def value(self) -> TriggerBBusBItemI2cAddressValue:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for the I 2 C trigger if the
              trigger condition is ADDRESS or ADDRANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue <QString>
            - TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is up to 7 or 10-bits depending on the address mode that specifies the
              address. The only allowed characters in the QString are 0, 1, and X.
        """
        return self._value


class TriggerBBusBItemI2c(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:I2C`` command tree.

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

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:I2C:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:I2C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemI2cAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerBBusBItemI2cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemI2cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def address(self) -> TriggerBBusBItemI2cAddress:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:MODe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerBBusBItemI2cCondition:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for an I 2 C trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:I2C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
            - TRIGger:B:BUS:B<x>:I2C:CONDition?

        **Info:**
            - ``STARt`` specifies a search based on start condition.
            - ``STOP`` specifies a search based on stop condition.
            - ``REPEATstart`` specifies a search based on repeat of start condition.
            - ``ACKMISS`` specifies a search based on missing acknowledgement condition.
            - ``ADDRess`` specifies a search based on address.
            - ``DATa`` specifies a search based on data.
            - ``ADDRANDDATA`` specifies a search based on address and data.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemI2cData:
        """Return the ``TRIGger:B:BUS:B<x>:I2C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:I2C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:DIRection`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:I2C:DATa:VALue`` command.
        """
        return self._data


class TriggerBBusBItemFlexrayHeaderPaylength(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.

    **Description:**
        - This command specifies the payload length portion of the binary header string when
          triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
          (using ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?

    **Info:**
        - ``<QString>`` is the length of the payload portion of the Binary header string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayHeaderIndbits(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits`` command.

    **Description:**
        - This command specifies the indicator bits portion of the binary header string when
          triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?

    **Info:**
        - ``<QString>`` is a quoted string that is the indicator bits portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayHeaderFrameid(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.

    **Description:**
        - This command specifies the frame ID portion of the binary header string when triggering on
          the FlexRay bus header. The trigger condition needs to be set to HEADer (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?

    **Info:**
        - ``<QString>`` is a quoted string that represents the frame ID portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayHeaderCyclecount(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.

    **Description:**
        - This command specifies the cycle count portion of the binary header string when triggering
          on the FlexRay bus header. The trigger condition needs to be set to HEADer (using ). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?

    **Info:**
        - ``<QString>`` is a quoted string that is the cycle count portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayHeaderCrc(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC`` command.

    **Description:**
        - This command specifies the CRC portion of the binary header string when triggering on the
          FlexRay bus signal. The trigger condition needs to be set to HEADer (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?

    **Info:**
        - ``<QString>`` is a quoted string that is the CRC portion of the binary header string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayHeader(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.crc``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC`` command.
        - ``.cyclecount``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.
        - ``.frameid``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.
        - ``.indbits``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits`` command.
        - ``.paylength``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crc = TriggerBBusBItemFlexrayHeaderCrc(device, f"{self._cmd_syntax}:CRC")
        self._cyclecount = TriggerBBusBItemFlexrayHeaderCyclecount(
            device, f"{self._cmd_syntax}:CYCLEcount"
        )
        self._frameid = TriggerBBusBItemFlexrayHeaderFrameid(device, f"{self._cmd_syntax}:FRAMEID")
        self._indbits = TriggerBBusBItemFlexrayHeaderIndbits(device, f"{self._cmd_syntax}:INDBits")
        self._paylength = TriggerBBusBItemFlexrayHeaderPaylength(
            device, f"{self._cmd_syntax}:PAYLength"
        )

    @property
    def crc(self) -> TriggerBBusBItemFlexrayHeaderCrc:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC`` command.

        **Description:**
            - This command specifies the CRC portion of the binary header string when triggering on
              the FlexRay bus signal. The trigger condition needs to be set to HEADer (using ). The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC?

        **Info:**
            - ``<QString>`` is a quoted string that is the CRC portion of the binary header string.
        """
        return self._crc

    @property
    def cyclecount(self) -> TriggerBBusBItemFlexrayHeaderCyclecount:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.

        **Description:**
            - This command specifies the cycle count portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount?

        **Info:**
            - ``<QString>`` is a quoted string that is the cycle count portion of the binary header
              string.
        """
        return self._cyclecount

    @property
    def frameid(self) -> TriggerBBusBItemFlexrayHeaderFrameid:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.

        **Description:**
            - This command specifies the frame ID portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID?

        **Info:**
            - ``<QString>`` is a quoted string that represents the frame ID portion of the binary
              header string.
        """
        return self._frameid

    @property
    def indbits(self) -> TriggerBBusBItemFlexrayHeaderIndbits:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits`` command.

        **Description:**
            - This command specifies the indicator bits portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits?

        **Info:**
            - ``<QString>`` is a quoted string that is the indicator bits portion of the binary
              header string.
        """
        return self._indbits

    @property
    def paylength(self) -> TriggerBBusBItemFlexrayHeaderPaylength:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.

        **Description:**
            - This command specifies the payload length portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength?

        **Info:**
            - ``<QString>`` is the length of the payload portion of the Binary header string.
        """
        return self._paylength


class TriggerBBusBItemFlexrayFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType`` command.

    **Description:**
        - This command specifies the frame type (normal, payload, null, sync or startup) when
          triggering on the FlexRay bus signal. The trigger condition needs to be set to FRAMEType
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?

    **Info:**
        - ``NORMal`` specifies the normal frame type.
        - ``PAYLoad`` specifies the payload frame type.
        - ``NULL`` specifies the null frame type.
        - ``SYNC`` specifies the sync frame type.
        - ``STARTup`` specifies the startup frame type.
    """


class TriggerBBusBItemFlexrayFrameidValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus frame ID field.
          (Use to set the high value.) The trigger condition needs to be set to IDentifier (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the FlexRay frame ID low value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayFrameidQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to use when triggering on the FlexRay bus frame ID
          field. The trigger condition needs to be set to IDentifier (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?

    **Info:**
        - ``LESSthan`` sets the frame ID qualifier to less than.
        - ``MOREthan`` sets the frame ID qualifier to greater than.
        - ``EQual`` sets the frame ID qualifier to equal.
        - ``UNEQual`` sets the frame ID qualifier to not equal.
        - ``LESSEQual`` sets the frame ID qualifier to less than or equal.
        - ``MOREEQual`` sets the frame ID qualifier to greater than or equal.
        - ``INrange`` sets the frame ID qualifier to in range.
        - ``OUTrange`` sets the frame ID qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemFlexrayFrameidHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on the FlexRay bus frame ID field.
          (Use to set the low value.) The trigger condition needs to be set to IDentifier (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary frame ID high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayFrameid(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemFlexrayFrameidHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemFlexrayFrameidQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemFlexrayFrameidValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemFlexrayFrameidHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on the FlexRay bus frame ID
              field. (Use to set the low value.) The trigger condition needs to be set to IDentifier
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary frame ID high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemFlexrayFrameidQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to use when triggering on the FlexRay bus frame
              ID field. The trigger condition needs to be set to IDentifier (using ). The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier?

        **Info:**
            - ``LESSthan`` sets the frame ID qualifier to less than.
            - ``MOREthan`` sets the frame ID qualifier to greater than.
            - ``EQual`` sets the frame ID qualifier to equal.
            - ``UNEQual`` sets the frame ID qualifier to not equal.
            - ``LESSEQual`` sets the frame ID qualifier to less than or equal.
            - ``MOREEQual`` sets the frame ID qualifier to greater than or equal.
            - ``INrange`` sets the frame ID qualifier to in range.
            - ``OUTrange`` sets the frame ID qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemFlexrayFrameidValue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus frame ID
              field. (Use to set the high value.) The trigger condition needs to be set to
              IDentifier (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the FlexRay frame ID low value.
        """
        return self._value


class TriggerBBusBItemFlexrayErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE`` command.

    **Description:**
        - This command specifies the error type when triggering on the FlexRay bus signal. The
          trigger condition needs to be set to ERROR (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
        - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?

    **Info:**
        - ``CRCHeader`` sets the error type to CRCHeader.
        - ``CRCTrailer`` sets the error type to CRCTrailer.
        - ``SYNCFrame`` sets the error type to SYNCFrame.
        - ``STARTupnosync`` sets the error type to STARTupnosync.
        - ``NULLFRStatic`` sets the error type to NULLFRStatic.
        - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
    """  # noqa: E501


class TriggerBBusBItemFlexrayEoftype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE`` command.

    **Description:**
        - This command specifies the end of file type (static, dynamic or any) when triggering on
          the FlexRay bus EOF field. The trigger condition needs to be set to EOF (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
        - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?

    **Info:**
        - ``STATic`` specifies triggering on the STATIC end of file type.
        - ``DYNAMic`` specifies triggering on the DYNAMIC end of file type.
        - ``ANY`` specifies triggering on a STATIC or DYNAMIC end of file type.
    """


class TriggerBBusBItemFlexrayDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus data field. (Use
          to set the upper value.) The trigger condition needs to be set to ID or IDANDDATA (using
          ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string, in bytes, when triggering on the
          FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the FlexRay data string length, in bytes.
    """


class TriggerBBusBItemFlexrayDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range) to
          use when triggering on the FlexRay bus data field. The trigger condition needs to be set
          to ID or IDANDDATA (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to greater than.
        - ``EQual`` sets the data qualifier to eqaual.
        - ``UNEQual`` sets the data qualifier to not equal.
        - ``LESSEQual`` sets the data qualifier to less than or equal.
        - ``MOREEQual`` sets the data qualifier to greater than or equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemFlexrayDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet`` command.

    **Description:**
        - This command specifies the offset of the data string, in bytes, when triggering on the
          FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
        - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is the offset of the data string in bytes. A byte offset of -1 signifies 'don't
          care', and no byte offset is used. The instrument will trigger on or match any byte value
          that fits.
    """


class TriggerBBusBItemFlexrayDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on the FlexRay bus data field. (Use
          to set the lower value.) The trigger condition needs to be set to ID or IDANDDATA (using
          ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary data high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemFlexrayDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerBBusBItemFlexrayDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerBBusBItemFlexrayDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = TriggerBBusBItemFlexrayDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemFlexrayDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemFlexrayDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on the FlexRay bus data field.
              (Use to set the lower value.) The trigger condition needs to be set to ID or IDANDDATA
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary data high value.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerBBusBItemFlexrayDataOffset:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet`` command.

        **Description:**
            - This command specifies the offset of the data string, in bytes, when triggering on the
              FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
            - TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is the offset of the data string in bytes. A byte offset of -1 signifies
              'don't care', and no byte offset is used. The instrument will trigger on or match any
              byte value that fits.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerBBusBItemFlexrayDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range)
              to use when triggering on the FlexRay bus data field. The trigger condition needs to
              be set to ID or IDANDDATA (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to greater than.
            - ``EQual`` sets the data qualifier to eqaual.
            - ``UNEQual`` sets the data qualifier to not equal.
            - ``LESSEQual`` sets the data qualifier to less than or equal.
            - ``MOREEQual`` sets the data qualifier to greater than or equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerBBusBItemFlexrayDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string, in bytes, when triggering on the
              FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the FlexRay data string length, in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemFlexrayDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus data field.
              (Use to set the upper value.) The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string.
        """
        return self._value


class TriggerBBusBItemFlexrayCyclecountValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus cycle count field.
          (Use to set the upper value.) The trigger condition must be set to CYCLEcount (using ).The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?

    **Info:**
        - ``<QString>`` is a quoted binary data string that represents the cycle count low value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayCyclecountQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range) to
          use when triggering on the FlexRay bus cycle count field. The trigger condition must be
          set to CYCLEcount (using ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?

    **Info:**
        - ``LESSthan`` sets the cycle count qualifier to less than.
        - ``MOREthan`` sets the cycle count qualifier to more than.
        - ``EQual`` sets the cycle count qualifier to equal.
        - ``UNEQual`` sets the cycle count qualifier to not equal.
        - ``LESSEQual`` sets the cycle count qualifier to less than or equal.
        - ``MOREEQual`` sets the cycle count qualifier to greater than or equal.
        - ``INrange`` sets the cycle count qualifier to in range.
        - ``OUTrange`` sets the cycle count qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemFlexrayCyclecountHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on a FlexRay bus cycle count field.
          (Use to set the low value.) The trigger condition must be set to CYCLEcount (using ). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the cycle count high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemFlexrayCyclecount(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemFlexrayCyclecountHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerBBusBItemFlexrayCyclecountQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemFlexrayCyclecountValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemFlexrayCyclecountHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on a FlexRay bus cycle count
              field. (Use to set the low value.) The trigger condition must be set to CYCLEcount
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the cycle count high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemFlexrayCyclecountQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range)
              to use when triggering on the FlexRay bus cycle count field. The trigger condition
              must be set to CYCLEcount (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?

        **Info:**
            - ``LESSthan`` sets the cycle count qualifier to less than.
            - ``MOREthan`` sets the cycle count qualifier to more than.
            - ``EQual`` sets the cycle count qualifier to equal.
            - ``UNEQual`` sets the cycle count qualifier to not equal.
            - ``LESSEQual`` sets the cycle count qualifier to less than or equal.
            - ``MOREEQual`` sets the cycle count qualifier to greater than or equal.
            - ``INrange`` sets the cycle count qualifier to in range.
            - ``OUTrange`` sets the cycle count qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemFlexrayCyclecountValue:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus cycle count
              field. (Use to set the upper value.) The trigger condition must be set to CYCLEcount
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
            - TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue?

        **Info:**
            - ``<QString>`` is a quoted binary data string that represents the cycle count low
              value.
        """
        return self._value


class TriggerBBusBItemFlexrayCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray:CONDition`` command.

    **Description:**
        - This command specifies the condition to use when triggering on a FlexRay bus signal (start
          of frame, frame type, ID, cycle count, header, data, ID and data, EOF, error). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:FLEXray:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
        - TRIGger:B:BUS:B<x>:FLEXray:CONDition?

    **Info:**
        - ``SOF`` sets the trigger condition to start of frame.
        - ``FRAMEType`` sets the trigger condition to frame type.
        - ``IDentifier`` sets the trigger condition to identifier.
        - ``CYCLEcount`` sets the trigger condition to cycle count.
        - ``HEADer`` sets the trigger condition to header.
        - ``DATa`` sets the trigger condition to data.
        - ``IDANDDATA`` sets the trigger condition to id and data.
        - ``EOF`` sets the trigger condition to end of frame.
        - ``ERRor`` sets the trigger condition to error.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class TriggerBBusBItemFlexray(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:FLEXray`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:FLEXray:CONDition`` command.
        - ``.cyclecount``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount`` command tree.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa`` command tree.
        - ``.eoftype``: The ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE`` command.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE`` command.
        - ``.frameid``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID`` command tree.
        - ``.frametype``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType`` command.
        - ``.header``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemFlexrayCondition(device, f"{self._cmd_syntax}:CONDition")
        self._cyclecount = TriggerBBusBItemFlexrayCyclecount(
            device, f"{self._cmd_syntax}:CYCLEcount"
        )
        self._data = TriggerBBusBItemFlexrayData(device, f"{self._cmd_syntax}:DATa")
        self._eoftype = TriggerBBusBItemFlexrayEoftype(device, f"{self._cmd_syntax}:EOFTYPE")
        self._errtype = TriggerBBusBItemFlexrayErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._frameid = TriggerBBusBItemFlexrayFrameid(device, f"{self._cmd_syntax}:FRAMEID")
        self._frametype = TriggerBBusBItemFlexrayFrametype(device, f"{self._cmd_syntax}:FRAMEType")
        self._header = TriggerBBusBItemFlexrayHeader(device, f"{self._cmd_syntax}:HEADER")

    @property
    def condition(self) -> TriggerBBusBItemFlexrayCondition:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:CONDition`` command.

        **Description:**
            - This command specifies the condition to use when triggering on a FlexRay bus signal
              (start of frame, frame type, ID, cycle count, header, data, ID and data, EOF, error).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
            - TRIGger:B:BUS:B<x>:FLEXray:CONDition?

        **Info:**
            - ``SOF`` sets the trigger condition to start of frame.
            - ``FRAMEType`` sets the trigger condition to frame type.
            - ``IDentifier`` sets the trigger condition to identifier.
            - ``CYCLEcount`` sets the trigger condition to cycle count.
            - ``HEADer`` sets the trigger condition to header.
            - ``DATa`` sets the trigger condition to data.
            - ``IDANDDATA`` sets the trigger condition to id and data.
            - ``EOF`` sets the trigger condition to end of frame.
            - ``ERRor`` sets the trigger condition to error.
        """  # noqa: E501
        return self._condition

    @property
    def cyclecount(self) -> TriggerBBusBItemFlexrayCyclecount:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.
        """
        return self._cyclecount

    @property
    def data(self) -> TriggerBBusBItemFlexrayData:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa:VALue`` command.
        """
        return self._data

    @property
    def eoftype(self) -> TriggerBBusBItemFlexrayEoftype:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE`` command.

        **Description:**
            - This command specifies the end of file type (static, dynamic or any) when triggering
              on the FlexRay bus EOF field. The trigger condition needs to be set to EOF (using ).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
            - TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE?

        **Info:**
            - ``STATic`` specifies triggering on the STATIC end of file type.
            - ``DYNAMic`` specifies triggering on the DYNAMIC end of file type.
            - ``ANY`` specifies triggering on a STATIC or DYNAMIC end of file type.
        """
        return self._eoftype

    @property
    def errtype(self) -> TriggerBBusBItemFlexrayErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE`` command.

        **Description:**
            - This command specifies the error type when triggering on the FlexRay bus signal. The
              trigger condition needs to be set to ERROR (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
            - TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE?

        **Info:**
            - ``CRCHeader`` sets the error type to CRCHeader.
            - ``CRCTrailer`` sets the error type to CRCTrailer.
            - ``SYNCFrame`` sets the error type to SYNCFrame.
            - ``STARTupnosync`` sets the error type to STARTupnosync.
            - ``NULLFRStatic`` sets the error type to NULLFRStatic.
            - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
        """  # noqa: E501
        return self._errtype

    @property
    def frameid(self) -> TriggerBBusBItemFlexrayFrameid:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.
        """
        return self._frameid

    @property
    def frametype(self) -> TriggerBBusBItemFlexrayFrametype:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType`` command.

        **Description:**
            - This command specifies the frame type (normal, payload, null, sync or startup) when
              triggering on the FlexRay bus signal. The trigger condition needs to be set to
              FRAMEType (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
            - TRIGger:B:BUS:B<x>:FLEXray:FRAMEType?

        **Info:**
            - ``NORMal`` specifies the normal frame type.
            - ``PAYLoad`` specifies the payload frame type.
            - ``NULL`` specifies the null frame type.
            - ``SYNC`` specifies the sync frame type.
            - ``STARTup`` specifies the startup frame type.
        """
        return self._frametype

    @property
    def header(self) -> TriggerBBusBItemFlexrayHeader:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:FLEXray:HEADER?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:FLEXray:HEADER?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.crc``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CRC`` command.
            - ``.cyclecount``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.
            - ``.frameid``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.
            - ``.indbits``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:INDBits`` command.
            - ``.paylength``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.
        """
        return self._header


class TriggerBBusBItemEthernetTcpheaderSourceportValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 16-bit
          source port address that is to be used in the trigger (along with the destination port
          address, the sequence number and the acknowledgement number). The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetTcpheaderSourceport(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetTcpheaderSourceportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetTcpheaderSourceportValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              16-bit source port address that is to be used in the trigger (along with the
              destination port address, the sequence number and the acknowledgement number). The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetTcpheaderSeqnumValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 32-bit
          sequence number that is to be used in the trigger (along with the destination and source
          port addresses and the acknowledgement value). The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetTcpheaderSeqnum(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetTcpheaderSeqnumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetTcpheaderSeqnumValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              32-bit sequence number that is to be used in the trigger (along with the destination
              and source port addresses and the acknowledgement value). The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetTcpheaderDestinationportValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set TCPHeader, this command specifies the 16-bit
          destination port address value that is to be used in the trigger (along with the
          acknowledgement value, source port address and the sequence number). The default is all
          X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetTcpheaderDestinationport(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetTcpheaderDestinationportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetTcpheaderDestinationportValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set TCPHeader, this command specifies the
              16-bit destination port address value that is to be used in the trigger (along with
              the acknowledgement value, source port address and the sequence number). The default
              is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetTcpheaderAcknumValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 32-bit
          acknowledgement number that is to be used in the trigger (along with the destination and
          source port addresses and the sequence number). The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetTcpheaderAcknum(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetTcpheaderAcknumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetTcpheaderAcknumValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              32-bit acknowledgement number that is to be used in the trigger (along with the
              destination and source port addresses and the sequence number). The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetTcpheader(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.acknum``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.
        - ``.destinationport``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport``
          command tree.
        - ``.seqnum``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.
        - ``.sourceport``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._acknum = TriggerBBusBItemEthernetTcpheaderAcknum(device, f"{self._cmd_syntax}:ACKnum")
        self._destinationport = TriggerBBusBItemEthernetTcpheaderDestinationport(
            device, f"{self._cmd_syntax}:DESTinationport"
        )
        self._seqnum = TriggerBBusBItemEthernetTcpheaderSeqnum(device, f"{self._cmd_syntax}:SEQnum")
        self._sourceport = TriggerBBusBItemEthernetTcpheaderSourceport(
            device, f"{self._cmd_syntax}:SOUrceport"
        )

    @property
    def acknum(self) -> TriggerBBusBItemEthernetTcpheaderAcknum:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.
        """
        return self._acknum

    @property
    def destinationport(self) -> TriggerBBusBItemEthernetTcpheaderDestinationport:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue``
              command.
        """
        return self._destinationport

    @property
    def seqnum(self) -> TriggerBBusBItemEthernetTcpheaderSeqnum:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.
        """
        return self._seqnum

    @property
    def sourceport(self) -> TriggerBBusBItemEthernetTcpheaderSourceport:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.
        """
        return self._sourceport


class TriggerBBusBItemEthernetQtagValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to QTAG, this command specifies the 32-bit
          Q-Tag value to trigger on. The default is all X's (don't care). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetQtag(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetQtagValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemEthernetQtagValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to QTAG, this command specifies the 32-bit
              Q-Tag value to trigger on. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetMacLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
          LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
          16-bit value to trigger on. When the qualifier is set to INrange or OUTrange, this command
          specifies the lower limit of the range. (Use the command to set the upper limit of the
          range.) The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetMacLengthHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
          INrange or OUTrange, this command specifies the upper data value of the range. (Use the
          command to specify the lower limit of the range.) The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string of up toe 16 characters where the allowable characters
          are 0, 1, and X. The bits specified in the quoted string replace the least significant
          bits, leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetMacLength(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemEthernetMacLengthHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = TriggerBBusBItemEthernetMacLengthValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemEthernetMacLengthHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
              INrange or OUTrange, this command specifies the upper data value of the range. (Use
              the command to specify the lower limit of the range.) The default is all X's (don't
              care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string of up toe 16 characters where the allowable
              characters are 0, 1, and X. The bits specified in the quoted string replace the least
              significant bits, leaving any unspecified upper bits unchanged.
        """
        return self._hivalue

    @property
    def value(self) -> TriggerBBusBItemEthernetMacLengthValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
              LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
              16-bit value to trigger on. When the qualifier is set to INrange or OUTrange, this
              command specifies the lower limit of the range. (Use the command to set the upper
              limit of the range.) The default is all X's (don't care). The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetMacAddressSourceValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACADDress, this command specifies the
          48-bit MAC source address value that is to be used in the trigger (along with the
          destination address value). The default is all X's (don't care). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetMacAddressSource(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetMacAddressSourceValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetMacAddressSourceValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACADDress, this command specifies the
              48-bit MAC source address value that is to be used in the trigger (along with the
              destination address value). The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetMacAddressDestinationValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACADDress, this command specifies the
          48-bit MAC destination address that is to be used in the trigger (along with the source
          address value). The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetMacAddressDestination(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetMacAddressDestinationValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetMacAddressDestinationValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACADDress, this command specifies the
              48-bit MAC destination address that is to be used in the trigger (along with the
              source address value). The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetMacAddress(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.destination``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command
          tree.
        - ``.source``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destination = TriggerBBusBItemEthernetMacAddressDestination(
            device, f"{self._cmd_syntax}:DESTination"
        )
        self._source = TriggerBBusBItemEthernetMacAddressSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )

    @property
    def destination(self) -> TriggerBBusBItemEthernetMacAddressDestination:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.
        """
        return self._destination

    @property
    def source(self) -> TriggerBBusBItemEthernetMacAddressSource:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.
        """
        return self._source


class TriggerBBusBItemEthernetMac(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.
        - ``.length``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerBBusBItemEthernetMacAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._length = TriggerBBusBItemEthernetMacLength(device, f"{self._cmd_syntax}:LENgth")

    @property
    def address(self) -> TriggerBBusBItemEthernetMacAddress:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.destination``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command
              tree.
            - ``.source``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.
        """
        return self._address

    @property
    def length(self) -> TriggerBBusBItemEthernetMacLength:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.
        """
        return self._length


class TriggerBBusBItemEthernetIpheaderSourceaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 32-bit source address that is to be used in the trigger (along with the destination
          address and protocol value). The IP source address is a standard IP address such as
          192.168.0.1. The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetIpheaderSourceaddr(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetIpheaderSourceaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetIpheaderSourceaddrValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 32-bit source address that is to be used in the trigger (along with the
              destination address and protocol value). The IP source address is a standard IP
              address such as 192.168.0.1. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetIpheaderProtocolValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 8-bit protocol field that is to be used in the trigger (along with the source and
          destination addresses). The default is all X's (don't care). The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 8 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetIpheaderProtocol(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetIpheaderProtocolValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetIpheaderProtocolValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 8-bit protocol field that is to be used in the trigger (along with the
              source and destination addresses). The default is all X's (don't care). The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 8 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetIpheaderDestinationaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 32-bit destination address that is to be used in the trigger (along with the source
          address and protocol value). The IP destination address is a standard IP address such as
          192.168.0.1. The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetIpheaderDestinationaddr(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemEthernetIpheaderDestinationaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerBBusBItemEthernetIpheaderDestinationaddrValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 32-bit destination address that is to be used in the trigger (along with
              the source address and protocol value). The IP destination address is a standard IP
              address such as 192.168.0.1. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetIpheader(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.destinationaddr``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command
          tree.
        - ``.protocol``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.
        - ``.sourceaddr``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destinationaddr = TriggerBBusBItemEthernetIpheaderDestinationaddr(
            device, f"{self._cmd_syntax}:DESTinationaddr"
        )
        self._protocol = TriggerBBusBItemEthernetIpheaderProtocol(
            device, f"{self._cmd_syntax}:PROTOcol"
        )
        self._sourceaddr = TriggerBBusBItemEthernetIpheaderSourceaddr(
            device, f"{self._cmd_syntax}:SOUrceaddr"
        )

    @property
    def destinationaddr(self) -> TriggerBBusBItemEthernetIpheaderDestinationaddr:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue``
              command.
        """
        return self._destinationaddr

    @property
    def protocol(self) -> TriggerBBusBItemEthernetIpheaderProtocol:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.
        """
        return self._protocol

    @property
    def sourceaddr(self) -> TriggerBBusBItemEthernetIpheaderSourceaddr:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.
        """
        return self._sourceaddr


class TriggerBBusBItemEthernetDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, and the qualifier is set to LESSthan,
          MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the value to
          trigger on. When the Ethernet trigger condition is set to DATa, and the qualifier is set
          to INrange or OUTrange, this command specifies the lower limit of the range. (Use the
          command to set the upper limit of the range.) The default is all X's (don't care). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string where the allowable characters are 0, 1, and X. The
          allowable number of characters depends on the setting for size (using
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe``). The bits specified in the quoted string
          replace the least significant bits, leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, this command specifies the number of
          contiguous TCP/IPv4/MAC client data bytes to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of contiguous TCP/IPv4/MAC client data bytes. The minimum
          and default values are 1 and maximum is 16, except when the qualifier is set to Inside
          Range or Outside Range. In these cases, the maximum size is 4.
    """


class TriggerBBusBItemEthernetDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on an Ethernet bus
          signal. The trigger condition must be set to DATa. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemEthernetDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, this command specifies where in the
          data field to look for the data trigger value. It specifies the offset into the data
          field, in bytes, where the value will be matched. The default is -1 (don't care). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and maximum
          is 1,499.
    """


class TriggerBBusBItemEthernetDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, and the qualifier is set to either
          INrange or OUTrange, this command specifies the upper data value of the range. (Use the
          command to specify the lower limit of the range.) The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string whose length varies depending on the size setting, up to
          32 bits. (Use the command.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemEthernetData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemEthernetDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerBBusBItemEthernetDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerBBusBItemEthernetDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = TriggerBBusBItemEthernetDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemEthernetDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemEthernetDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, and the qualifier is set to either
              INrange or OUTrange, this command specifies the upper data value of the range. (Use
              the command to specify the lower limit of the range.) The default is all X's (don't
              care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string whose length varies depending on the size setting, up
              to 32 bits. (Use the command.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerBBusBItemEthernetDataOffset:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, this command specifies where in
              the data field to look for the data trigger value. It specifies the offset into the
              data field, in bytes, where the value will be matched. The default is -1 (don't care).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and
              maximum is 1,499.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerBBusBItemEthernetDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on an Ethernet
              bus signal. The trigger condition must be set to DATa. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerBBusBItemEthernetDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, this command specifies the number
              of contiguous TCP/IPv4/MAC client data bytes to trigger on. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of contiguous TCP/IPv4/MAC client data bytes. The
              minimum and default values are 1 and maximum is 16, except when the qualifier is set
              to Inside Range or Outside Range. In these cases, the maximum size is 4.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemEthernetDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, and the qualifier is set to
              LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
              value to trigger on. When the Ethernet trigger condition is set to DATa, and the
              qualifier is set to INrange or OUTrange, this command specifies the lower limit of the
              range. (Use the command to set the upper limit of the range.) The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string where the allowable characters are 0, 1, and X. The
              allowable number of characters depends on the setting for size (using
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe``). The bits specified in the quoted string
              replace the least significant bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerBBusBItemEthernetCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition`` command.

    **Description:**
        - This command specifies a field or condition within an Ethernet frame to trigger on. The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
        - TRIGger:B:BUS:B<x>:ETHERnet:CONDition?

    **Info:**
        - ``SFD`` - Start of frame delimiter.
        - ``MACADDRess`` - MAC addresses field.
        - ``MACLENgth`` - MAC length/type field.
        - ``IPHeader`` - IP header field. This argument is only available when PROTOCOL is set to
          IPv4.
        - ``TCPHeader`` - TCP header field. This argument is only available when PROTOCOL is set to
          IPv4.
        - ``DATa`` - TCP/IPv4 or MAC protocol client data field. If the protocol is set to OTHER,
          then DATa refers to the MAC client data.
        - ``EOP`` - End of Packet field.
        - ``IDLe`` - Idle field.
        - ``FCSError`` - Frame Check Sequence Error (CRC) field.
        - ``QTAG`` - IEEE 802.1Q (VLAN) control information field. In order to use QTAG as a trigger
          condition, the frame type must be set to QTAG ).
    """  # noqa: E501


class TriggerBBusBItemEthernet(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ETHERnet`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa`` command tree.
        - ``.ipheader``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader`` command tree.
        - ``.mac``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC`` command tree.
        - ``.qtag``: The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG`` command tree.
        - ``.tcpheader``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemEthernetCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemEthernetData(device, f"{self._cmd_syntax}:DATa")
        self._ipheader = TriggerBBusBItemEthernetIpheader(device, f"{self._cmd_syntax}:IPHeader")
        self._mac = TriggerBBusBItemEthernetMac(device, f"{self._cmd_syntax}:MAC")
        self._qtag = TriggerBBusBItemEthernetQtag(device, f"{self._cmd_syntax}:QTAG")
        self._tcpheader = TriggerBBusBItemEthernetTcpheader(device, f"{self._cmd_syntax}:TCPHeader")

    @property
    def condition(self) -> TriggerBBusBItemEthernetCondition:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition`` command.

        **Description:**
            - This command specifies a field or condition within an Ethernet frame to trigger on.
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
            - TRIGger:B:BUS:B<x>:ETHERnet:CONDition?

        **Info:**
            - ``SFD`` - Start of frame delimiter.
            - ``MACADDRess`` - MAC addresses field.
            - ``MACLENgth`` - MAC length/type field.
            - ``IPHeader`` - IP header field. This argument is only available when PROTOCOL is set
              to IPv4.
            - ``TCPHeader`` - TCP header field. This argument is only available when PROTOCOL is set
              to IPv4.
            - ``DATa`` - TCP/IPv4 or MAC protocol client data field. If the protocol is set to
              OTHER, then DATa refers to the MAC client data.
            - ``EOP`` - End of Packet field.
            - ``IDLe`` - Idle field.
            - ``FCSError`` - Frame Check Sequence Error (CRC) field.
            - ``QTAG`` - IEEE 802.1Q (VLAN) control information field. In order to use QTAG as a
              trigger condition, the frame type must be set to QTAG ).
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemEthernetData:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa:VALue`` command.
        """
        return self._data

    @property
    def ipheader(self) -> TriggerBBusBItemEthernetIpheader:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.destinationaddr``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr``
              command tree.
            - ``.protocol``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.
            - ``.sourceaddr``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.
        """
        return self._ipheader

    @property
    def mac(self) -> TriggerBBusBItemEthernetMac:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:MAC?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.
            - ``.length``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.
        """
        return self._mac

    @property
    def qtag(self) -> TriggerBBusBItemEthernetQtag:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG:VALue`` command.
        """
        return self._qtag

    @property
    def tcpheader(self) -> TriggerBBusBItemEthernetTcpheader:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.acknum``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.
            - ``.destinationport``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport``
              command tree.
            - ``.seqnum``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.
            - ``.sourceport``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command
              tree.
        """
        return self._tcpheader


class TriggerBBusBItemCanIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue`` command.

    **Description:**
        - This command sets the binary address value to be used when triggering on a CAN bus signal.
          The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue <QString>
        - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` is up to 29 bits specifying the binary identifier value. The only allowed
          characters in the QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemCanIdentifierMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe`` command.

    **Description:**
        - This command sets the addressing mode (standard or extended format) to be used when
          triggering on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
        - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?

    **Info:**
        - ``STandard`` specifies the standard addressing mode.
        - ``EXTended`` specifies the extended addressing mode.
    """


class TriggerBBusBItemCanIdentifier(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:IDentifier?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:IDentifier?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerBBusBItemCanIdentifierMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerBBusBItemCanIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerBBusBItemCanIdentifierMode:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe`` command.

        **Description:**
            - This command sets the addressing mode (standard or extended format) to be used when
              triggering on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
            - TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe?

        **Info:**
            - ``STandard`` specifies the standard addressing mode.
            - ``EXTended`` specifies the extended addressing mode.
        """
        return self._mode

    @property
    def value(self) -> TriggerBBusBItemCanIdentifierValue:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue`` command.

        **Description:**
            - This command sets the binary address value to be used when triggering on a CAN bus
              signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue <QString>
            - TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` is up to 29 bits specifying the binary identifier value. The only
              allowed characters in the QString are 0, 1, and X.
        """
        return self._value


class TriggerBBusBItemCanFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype`` command.

    **Description:**
        - This command sets the frame type (data, remote, error or overload) to be used when
          triggering on a CAN bus signal. The trigger condition must be set to FRAMEtype (using ).
          B<x> is the bus number.The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
        - TRIGger:B:BUS:B<x>:CAN:FRAMEtype?

    **Info:**
        - ``DATa`` specifies a data frame type.
        - ``REMote`` specifies a remote frame type.
        - ``ERRor`` specifies an error frame type.
        - ``OVERLoad`` specifies an overload frame type.
    """


class TriggerBBusBItemCanFdEsibit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit`` command.

    **Description:**
        - This command sets or queries the value of the error state indicator bit (ESI bit) for a
          CAN bus to triggering on. The bus number is specified by x. The trigger condition must be
          set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
          (recessive).
        - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
          (dominant).
        - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
    """


class TriggerBBusBItemCanFdBrsbit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit`` command.

    **Description:**
        - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN bus
          to triggering on. The bus number is specified by x. The trigger condition must be set to
          FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
        - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
          (fast data enabled).
        - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
          (fast data disabled).
        - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
    """


class TriggerBBusBItemCanFd(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:FD`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.brsbit``: The ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit`` command.
        - ``.esibit``: The ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._brsbit = TriggerBBusBItemCanFdBrsbit(device, f"{self._cmd_syntax}:BRSBit")
        self._esibit = TriggerBBusBItemCanFdEsibit(device, f"{self._cmd_syntax}:ESIBit")

    @property
    def brsbit(self) -> TriggerBBusBItemCanFdBrsbit:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit`` command.

        **Description:**
            - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN
              bus to triggering on. The bus number is specified by x. The trigger condition must be
              set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:CAN:FD:BRSBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
              (fast data enabled).
            - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
              (fast data disabled).
            - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
        """
        return self._brsbit

    @property
    def esibit(self) -> TriggerBBusBItemCanFdEsibit:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit`` command.

        **Description:**
            - This command sets or queries the value of the error state indicator bit (ESI bit) for
              a CAN bus to triggering on. The bus number is specified by x. The trigger condition
              must be set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
            - TRIGger:B:BUS:B<x>:CAN:FD:ESIBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
              (recessive).
            - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
              (dominant).
            - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
        """
        return self._esibit


class TriggerBBusBItemCanErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:ERRType`` command.

    **Description:**
        - This command sets or queries the type of error condition for a CAN bus to triggering on.
          The bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
        - TRIGger:B:BUS:B<x>:CAN:ERRType?

    **Info:**
        - ``ACKMISS`` specifies triggering on a missing ACK field.
        - ``BITSTUFFing`` specifies triggering on a bit stuffing error.
        - ``FORMERRor`` specifies triggering on a CAN FD form error. To use this option, the CAN
          standard must be set to FDISO or FDNONISO.
        - ``ANYERRor`` specifies triggering on any error type.
    """


class TriggerBBusBItemCanDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue`` command.

    **Description:**
        - This command sets the binary data value to be used when triggering on a CAN bus signal.
          The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:CAN:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value in binary format. The only allowed characters in the
          QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemCanDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe`` command.

    **Description:**
        - This command sets the length of the data string, in bytes, to be used when triggering on a
          CAN bus signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe <NR1>
        - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerBBusBItemCanDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier (<, >, =, ≠, ≤, ≥) to be used when triggering on a CAN bus
          signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
        - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the instrument to trigger when the data is less than the qualifier
          value.
        - ``MOREthan`` sets the instrument to trigger when the data is greater than the qualifier
          value.
        - ``EQual`` sets the instrument to trigger when the data is equal to the qualifier value.
        - ``UNEQual`` sets the instrument to trigger when the data is not equal to the qualifier
          value.
        - ``LESSEQual`` sets the instrument to trigger when the data is less than or equal to the
          qualifier value.
        - ``MOREEQual`` sets the instrument to trigger when the data is greater than or equal to the
          qualifier value.
    """  # noqa: E501


class TriggerBBusBItemCanDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset value, in bytes, to use when triggering on
          the CAN data field. The bus number is specified by x. The trigger condition must be set to
          DATA or IDANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet <NR1>
        - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care), and the
          maximum is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD).
    """


class TriggerBBusBItemCanDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection`` command.

    **Description:**
        - This command sets the data direction (read, write or 'nocare') to be used to search on a
          CAN bus signal. The trigger condition must be set to IDentifier (using ). The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?

    **Info:**
        - ``READ`` sets the CAN data direction to READ.
        - ``WRITE`` sets the CAN data direction to WRITE.
        - ``NOCARE`` sets the CAN data direction to either.
    """


class TriggerBBusBItemCanData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection`` command.
        - ``.offset``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerBBusBItemCanDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._offset = TriggerBBusBItemCanDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerBBusBItemCanDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerBBusBItemCanDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerBBusBItemCanDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerBBusBItemCanDataDirection:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection`` command.

        **Description:**
            - This command sets the data direction (read, write or 'nocare') to be used to search on
              a CAN bus signal. The trigger condition must be set to IDentifier (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:B:BUS:B<x>:CAN:DATa:DIRection?

        **Info:**
            - ``READ`` sets the CAN data direction to READ.
            - ``WRITE`` sets the CAN data direction to WRITE.
            - ``NOCARE`` sets the CAN data direction to either.
        """
        return self._direction

    @property
    def offset(self) -> TriggerBBusBItemCanDataOffset:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset value, in bytes, to use when triggering
              on the CAN data field. The bus number is specified by x. The trigger condition must be
              set to DATA or IDANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet <NR1>
            - TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care), and the
              maximum is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD).
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerBBusBItemCanDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier (<, >, =, ≠, ≤, ≥) to be used when triggering on a CAN
              bus signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
            - TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the instrument to trigger when the data is less than the qualifier
              value.
            - ``MOREthan`` sets the instrument to trigger when the data is greater than the
              qualifier value.
            - ``EQual`` sets the instrument to trigger when the data is equal to the qualifier
              value.
            - ``UNEQual`` sets the instrument to trigger when the data is not equal to the qualifier
              value.
            - ``LESSEQual`` sets the instrument to trigger when the data is less than or equal to
              the qualifier value.
            - ``MOREEQual`` sets the instrument to trigger when the data is greater than or equal to
              the qualifier value.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerBBusBItemCanDataSize:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe`` command.

        **Description:**
            - This command sets the length of the data string, in bytes, to be used when triggering
              on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa (using ).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe <NR1>
            - TRIGger:B:BUS:B<x>:CAN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerBBusBItemCanDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue`` command.

        **Description:**
            - This command sets the binary data value to be used when triggering on a CAN bus
              signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:CAN:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value in binary format. The only allowed characters in the
              QString are 0, 1, and X.
        """
        return self._value


class TriggerBBusBItemCanCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN:CONDition`` command.

    **Description:**
        - This command sets the condition (start of frame, frame type, identifier, matching data,
          EOF, missing ACK field, bit-stuffing error) to be used when triggering on a CAN bus
          signal. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:CAN:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
        - TRIGger:B:BUS:B<x>:CAN:CONDition?

    **Info:**
        - ``SOF`` enables triggering on the start of frame.
        - ``FDBITS`` enables triggering on the values of the BRS and ESI bits in an FD packet.
        - ``FRAMEtype`` enables triggering on the type of frame.
        - ``IDentifier`` enables triggering on a matching identifier.
        - ``DATa`` enables triggering on matching data.
        - ``IDANDDATA`` enables triggering on a matching identifier and matching data.
        - ``EOF`` enables triggering on the end of frame.
        - ``ERRor`` enables triggering on a specified error condition.
    """  # noqa: E501


class TriggerBBusBItemCan(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:CAN`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:CAN:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:CAN:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:CAN:ERRType`` command.
        - ``.fd``: The ``TRIGger:B:BUS:B<x>:CAN:FD`` command tree.
        - ``.frametype``: The ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype`` command.
        - ``.identifier``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemCanCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemCanData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerBBusBItemCanErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._fd = TriggerBBusBItemCanFd(device, f"{self._cmd_syntax}:FD")
        self._frametype = TriggerBBusBItemCanFrametype(device, f"{self._cmd_syntax}:FRAMEtype")
        self._identifier = TriggerBBusBItemCanIdentifier(device, f"{self._cmd_syntax}:IDentifier")

    @property
    def condition(self) -> TriggerBBusBItemCanCondition:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:CONDition`` command.

        **Description:**
            - This command sets the condition (start of frame, frame type, identifier, matching
              data, EOF, missing ACK field, bit-stuffing error) to be used when triggering on a CAN
              bus signal. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
            - TRIGger:B:BUS:B<x>:CAN:CONDition?

        **Info:**
            - ``SOF`` enables triggering on the start of frame.
            - ``FDBITS`` enables triggering on the values of the BRS and ESI bits in an FD packet.
            - ``FRAMEtype`` enables triggering on the type of frame.
            - ``IDentifier`` enables triggering on a matching identifier.
            - ``DATa`` enables triggering on matching data.
            - ``IDANDDATA`` enables triggering on a matching identifier and matching data.
            - ``EOF`` enables triggering on the end of frame.
            - ``ERRor`` enables triggering on a specified error condition.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemCanData:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:DIRection`` command.
            - ``.offset``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:CAN:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerBBusBItemCanErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:ERRType`` command.

        **Description:**
            - This command sets or queries the type of error condition for a CAN bus to triggering
              on. The bus number is specified by x. The trigger condition must be set to ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
            - TRIGger:B:BUS:B<x>:CAN:ERRType?

        **Info:**
            - ``ACKMISS`` specifies triggering on a missing ACK field.
            - ``BITSTUFFing`` specifies triggering on a bit stuffing error.
            - ``FORMERRor`` specifies triggering on a CAN FD form error. To use this option, the CAN
              standard must be set to FDISO or FDNONISO.
            - ``ANYERRor`` specifies triggering on any error type.
        """
        return self._errtype

    @property
    def fd(self) -> TriggerBBusBItemCanFd:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:FD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FD?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.brsbit``: The ``TRIGger:B:BUS:B<x>:CAN:FD:BRSBit`` command.
            - ``.esibit``: The ``TRIGger:B:BUS:B<x>:CAN:FD:ESIBit`` command.
        """
        return self._fd

    @property
    def frametype(self) -> TriggerBBusBItemCanFrametype:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype`` command.

        **Description:**
            - This command sets the frame type (data, remote, error or overload) to be used when
              triggering on a CAN bus signal. The trigger condition must be set to FRAMEtype (using
              ). B<x> is the bus number.The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
            - TRIGger:B:BUS:B<x>:CAN:FRAMEtype?

        **Info:**
            - ``DATa`` specifies a data frame type.
            - ``REMote`` specifies a remote frame type.
            - ``ERRor`` specifies an error frame type.
            - ``OVERLoad`` specifies an overload frame type.
        """
        return self._frametype

    @property
    def identifier(self) -> TriggerBBusBItemCanIdentifier:
        """Return the ``TRIGger:B:BUS:B<x>:CAN:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:CAN:IDentifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:CAN:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:MODe`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerBBusBItemAudioDataWord(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD`` command.

    **Description:**
        - This command sets the alignment of the data (left, right or either) to be used to trigger
          on an audio bus signal. The trigger condition must be set to DATa using . The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
        - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?

    **Info:**
        - ``EITher`` aligns the trigger data to either left or right.
        - ``LEFt`` aligns the trigger data to the left.
        - ``RIGht`` aligns the trigger data to the right.
    """


class TriggerBBusBItemAudioDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue`` command.

    **Description:**
        - This command sets the lower word value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the trigger data lower word.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemAudioDataTdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the single or low data word to be
          used when triggering on an TDM audio bus signal. The trigger condition must be set to DATa
          using TRIGger:{A|B}``:BUS:B``{x}``:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
        - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the single or low data word to be used when
          triggering on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemAudioDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on an audio bus signal. The
          trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemAudioDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet`` command.

    **Description:**
        - This command sets the data offset value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
        - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is the data offset value.
    """


class TriggerBBusBItemAudioDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue`` command.

    **Description:**
        - This command sets the upper word value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATA using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the upper word value to be used when triggering on an audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemAudioDataHitdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the high data word to be used when
          triggering on an TDM audio bus signal. The trigger condition must be set to DATa using
          TRIGger:{A|B}``:BUS:B<x>:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
        - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the high data word to be used when triggering
          on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemAudioData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hitdmvalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier`` command.
        - ``.tdmvalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue`` command.
        - ``.word``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hitdmvalue = TriggerBBusBItemAudioDataHitdmvalue(
            device, f"{self._cmd_syntax}:HITDMVALue"
        )
        self._hivalue = TriggerBBusBItemAudioDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerBBusBItemAudioDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerBBusBItemAudioDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._tdmvalue = TriggerBBusBItemAudioDataTdmvalue(device, f"{self._cmd_syntax}:TDMVALue")
        self._value = TriggerBBusBItemAudioDataValue(device, f"{self._cmd_syntax}:VALue")
        self._word = TriggerBBusBItemAudioDataWord(device, f"{self._cmd_syntax}:WORD")

    @property
    def hitdmvalue(self) -> TriggerBBusBItemAudioDataHitdmvalue:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the high data word to be used
              when triggering on an TDM audio bus signal. The trigger condition must be set to DATa
              using TRIGger:{A|B}``:BUS:B<x>:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
            - TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the high data word to be used when
              triggering on an TDM audio bus signal.
        """
        return self._hitdmvalue

    @property
    def hivalue(self) -> TriggerBBusBItemAudioDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue`` command.

        **Description:**
            - This command sets the upper word value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATA using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the upper word value to be used when triggering on an audio bus
              signal.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerBBusBItemAudioDataOffset:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet`` command.

        **Description:**
            - This command sets the data offset value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATa using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
            - TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is the data offset value.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerBBusBItemAudioDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on an audio bus signal. The
              trigger condition must be set to DATa using . The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def tdmvalue(self) -> TriggerBBusBItemAudioDataTdmvalue:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the single or low data word to
              be used when triggering on an TDM audio bus signal. The trigger condition must be set
              to DATa using TRIGger:{A|B}``:BUS:B``{x}``:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
            - TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the single or low data word to be used
              when triggering on an TDM audio bus signal.
        """
        return self._tdmvalue

    @property
    def value(self) -> TriggerBBusBItemAudioDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue`` command.

        **Description:**
            - This command sets the lower word value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATa using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:AUDio:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the trigger data lower word.
        """
        return self._value

    @property
    def word(self) -> TriggerBBusBItemAudioDataWord:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD`` command.

        **Description:**
            - This command sets the alignment of the data (left, right or either) to be used to
              trigger on an audio bus signal. The trigger condition must be set to DATa using . The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
            - TRIGger:B:BUS:B<x>:AUDio:DATa:WORD?

        **Info:**
            - ``EITher`` aligns the trigger data to either left or right.
            - ``LEFt`` aligns the trigger data to the left.
            - ``RIGht`` aligns the trigger data to the right.
        """
        return self._word


class TriggerBBusBItemAudioCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio:CONDition`` command.

    **Description:**
        - This command sets the condition (word select, start of frame, or matching data) to be used
          when triggering on an audio bus signal. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:AUDio:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:AUDio:CONDition {SOF|DATa}
        - TRIGger:B:BUS:B<x>:AUDio:CONDition?

    **Info:**
        - ``SOF`` enables triggering on a word select or start of frame (depending on Audio Type).
        - ``DATa`` enables triggering on matching data.
    """


class TriggerBBusBItemAudio(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:AUDio`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:AUDio:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemAudioCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerBBusBItemAudioData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerBBusBItemAudioCondition:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:CONDition`` command.

        **Description:**
            - This command sets the condition (word select, start of frame, or matching data) to be
              used when triggering on an audio bus signal. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:AUDio:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:AUDio:CONDition {SOF|DATa}
            - TRIGger:B:BUS:B<x>:AUDio:CONDition?

        **Info:**
            - ``SOF`` enables triggering on a word select or start of frame (depending on Audio
              Type).
            - ``DATa`` enables triggering on matching data.
        """
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemAudioData:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:AUDio:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hitdmvalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:QUALifier`` command.
            - ``.tdmvalue``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:TDMVALue`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:VALue`` command.
            - ``.word``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa:WORD`` command.
        """
        return self._data


class TriggerBBusBItemArinc429aSsmValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue`` command.

    **Description:**
        - This command sets or queries the label value when triggering on an ARINC429 SSM field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA,
          and the data format must be set to DATA or SDIDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aSsm(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemArinc429aSsmValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemArinc429aSsmValue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue`` command.

        **Description:**
            - This command sets or queries the label value when triggering on an ARINC429 SSM field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA or SDIDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerBBusBItemArinc429aSdiValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue`` command.

    **Description:**
        - This command sets or queries the label when triggering on an ARINC429 SDI field. The bus
          number is specified by x. The trigger condition must be set to DATa or LABELANDDATA, and
          the data format must be set to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aSdi(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerBBusBItemArinc429aSdiValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerBBusBItemArinc429aSdiValue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue`` command.

        **Description:**
            - This command sets or queries the label when triggering on an ARINC429 SDI field. The
              bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerBBusBItemArinc429aLabelValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on an ARINC429 label field. The
          bus number is specified by x. The trigger condition must be set to LABel or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aLabelQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on label data for an
          ARINC429 bus signal. The bus number is specified by x. The trigger condition must be set
          to LABel or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemArinc429aLabelHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on an ARINC429 label field.
          The bus number is specified by x. The trigger condition must be set to LABel, and the
          label qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aLabel(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemArinc429aLabelHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemArinc429aLabelQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemArinc429aLabelValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemArinc429aLabelHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on an ARINC429 label
              field. The bus number is specified by x. The trigger condition must be set to LABel,
              and the label qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemArinc429aLabelQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on label data
              for an ARINC429 bus signal. The bus number is specified by x. The trigger condition
              must be set to LABel or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemArinc429aLabelValue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on an ARINC429 label field.
              The bus number is specified by x. The trigger condition must be set to LABel or
              LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerBBusBItemArinc429aErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the error type when triggering on an ARINC429 bus signal. The
          bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
        - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?

    **Info:**
        - ``ANY`` sets the error type to match any of the other available error types.
        - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
          data).
        - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time between
          two packets on the bus).
    """


class TriggerBBusBItemArinc429aDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on an ARINC429 data field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on data in the DATA
          field for an ARINC429 bus signal. The bus number is specified by x. The trigger condition
          must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerBBusBItemArinc429aDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when trigger on an ARINC429 data field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA,
          and the data qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
        - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerBBusBItemArinc429aData(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.
        - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerBBusBItemArinc429aDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerBBusBItemArinc429aDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerBBusBItemArinc429aDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerBBusBItemArinc429aDataHivalue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when trigger on an ARINC429 data field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerBBusBItemArinc429aDataQualifier:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on data in the
              DATA field for an ARINC429 bus signal. The bus number is specified by x. The trigger
              condition must be set to DATa or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerBBusBItemArinc429aDataValue:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on an ARINC429 data field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue <QString>
            - TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerBBusBItemArinc429aCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition`` command.

    **Description:**
        - This command specifies a field or condition for an ARINC429 bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:B:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
        - TRIGger:B:BUS:B<x>:ARINC429A:CONDition?

    **Info:**
        - ``SOW`` specifies triggering on the first bit of a word.
        - ``LABel`` specifies triggering on a matching label.
        - ``DATa`` specifies triggering on matching packet data field(s).
        - ``LABELANDDATA`` specifies triggering on a matching label and matching packet data
          field(s).
        - ``EOW`` specifies triggering on the 32nd bit of a word.
        - ``ERRor`` specifies triggering on a specified error condition.
    """


class TriggerBBusBItemArinc429a(SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>:ARINC429A`` command tree.

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

    Properties:
        - ``.condition``: The ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition`` command.
        - ``.data``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe`` command.
        - ``.label``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel`` command tree.
        - ``.sdi``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI`` command tree.
        - ``.ssm``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerBBusBItemArinc429aCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = TriggerBBusBItemArinc429aData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerBBusBItemArinc429aErrtype(device, f"{self._cmd_syntax}:ERRTYPe")
        self._label = TriggerBBusBItemArinc429aLabel(device, f"{self._cmd_syntax}:LABel")
        self._sdi = TriggerBBusBItemArinc429aSdi(device, f"{self._cmd_syntax}:SDI")
        self._ssm = TriggerBBusBItemArinc429aSsm(device, f"{self._cmd_syntax}:SSM")

    @property
    def condition(self) -> TriggerBBusBItemArinc429aCondition:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition`` command.

        **Description:**
            - This command specifies a field or condition for an ARINC429 bus to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
            - TRIGger:B:BUS:B<x>:ARINC429A:CONDition?

        **Info:**
            - ``SOW`` specifies triggering on the first bit of a word.
            - ``LABel`` specifies triggering on a matching label.
            - ``DATa`` specifies triggering on matching packet data field(s).
            - ``LABELANDDATA`` specifies triggering on a matching label and matching packet data
              field(s).
            - ``EOW`` specifies triggering on the 32nd bit of a word.
            - ``ERRor`` specifies triggering on a specified error condition.
        """
        return self._condition

    @property
    def data(self) -> TriggerBBusBItemArinc429aData:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerBBusBItemArinc429aErrtype:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe`` command.

        **Description:**
            - This command sets or queries the error type when triggering on an ARINC429 bus signal.
              The bus number is specified by x. The trigger condition must be set to ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
            - TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe?

        **Info:**
            - ``ANY`` sets the error type to match any of the other available error types.
            - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
              data).
            - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time
              between two packets on the bus).
        """
        return self._errtype

    @property
    def label(self) -> TriggerBBusBItemArinc429aLabel:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:LABel?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:LABel?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel:VALue`` command.
        """
        return self._label

    @property
    def sdi(self) -> TriggerBBusBItemArinc429aSdi:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SDI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SDI?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI:VALue`` command.
        """
        return self._sdi

    @property
    def ssm(self) -> TriggerBBusBItemArinc429aSsm:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:B<x>:ARINC429A:SSM?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:B:BUS:B<x>:ARINC429A:SSM?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM:VALue`` command.
        """
        return self._ssm


#  pylint: disable=too-many-instance-attributes
class TriggerBBusBItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``TRIGger:B:BUS:B<x>`` command tree.

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

    Properties:
        - ``.arinc429a``: The ``TRIGger:B:BUS:B<x>:ARINC429A`` command tree.
        - ``.audio``: The ``TRIGger:B:BUS:B<x>:AUDio`` command tree.
        - ``.can``: The ``TRIGger:B:BUS:B<x>:CAN`` command tree.
        - ``.ethernet``: The ``TRIGger:B:BUS:B<x>:ETHERnet`` command tree.
        - ``.flexray``: The ``TRIGger:B:BUS:B<x>:FLEXray`` command tree.
        - ``.i2c``: The ``TRIGger:B:BUS:B<x>:I2C`` command tree.
        - ``.i3c``: The ``TRIGger:B:BUS:B<x>:I3C`` command tree.
        - ``.lin``: The ``TRIGger:B:BUS:B<x>:LIN`` command tree.
        - ``.mil1553b``: The ``TRIGger:B:BUS:B<x>:MIL1553B`` command tree.
        - ``.parallel``: The ``TRIGger:B:BUS:B<x>:PARallel`` command tree.
        - ``.rs232c``: The ``TRIGger:B:BUS:B<x>:RS232C`` command tree.
        - ``.sent``: The ``TRIGger:B:BUS:B<x>:SENT`` command tree.
        - ``.spi``: The ``TRIGger:B:BUS:B<x>:SPI`` command tree.
        - ``.spmi``: The ``TRIGger:B:BUS:B<x>:SPMI`` command tree.
        - ``.svid``: The ``TRIGger:B:BUS:B<x>:SVID`` command tree.
        - ``.usb``: The ``TRIGger:B:BUS:B<x>:USB`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._arinc429a = TriggerBBusBItemArinc429a(device, f"{self._cmd_syntax}:ARINC429A")
        self._audio = TriggerBBusBItemAudio(device, f"{self._cmd_syntax}:AUDio")
        self._can = TriggerBBusBItemCan(device, f"{self._cmd_syntax}:CAN")
        self._ethernet = TriggerBBusBItemEthernet(device, f"{self._cmd_syntax}:ETHERnet")
        self._flexray = TriggerBBusBItemFlexray(device, f"{self._cmd_syntax}:FLEXray")
        self._i2c = TriggerBBusBItemI2c(device, f"{self._cmd_syntax}:I2C")
        self._i3c = TriggerBBusBItemI3c(device, f"{self._cmd_syntax}:I3C")
        self._lin = TriggerBBusBItemLin(device, f"{self._cmd_syntax}:LIN")
        self._mil1553b = TriggerBBusBItemMil1553b(device, f"{self._cmd_syntax}:MIL1553B")
        self._parallel = TriggerBBusBItemParallel(device, f"{self._cmd_syntax}:PARallel")
        self._rs232c = TriggerBBusBItemRs232c(device, f"{self._cmd_syntax}:RS232C")
        self._sent = TriggerBBusBItemSent(device, f"{self._cmd_syntax}:SENT")
        self._spi = TriggerBBusBItemSpi(device, f"{self._cmd_syntax}:SPI")
        self._spmi = TriggerBBusBItemSpmi(device, f"{self._cmd_syntax}:SPMI")
        self._svid = TriggerBBusBItemSvid(device, f"{self._cmd_syntax}:SVID")
        self._usb = TriggerBBusBItemUsb(device, f"{self._cmd_syntax}:USB")

    @property
    def arinc429a(self) -> TriggerBBusBItemArinc429a:
        """Return the ``TRIGger:B:BUS:B<x>:ARINC429A`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:ARINC429A:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:ARINC429A:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:ARINC429A:ERRTYPe`` command.
            - ``.label``: The ``TRIGger:B:BUS:B<x>:ARINC429A:LABel`` command tree.
            - ``.sdi``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SDI`` command tree.
            - ``.ssm``: The ``TRIGger:B:BUS:B<x>:ARINC429A:SSM`` command tree.
        """
        return self._arinc429a

    @property
    def audio(self) -> TriggerBBusBItemAudio:
        """Return the ``TRIGger:B:BUS:B<x>:AUDio`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:AUDio:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:AUDio:DATa`` command tree.
        """
        return self._audio

    @property
    def can(self) -> TriggerBBusBItemCan:
        """Return the ``TRIGger:B:BUS:B<x>:CAN`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:CAN:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:CAN:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:CAN:ERRType`` command.
            - ``.fd``: The ``TRIGger:B:BUS:B<x>:CAN:FD`` command tree.
            - ``.frametype``: The ``TRIGger:B:BUS:B<x>:CAN:FRAMEtype`` command.
            - ``.identifier``: The ``TRIGger:B:BUS:B<x>:CAN:IDentifier`` command tree.
        """
        return self._can

    @property
    def ethernet(self) -> TriggerBBusBItemEthernet:
        """Return the ``TRIGger:B:BUS:B<x>:ETHERnet`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:ETHERnet:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:ETHERnet:DATa`` command tree.
            - ``.ipheader``: The ``TRIGger:B:BUS:B<x>:ETHERnet:IPHeader`` command tree.
            - ``.mac``: The ``TRIGger:B:BUS:B<x>:ETHERnet:MAC`` command tree.
            - ``.qtag``: The ``TRIGger:B:BUS:B<x>:ETHERnet:QTAG`` command tree.
            - ``.tcpheader``: The ``TRIGger:B:BUS:B<x>:ETHERnet:TCPHeader`` command tree.
        """
        return self._ethernet

    @property
    def flexray(self) -> TriggerBBusBItemFlexray:
        """Return the ``TRIGger:B:BUS:B<x>:FLEXray`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:FLEXray:CONDition`` command.
            - ``.cyclecount``: The ``TRIGger:B:BUS:B<x>:FLEXray:CYCLEcount`` command tree.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:FLEXray:DATa`` command tree.
            - ``.eoftype``: The ``TRIGger:B:BUS:B<x>:FLEXray:EOFTYPE`` command.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:FLEXray:ERRTYPE`` command.
            - ``.frameid``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEID`` command tree.
            - ``.frametype``: The ``TRIGger:B:BUS:B<x>:FLEXray:FRAMEType`` command.
            - ``.header``: The ``TRIGger:B:BUS:B<x>:FLEXray:HEADER`` command tree.
        """
        return self._flexray

    @property
    def i2c(self) -> TriggerBBusBItemI2c:
        """Return the ``TRIGger:B:BUS:B<x>:I2C`` command tree.

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

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:I2C:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:I2C:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:I2C:DATa`` command tree.
        """
        return self._i2c

    @property
    def i3c(self) -> TriggerBBusBItemI3c:
        """Return the ``TRIGger:B:BUS:B<x>:I3C`` command tree.

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

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:I3C:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:I3C:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:I3C:DATa`` command tree.
            - ``.errortype``: The ``TRIGger:B:BUS:B<x>:I3C:ERRORTYPe`` command.
            - ``.sdr``: The ``TRIGger:B:BUS:B<x>:I3C:SDR`` command tree.
            - ``.tbit``: The ``TRIGger:B:BUS:B<x>:I3C:TBIT`` command tree.
        """
        return self._i3c

    @property
    def lin(self) -> TriggerBBusBItemLin:
        """Return the ``TRIGger:B:BUS:B<x>:LIN`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:LIN:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:LIN:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:LIN:ERRTYPE`` command.
            - ``.identifier``: The ``TRIGger:B:BUS:B<x>:LIN:IDentifier`` command tree.
        """
        return self._lin

    @property
    def mil1553b(self) -> TriggerBBusBItemMil1553b:
        """Return the ``TRIGger:B:BUS:B<x>:MIL1553B`` command tree.

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

        Sub-properties:
            - ``.command``: The ``TRIGger:B:BUS:B<x>:MIL1553B:COMMAND`` command tree.
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:MIL1553B:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:MIL1553B:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:MIL1553B:ERRTYPe`` command.
            - ``.status``: The ``TRIGger:B:BUS:B<x>:MIL1553B:STATus`` command tree.
            - ``.time``: The ``TRIGger:B:BUS:B<x>:MIL1553B:TIMe`` command tree.
        """
        return self._mil1553b

    @property
    def parallel(self) -> TriggerBBusBItemParallel:
        """Return the ``TRIGger:B:BUS:B<x>:PARallel`` command tree.

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

        Sub-properties:
            - ``.data``: The ``TRIGger:B:BUS:B<x>:PARallel:DATa`` command tree.
        """
        return self._parallel

    @property
    def rs232c(self) -> TriggerBBusBItemRs232c:
        """Return the ``TRIGger:B:BUS:B<x>:RS232C`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:RS232C:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:RS232C:DATa`` command tree.
        """
        return self._rs232c

    @property
    def sent(self) -> TriggerBBusBItemSent:
        """Return the ``TRIGger:B:BUS:B<x>:SENT`` command tree.

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

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:SENT:CONDition`` command.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:SENT:ERRType`` command.
            - ``.fast``: The ``TRIGger:B:BUS:B<x>:SENT:FAST`` command tree.
            - ``.pause``: The ``TRIGger:B:BUS:B<x>:SENT:PAUSE`` command tree.
            - ``.slow``: The ``TRIGger:B:BUS:B<x>:SENT:SLOW`` command tree.
        """
        return self._sent

    @property
    def spi(self) -> TriggerBBusBItemSpi:
        """Return the ``TRIGger:B:BUS:B<x>:SPI`` command tree.

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

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:SPI:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:SPI:DATa`` command tree.
        """
        return self._spi

    @property
    def spmi(self) -> TriggerBBusBItemSpmi:
        """Return the ``TRIGger:B:BUS:B<x>:SPMI`` command tree.

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

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:SPMI:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:SPMI:DATa`` command tree.
            - ``.masteraddress``: The ``TRIGger:B:BUS:B<x>:SPMI:MASTERADDRess`` command tree.
            - ``.noresponse``: The ``TRIGger:B:BUS:B<x>:SPMI:NORESPonse`` command.
            - ``.registeraddress``: The ``TRIGger:B:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.
            - ``.slaveaddress``: The ``TRIGger:B:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.
        """
        return self._spmi

    @property
    def svid(self) -> TriggerBBusBItemSvid:
        """Return the ``TRIGger:B:BUS:B<x>:SVID`` command tree.

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

        Sub-properties:
            - ``.command``: The ``TRIGger:B:BUS:B<x>:SVID:COMMand`` command tree.
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:SVID:CONDition`` command.
            - ``.error``: The ``TRIGger:B:BUS:B<x>:SVID:ERRor`` command tree.
            - ``.parity``: The ``TRIGger:B:BUS:B<x>:SVID:PARity`` command tree.
            - ``.payload``: The ``TRIGger:B:BUS:B<x>:SVID:PAYLoad`` command tree.
            - ``.slave``: The ``TRIGger:B:BUS:B<x>:SVID:SLAVe`` command tree.
        """
        return self._svid

    @property
    def usb(self) -> TriggerBBusBItemUsb:
        """Return the ``TRIGger:B:BUS:B<x>:USB`` command tree.

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

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.address``: The ``TRIGger:B:BUS:B<x>:USB:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:B:BUS:B<x>:USB:CONDition`` command.
            - ``.data``: The ``TRIGger:B:BUS:B<x>:USB:DATa`` command tree.
            - ``.endpoint``: The ``TRIGger:B:BUS:B<x>:USB:ENDPoint`` command tree.
            - ``.errtype``: The ``TRIGger:B:BUS:B<x>:USB:ERRType`` command.
            - ``.handshaketype``: The ``TRIGger:B:BUS:B<x>:USB:HANDSHAKEType`` command.
            - ``.sofframenumber``: The ``TRIGger:B:BUS:B<x>:USB:SOFFRAMENUMber`` command.
            - ``.specialtype``: The ``TRIGger:B:BUS:B<x>:USB:SPECIALType`` command.
            - ``.split``: The ``TRIGger:B:BUS:B<x>:USB:SPLit`` command tree.
            - ``.tokentype``: The ``TRIGger:B:BUS:B<x>:USB:TOKENType`` command.
        """
        return self._usb


class TriggerBBus(SCPICmdRead):
    """The ``TRIGger:B:BUS`` command tree.

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

    Properties:
        - ``.b``: The ``TRIGger:B:BUS:B<x>`` command tree.
        - ``.source``: The ``TRIGger:B:BUS:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._b: Dict[int, TriggerBBusBItem] = DefaultDictPassKeyToFactory(
            lambda x: TriggerBBusBItem(device, f"{self._cmd_syntax}:B{x}")
        )
        self._source = TriggerBBusSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def b(self) -> Dict[int, TriggerBBusBItem]:
        """Return the ``TRIGger:B:BUS:B<x>`` command tree.

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

        Sub-properties:
            - ``.arinc429a``: The ``TRIGger:B:BUS:B<x>:ARINC429A`` command tree.
            - ``.audio``: The ``TRIGger:B:BUS:B<x>:AUDio`` command tree.
            - ``.can``: The ``TRIGger:B:BUS:B<x>:CAN`` command tree.
            - ``.ethernet``: The ``TRIGger:B:BUS:B<x>:ETHERnet`` command tree.
            - ``.flexray``: The ``TRIGger:B:BUS:B<x>:FLEXray`` command tree.
            - ``.i2c``: The ``TRIGger:B:BUS:B<x>:I2C`` command tree.
            - ``.i3c``: The ``TRIGger:B:BUS:B<x>:I3C`` command tree.
            - ``.lin``: The ``TRIGger:B:BUS:B<x>:LIN`` command tree.
            - ``.mil1553b``: The ``TRIGger:B:BUS:B<x>:MIL1553B`` command tree.
            - ``.parallel``: The ``TRIGger:B:BUS:B<x>:PARallel`` command tree.
            - ``.rs232c``: The ``TRIGger:B:BUS:B<x>:RS232C`` command tree.
            - ``.sent``: The ``TRIGger:B:BUS:B<x>:SENT`` command tree.
            - ``.spi``: The ``TRIGger:B:BUS:B<x>:SPI`` command tree.
            - ``.spmi``: The ``TRIGger:B:BUS:B<x>:SPMI`` command tree.
            - ``.svid``: The ``TRIGger:B:BUS:B<x>:SVID`` command tree.
            - ``.usb``: The ``TRIGger:B:BUS:B<x>:USB`` command tree.
        """
        return self._b

    @property
    def source(self) -> TriggerBBusSource:
        """Return the ``TRIGger:B:BUS:SOUrce`` command.

        **Description:**
            - This command sets or queries the source bus for a bus trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:B:BUS:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:B:BUS:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:B:BUS:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:BUS:SOUrce B<x>
            - TRIGger:B:BUS:SOUrce?

        **Info:**
            - ``B<x>`` sets the selected source to the bus.
        """
        return self._source


#  pylint: disable=too-many-instance-attributes
class TriggerB(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:B`` command tree.

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

    Properties:
        - ``.by``: The ``TRIGger:B:BY`` command.
        - ``.events``: The ``TRIGger:B:EVENTS`` command tree.
        - ``.reset``: The ``TRIGger:B:RESET`` command.
        - ``.state``: The ``TRIGger:B:STATE`` command.
        - ``.time``: The ``TRIGger:B:TIMe`` command.
        - ``.bus``: The ``TRIGger:B:BUS`` command tree.
        - ``.edge``: The ``TRIGger:B:EDGE`` command tree.
        - ``.level``: The ``TRIGger:B:LEVel`` command tree.
        - ``.logicpattern``: The ``TRIGger:B:LOGICPattern`` command tree.
        - ``.logic``: The ``TRIGger:B:LOGIc`` command tree.
        - ``.lowerthreshold``: The ``TRIGger:B:LOWerthreshold`` command tree.
        - ``.pulsewidth``: The ``TRIGger:B:PULSEWidth`` command tree.
        - ``.runt``: The ``TRIGger:B:RUNT`` command tree.
        - ``.setholdlogicval``: The ``TRIGger:B:SETHOLDLogicval`` command tree.
        - ``.sethold``: The ``TRIGger:B:SETHold`` command tree.
        - ``.timeout``: The ``TRIGger:B:TIMEOut`` command tree.
        - ``.transition``: The ``TRIGger:B:TRANsition`` command tree.
        - ``.type``: The ``TRIGger:B:TYPe`` command.
        - ``.upperthreshold``: The ``TRIGger:B:UPPerthreshold`` command tree.
        - ``.window``: The ``TRIGger:B:WINdow`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._by = TriggerBBy(device, f"{self._cmd_syntax}:BY")
        self._events = TriggerBEvents(device, f"{self._cmd_syntax}:EVENTS")
        self._state = TriggerBState(device, f"{self._cmd_syntax}:STATE")
        self._time = TriggerBTime(device, f"{self._cmd_syntax}:TIMe")
        self._reset = TriggerBReset(device, f"{self._cmd_syntax}:RESET")
        self._bus = TriggerBBus(device, f"{self._cmd_syntax}:BUS")
        self._edge = TriggerBEdge(device, f"{self._cmd_syntax}:EDGE")
        self._level = TriggerBLevel(device, f"{self._cmd_syntax}:LEVel")
        self._logicpattern = TriggerBLogicpattern(device, f"{self._cmd_syntax}:LOGICPattern")
        self._logic = TriggerBLogic(device, f"{self._cmd_syntax}:LOGIc")
        self._lowerthreshold = TriggerBLowerthreshold(device, f"{self._cmd_syntax}:LOWerthreshold")
        self._pulsewidth = TriggerBPulsewidth(device, f"{self._cmd_syntax}:PULSEWidth")
        self._runt = TriggerBRunt(device, f"{self._cmd_syntax}:RUNT")
        self._setholdlogicval = TriggerBSetholdlogicval(
            device, f"{self._cmd_syntax}:SETHOLDLogicval"
        )
        self._sethold = TriggerBSethold(device, f"{self._cmd_syntax}:SETHold")
        self._timeout = TriggerBTimeout(device, f"{self._cmd_syntax}:TIMEOut")
        self._transition = TriggerBTransition(device, f"{self._cmd_syntax}:TRANsition")
        self._type = TriggerBType(device, f"{self._cmd_syntax}:TYPe")
        self._upperthreshold = TriggerBUpperthreshold(device, f"{self._cmd_syntax}:UPPerthreshold")
        self._window = TriggerBWindow(device, f"{self._cmd_syntax}:WINdow")

    @property
    def by(self) -> TriggerBBy:
        """Return the ``TRIGger:B:BY`` command.

        **Description:**
            - This command selects or returns whether the B trigger occurs after a specified number
              of events or a specified period of time after the A trigger.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:BY {EVENTS|TIMe}
            - TRIGger:B:BY?

        **Info:**
            - ``EVENTS`` sets the B trigger to take place following a set number of trigger events
              after the A trigger occurs. The number of events is specified by
              ``TRIGger:B:EVENTS:COUNt``.
            - ``TIMe`` sets the B trigger to occur a set time after the A trigger event. The time
              period is specified by ``TRIGger:B:TIMe``.
        """
        return self._by

    @property
    def events(self) -> TriggerBEvents:
        """Return the ``TRIGger:B:EVENTS`` command tree.

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

        Sub-properties:
            - ``.count``: The ``TRIGger:B:EVENTS:COUNt`` command.
        """
        return self._events

    @property
    def state(self) -> TriggerBState:
        """Return the ``TRIGger:B:STATE`` command.

        **Description:**
            - This command sets or queries the state of B trigger activity. If the B trigger state
              is on, the B trigger is part of the triggering sequence. If the B trigger state is
              off, then only the A trigger causes the trigger event.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:STATE {ON|OFF|<NR1>}
            - TRIGger:B:STATE?

        **Info:**
            - ``ON`` indicates that the B trigger is active and causes trigger events with the A
              trigger.
            - ``OFF`` indicates that only the A trigger causes trigger events.
            - ``<NR1>`` is an integer number. 0 turns off the B trigger; any other value activates
              the B trigger.
        """
        return self._state

    @property
    def time(self) -> TriggerBTime:
        """Return the ``TRIGger:B:TIMe`` command.

        **Description:**
            - This command sets or queries B trigger delay time, in seconds. The B Trigger time
              applies only if ``TRIGger:B:BY`` is set to TIMe.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:TIMe <NR3>
            - TRIGger:B:TIMe?

        **Info:**
            - ``<NR3>`` is the B trigger delay time in seconds.
        """
        return self._time

    @property
    def reset(self) -> TriggerBReset:
        """Return the ``TRIGger:B:RESET`` command.

        **Description:**
            - This command sets the B reset trigger level to 50%.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:B:RESET value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:B:RESET SETLevel

        **Info:**
            - ``SETLevel`` sets the B reset trigger level to 50%.

        Sub-properties:
            - ``.edge``: The ``TRIGger:B:RESET:EDGE`` command tree.
            - ``.timeout``: The ``TRIGger:B:RESET:TIMEOut`` command tree.
            - ``.type``: The ``TRIGger:B:RESET:TYPe`` command.
        """
        return self._reset

    @property
    def bus(self) -> TriggerBBus:
        """Return the ``TRIGger:B:BUS`` command tree.

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

        Sub-properties:
            - ``.b``: The ``TRIGger:B:BUS:B<x>`` command tree.
            - ``.source``: The ``TRIGger:B:BUS:SOUrce`` command.
        """
        return self._bus

    @property
    def edge(self) -> TriggerBEdge:
        """Return the ``TRIGger:B:EDGE`` command tree.

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

        Sub-properties:
            - ``.coupling``: The ``TRIGger:B:EDGE:COUPling`` command.
            - ``.slope``: The ``TRIGger:B:EDGE:SLOpe`` command.
            - ``.source``: The ``TRIGger:B:EDGE:SOUrce`` command.
        """
        return self._edge

    @property
    def level(self) -> TriggerBLevel:
        """Return the ``TRIGger:B:LEVel`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:B:LEVel:CH<x>`` command.
        """
        return self._level

    @property
    def logicpattern(self) -> TriggerBLogicpattern:
        """Return the ``TRIGger:B:LOGICPattern`` command tree.

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

        Sub-properties:
            - ``.b``: The ``TRIGger:B:LOGICPattern:B`` command.
        """
        return self._logicpattern

    @property
    def logic(self) -> TriggerBLogic:
        """Return the ``TRIGger:B:LOGIc`` command tree.

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

        Sub-properties:
            - ``.deltatime``: The ``TRIGger:B:LOGIc:DELTatime`` command.
            - ``.function``: The ``TRIGger:B:LOGIc:FUNCtion`` command.
            - ``.input``: The ``TRIGger:B:LOGIc:INPut`` command tree.
            - ``.polarity``: The ``TRIGger:B:LOGIc:POLarity`` command.
            - ``.useclockedge``: The ``TRIGger:B:LOGIc:USECLockedge`` command.
            - ``.when``: The ``TRIGger:B:LOGIc:WHEn`` command.
        """
        return self._logic

    @property
    def lowerthreshold(self) -> TriggerBLowerthreshold:
        """Return the ``TRIGger:B:LOWerthreshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:B:LOWerthreshold:CH<x>`` command.
        """
        return self._lowerthreshold

    @property
    def pulsewidth(self) -> TriggerBPulsewidth:
        """Return the ``TRIGger:B:PULSEWidth`` command tree.

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

        Sub-properties:
            - ``.highlimit``: The ``TRIGger:B:PULSEWidth:HIGHLimit`` command.
            - ``.logicqualification``: The ``TRIGger:B:PULSEWidth:LOGICQUALification`` command.
            - ``.lowlimit``: The ``TRIGger:B:PULSEWidth:LOWLimit`` command.
            - ``.polarity``: The ``TRIGger:B:PULSEWidth:POLarity`` command.
            - ``.source``: The ``TRIGger:B:PULSEWidth:SOUrce`` command.
            - ``.when``: The ``TRIGger:B:PULSEWidth:WHEn`` command.
        """
        return self._pulsewidth

    @property
    def runt(self) -> TriggerBRunt:
        """Return the ``TRIGger:B:RUNT`` command tree.

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

        Sub-properties:
            - ``.logicqualification``: The ``TRIGger:B:RUNT:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:B:RUNT:POLarity`` command.
            - ``.source``: The ``TRIGger:B:RUNT:SOUrce`` command.
            - ``.when``: The ``TRIGger:B:RUNT:WHEn`` command.
            - ``.width``: The ``TRIGger:B:RUNT:WIDth`` command.
        """
        return self._runt

    @property
    def setholdlogicval(self) -> TriggerBSetholdlogicval:
        """Return the ``TRIGger:B:SETHOLDLogicval`` command tree.

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

        Sub-properties:
            - ``.b``: The ``TRIGger:B:SETHOLDLogicval:B`` command.
        """
        return self._setholdlogicval

    @property
    def sethold(self) -> TriggerBSethold:
        """Return the ``TRIGger:B:SETHold`` command tree.

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

        Sub-properties:
            - ``.clock``: The ``TRIGger:B:SETHold:CLOCk`` command tree.
            - ``.holdtime``: The ``TRIGger:B:SETHold:HOLDTime`` command.
            - ``.settime``: The ``TRIGger:B:SETHold:SETTime`` command.
        """
        return self._sethold

    @property
    def timeout(self) -> TriggerBTimeout:
        """Return the ``TRIGger:B:TIMEOut`` command tree.

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

        Sub-properties:
            - ``.logicqualification``: The ``TRIGger:B:TIMEOut:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:B:TIMEOut:POLarity`` command.
            - ``.source``: The ``TRIGger:B:TIMEOut:SOUrce`` command.
            - ``.time``: The ``TRIGger:B:TIMEOut:TIMe`` command.
        """
        return self._timeout

    @property
    def transition(self) -> TriggerBTransition:
        """Return the ``TRIGger:B:TRANsition`` command tree.

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

        Sub-properties:
            - ``.deltatime``: The ``TRIGger:B:TRANsition:DELTatime`` command.
            - ``.logicqualification``: The ``TRIGger:B:TRANsition:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:B:TRANsition:POLarity`` command.
            - ``.source``: The ``TRIGger:B:TRANsition:SOUrce`` command.
            - ``.when``: The ``TRIGger:B:TRANsition:WHEn`` command.
        """
        return self._transition

    @property
    def type(self) -> TriggerBType:
        r"""Return the ``TRIGger:B:TYPe`` command.

        **Description:**
            - This command sets or queries the type of A or B trigger.

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

        **SCPI Syntax:**

        ::

            - TRIGger:B:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
            - TRIGger:B:TYPe?

        **Info:**
            - ``EDGE`` is a normal trigger. A trigger event occurs when a signal passes through a
              specified voltage level in a specified direction and is controlled by the
              ``TRIGger:A:EDGE`` commands.
            - ``WIDth`` specifies that the trigger occurs when a pulse with a specified with is
              found.
            - ``TIMEOut`` specifies that a trigger occurs when a pulse with the specified timeout is
              found.
            - ``RUNt`` specifies that a trigger occurs when a pulse with the specified parameters is
              found.
            - ``WINdow`` specifies that a trigger occurs when a signal with the specified window
              parameters is found.
            - ``LOGIc`` specifies that a trigger occurs when specified conditions are met and is
              controlled by the TRIGger:{A\|B}``:LOGIc`` commands.
            - ``SETHold`` specifies that a trigger occurs when a signal is found that meets the
              setup and hold parameters.
            - ``BUS`` specifies that a trigger occurs when a signal is found that meets the
              specified bus setup parameters.
        """
        return self._type

    @property
    def upperthreshold(self) -> TriggerBUpperthreshold:
        """Return the ``TRIGger:B:UPPerthreshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:B:UPPerthreshold:CH<x>`` command.
        """
        return self._upperthreshold

    @property
    def window(self) -> TriggerBWindow:
        """Return the ``TRIGger:B:WINdow`` command tree.

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

        Sub-properties:
            - ``.crossing``: The ``TRIGger:B:WINdow:CROSSIng`` command.
            - ``.logicqualification``: The ``TRIGger:B:WINdow:LOGICQUALification`` command.
            - ``.source``: The ``TRIGger:B:WINdow:SOUrce`` command.
            - ``.when``: The ``TRIGger:B:WINdow:WHEn`` command.
            - ``.width``: The ``TRIGger:B:WINdow:WIDth`` command.
        """
        return self._window


class TriggerAuxlevel(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:AUXLevel`` command.

    **Description:**
        - For those instruments that have an Auxiliary Input (such as an MSO58LP), this command sets
          or queries the Auxiliary Input voltage level to use for an edge trigger.

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

    **SCPI Syntax:**

    ::

        - TRIGger:AUXLevel {<NR3>|ECL|TTL}
        - TRIGger:AUXLevel?

    **Info:**
        - ``<NR3>`` is trigger level in Volts.
        - ``ECL`` sets trigger level to -1.3 Volts.
        - ``TTL`` sets trigger level to 1.4 Volts.
    """


class TriggerAWindowWidth(SCPICmdWrite):
    """The ``TRIGger:A:WINdow:WIDth`` command.

    **Description:**
        - This command sets or queries the minimum width for a window violation. This command is
          equivalent to selecting Window Setup from the Trig menu, selecting Inside > Limit or
          Outside > Limit in the Trigger When box, and setting the Time Limit.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:WIDth value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:WINdow:WIDth <NR3>

    **Info:**
        - ``<NR3>`` is the minimum width for a window violation.
    """


class TriggerAWindowWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:WINdow:WHEn`` command.

    **Description:**
        - This command sets or queries the window trigger event. This command is equivalent to
          selecting Window Setup from the Trig menu and selecting from the Window Trigger When box.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:WINdow:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
        - TRIGger:A:WINdow:WHEn?

    **Info:**
        - ``OUTSIDEGreater`` specifies a trigger event when the signal leaves the window defined by
          the threshold levels for the time specified by Width.
        - ``INSIDEGreater`` specifies a trigger event when the signal enters the window defined by
          the threshold levels for the time specified by Width.
        - ``ENTERSWindow`` specifies a trigger event when the signal enters the window defined by
          the threshold levels.
        - ``EXITSWindow`` specifies a trigger event when the signal leaves the window defined by the
          threshold levels.
    """


class TriggerAWindowSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:WINdow:SOUrce`` command.

    **Description:**
        - This command sets or queries the source for a window trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:WINdow:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:WINdow:SOUrce {CH<x>}
        - TRIGger:A:WINdow:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the trigger source.
    """


class TriggerAWindowLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:WINdow:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a window trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:WINdow:LOGICQUALification?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:WINdow:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
        - TRIGger:A:WINdow:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the window trigger type uses logic qualification.
        - ``OFF`` specifies that the window trigger type does not use logic qualification.
    """


class TriggerAWindowCrossing(SCPICmdWrite):
    r"""The ``TRIGger:A:WINdow:CROSSIng`` command.

    **Description:**
        - This command sets or queries the window trigger threshold crossing of the selected trigger
          source. The threshold crossing selection is only effective when
          ``:TRIGger``:{A|B}``:WINdow:WHEn`` is INSIDEGreater or OUTSIDEGreater.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:CROSSIng value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

    **Info:**
        - ``UPPer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the upper threshold.
          If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument triggers when the
          signal remains above the upper threshold for longer than the time limit
          (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses downward through the upper
          threshold.
        - ``LOWer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the lower threshold.
          If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument triggers when the
          signal remains below the lower threshold for longer than the time limit
          (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses upwards through the lower
          threshold.
        - ``EITher`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
          triggers when the signal remains between the upper and lower thresholds for longer than
          the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through either the
          upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
          instrument triggers when the signal remains either above the upper threshold or below the
          lower threshold for longer than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and
          then crosses a threshold.
        - ``NONe`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument triggers
          when the signal remains between the upper and lower thresholds for longer than the time
          limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through either the upper or
          lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the instrument
          triggers when the signal remains outside the upper and lower thresholds for longer than
          the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through either the
          upper or lower threshold.
    """


class TriggerAWindow(SCPICmdRead):
    """The ``TRIGger:A:WINdow`` command tree.

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

    Properties:
        - ``.crossing``: The ``TRIGger:A:WINdow:CROSSIng`` command.
        - ``.logicqualification``: The ``TRIGger:A:WINdow:LOGICQUALification`` command.
        - ``.source``: The ``TRIGger:A:WINdow:SOUrce`` command.
        - ``.when``: The ``TRIGger:A:WINdow:WHEn`` command.
        - ``.width``: The ``TRIGger:A:WINdow:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crossing = TriggerAWindowCrossing(device, f"{self._cmd_syntax}:CROSSIng")
        self._logicqualification = TriggerAWindowLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._source = TriggerAWindowSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerAWindowWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = TriggerAWindowWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def crossing(self) -> TriggerAWindowCrossing:
        r"""Return the ``TRIGger:A:WINdow:CROSSIng`` command.

        **Description:**
            - This command sets or queries the window trigger threshold crossing of the selected
              trigger source. The threshold crossing selection is only effective when
              ``:TRIGger``:{A|B}``:WINdow:WHEn`` is INSIDEGreater or OUTSIDEGreater.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:CROSSIng value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

        **Info:**
            - ``UPPer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the
              upper threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
              instrument triggers when the signal remains above the upper threshold for longer than
              the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses downward
              through the upper threshold.
            - ``LOWer`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through the
              lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is OUTSIDEGreater, the
              instrument triggers when the signal remains below the lower threshold for longer than
              the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses upwards through
              the lower threshold.
            - ``EITher`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then exits through
              either the upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is
              OUTSIDEGreater, the instrument triggers when the signal remains either above the upper
              threshold or below the lower threshold for longer than the time limit
              (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) and then crosses a threshold.
            - ``NONe`` if ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is INSIDEGreater, the instrument
              triggers when the signal remains between the upper and lower thresholds for longer
              than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``) without crossing through
              either the upper or lower threshold. If ``:TRIGger``:{A\|B}``:WINdow:WHEn`` is
              OUTSIDEGreater, the instrument triggers when the signal remains outside the upper and
              lower thresholds for longer than the time limit (``:TRIGger``:{A\|B}``:WINdow:WIDTH``)
              without crossing through either the upper or lower threshold.
        """
        return self._crossing

    @property
    def logicqualification(self) -> TriggerAWindowLogicqualification:
        """Return the ``TRIGger:A:WINdow:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a window trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:WINdow:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:WINdow:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
            - TRIGger:A:WINdow:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the window trigger type uses logic qualification.
            - ``OFF`` specifies that the window trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def source(self) -> TriggerAWindowSource:
        """Return the ``TRIGger:A:WINdow:SOUrce`` command.

        **Description:**
            - This command sets or queries the source for a window trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:WINdow:SOUrce?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:WINdow:SOUrce {CH<x>}
            - TRIGger:A:WINdow:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the trigger source.
        """
        return self._source

    @property
    def when(self) -> TriggerAWindowWhen:
        """Return the ``TRIGger:A:WINdow:WHEn`` command.

        **Description:**
            - This command sets or queries the window trigger event. This command is equivalent to
              selecting Window Setup from the Trig menu and selecting from the Window Trigger When
              box.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:WINdow:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:WINdow:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
            - TRIGger:A:WINdow:WHEn?

        **Info:**
            - ``OUTSIDEGreater`` specifies a trigger event when the signal leaves the window defined
              by the threshold levels for the time specified by Width.
            - ``INSIDEGreater`` specifies a trigger event when the signal enters the window defined
              by the threshold levels for the time specified by Width.
            - ``ENTERSWindow`` specifies a trigger event when the signal enters the window defined
              by the threshold levels.
            - ``EXITSWindow`` specifies a trigger event when the signal leaves the window defined by
              the threshold levels.
        """
        return self._when

    @property
    def width(self) -> TriggerAWindowWidth:
        """Return the ``TRIGger:A:WINdow:WIDth`` command.

        **Description:**
            - This command sets or queries the minimum width for a window violation. This command is
              equivalent to selecting Window Setup from the Trig menu, selecting Inside > Limit or
              Outside > Limit in the Trigger When box, and setting the Time Limit.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``TRIGger:A:WINdow:WIDth value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:WINdow:WIDth <NR3>

        **Info:**
            - ``<NR3>`` is the minimum width for a window violation.
        """
        return self._width


class TriggerAUpperthresholdChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:UPPerthreshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the specified channel upper trigger level. The CH<x> range is
          1 to 8 and depends on the number of analog channels on your instrument.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:UPPerthreshold:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:UPPerthreshold:CH<x>?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:UPPerthreshold:CH<x> value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:UPPerthreshold:CH<x> <NR3>
        - TRIGger:A:UPPerthreshold:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the trigger level in user units (usually volts).
    """


class TriggerAUpperthreshold(SCPICmdRead):
    """The ``TRIGger:A:UPPerthreshold`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:A:UPPerthreshold:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerAUpperthresholdChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerAUpperthresholdChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerAUpperthresholdChannel]:
        """Return the ``TRIGger:A:UPPerthreshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the specified channel upper trigger level. The CH<x>
              range is 1 to 8 and depends on the number of analog channels on your instrument.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:UPPerthreshold:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:UPPerthreshold:CH<x>?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:UPPerthreshold:CH<x> value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:UPPerthreshold:CH<x> <NR3>
            - TRIGger:A:UPPerthreshold:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the trigger level in user units (usually volts).
        """
        return self._ch


class TriggerAType(SCPICmdWrite, SCPICmdRead):
    r"""The ``TRIGger:A:TYPe`` command.

    **Description:**
        - This command sets or queries the type of A or B trigger.

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

    **SCPI Syntax:**

    ::

        - TRIGger:A:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
        - TRIGger:A:TYPe?

    **Info:**
        - ``EDGE`` is a normal trigger. A trigger event occurs when a signal passes through a
          specified voltage level in a specified direction and is controlled by the
          ``TRIGger:A:EDGE`` commands.
        - ``WIDth`` specifies that the trigger occurs when a pulse with a specified with is found.
        - ``TIMEOut`` specifies that a trigger occurs when a pulse with the specified timeout is
          found.
        - ``RUNt`` specifies that a trigger occurs when a pulse with the specified parameters is
          found.
        - ``WINdow`` specifies that a trigger occurs when a signal with the specified window
          parameters is found.
        - ``LOGIc`` specifies that a trigger occurs when specified conditions are met and is
          controlled by the TRIGger:{A\|B}``:LOGIc`` commands.
        - ``SETHold`` specifies that a trigger occurs when a signal is found that meets the setup
          and hold parameters.
        - ``BUS`` specifies that a trigger occurs when a signal is found that meets the specified
          bus setup parameters.
    """


class TriggerATransitionWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TRANsition:WHEn`` command.

    **Description:**
        - This command specifies whether to check for a transitioning signal that is faster or
          slower than the specified delta time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:WHEn value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
        - TRIGger:A:TRANsition:WHEn?

    **Info:**
        - ``FASTer`` sets the trigger to occur when the signal transition time is faster than the
          time set by ``TRIGger:A:TRANsition:DELTatime``.
        - ``SLOWer`` sets the trigger to occur when the signal transition time is slower than the
          time set by.``TRIGger:A:TRANsition:DELTatime``.
        - ``EQual`` sets the trigger to occur when the signal transition time is equal to the time
          set by ``TRIGger:A:TRANsition:DELTatime``.
        - ``UNEQual`` sets the trigger to occur when the signal transition time is not equal to the
          time set by ``TRIGger:A:TRANsition:DELTatime``.
    """


class TriggerATransitionSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TRANsition:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for a transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:SOUrce?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TRANsition:SOUrce {CH<x>}
        - TRIGger:A:TRANsition:SOUrce?

    **Info:**
        - ``CH<x>`` specifies one of the analog channels to be used as the source for a transition
          trigger.
    """


class TriggerATransitionPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TRANsition:POLarity`` command.

    **Description:**
        - This command specifies the polarity for the transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TRANsition:POLarity {EITher|NEGative|POSitive}
        - TRIGger:A:TRANsition:POLarity?

    **Info:**
        - ``POSitive`` indicates that a pulse edge must traverse from the lower (most negative) to
          higher (most positive) level for transition triggering to occur.
        - ``NEGative`` indicates that a pulse edge must traverse from the upper (most positive) to
          lower (most negative) level for transition triggering to occur.
        - ``EITher`` indicates either positive or negative polarity.
    """


class TriggerATransitionLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TRANsition:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a transition trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:TRANsition:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:TRANsition:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TRANsition:LOGICQUALification {ON|OFF}
        - TRIGger:A:TRANsition:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the transition trigger type uses logic qualification.
        - ``OFF`` specifies that the transition trigger type does not use logic qualification.
    """


class TriggerATransitionDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TRANsition:DELTatime`` command.

    **Description:**
        - This command specifies the delta time (that is Time Limit) used in calculating the
          transition value for the transition (that is Rise or Fall Time) trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:DELTatime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:DELTatime?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:DELTatime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TRANsition:DELTatime <NR3>
        - TRIGger:A:TRANsition:DELTatime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the delta time, in seconds.
    """


class TriggerATransition(SCPICmdRead):
    """The ``TRIGger:A:TRANsition`` command tree.

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

    Properties:
        - ``.deltatime``: The ``TRIGger:A:TRANsition:DELTatime`` command.
        - ``.logicqualification``: The ``TRIGger:A:TRANsition:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:A:TRANsition:POLarity`` command.
        - ``.source``: The ``TRIGger:A:TRANsition:SOUrce`` command.
        - ``.when``: The ``TRIGger:A:TRANsition:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._deltatime = TriggerATransitionDeltatime(device, f"{self._cmd_syntax}:DELTatime")
        self._logicqualification = TriggerATransitionLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerATransitionPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerATransitionSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerATransitionWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def deltatime(self) -> TriggerATransitionDeltatime:
        """Return the ``TRIGger:A:TRANsition:DELTatime`` command.

        **Description:**
            - This command specifies the delta time (that is Time Limit) used in calculating the
              transition value for the transition (that is Rise or Fall Time) trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:DELTatime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:DELTatime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:TRANsition:DELTatime value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TRANsition:DELTatime <NR3>
            - TRIGger:A:TRANsition:DELTatime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the delta time, in seconds.
        """
        return self._deltatime

    @property
    def logicqualification(self) -> TriggerATransitionLogicqualification:
        """Return the ``TRIGger:A:TRANsition:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a transition
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:TRANsition:LOGICQUALification?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:TRANsition:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:TRANsition:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TRANsition:LOGICQUALification {ON|OFF}
            - TRIGger:A:TRANsition:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the transition trigger type uses logic qualification.
            - ``OFF`` specifies that the transition trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerATransitionPolarity:
        """Return the ``TRIGger:A:TRANsition:POLarity`` command.

        **Description:**
            - This command specifies the polarity for the transition trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:TRANsition:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TRANsition:POLarity {EITher|NEGative|POSitive}
            - TRIGger:A:TRANsition:POLarity?

        **Info:**
            - ``POSitive`` indicates that a pulse edge must traverse from the lower (most negative)
              to higher (most positive) level for transition triggering to occur.
            - ``NEGative`` indicates that a pulse edge must traverse from the upper (most positive)
              to lower (most negative) level for transition triggering to occur.
            - ``EITher`` indicates either positive or negative polarity.
        """
        return self._polarity

    @property
    def source(self) -> TriggerATransitionSource:
        """Return the ``TRIGger:A:TRANsition:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for a transition trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TRANsition:SOUrce {CH<x>}
            - TRIGger:A:TRANsition:SOUrce?

        **Info:**
            - ``CH<x>`` specifies one of the analog channels to be used as the source for a
              transition trigger.
        """
        return self._source

    @property
    def when(self) -> TriggerATransitionWhen:
        """Return the ``TRIGger:A:TRANsition:WHEn`` command.

        **Description:**
            - This command specifies whether to check for a transitioning signal that is faster or
              slower than the specified delta time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TRANsition:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TRANsition:WHEn?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:TRANsition:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TRANsition:WHEn {SLOWer|FASTer|EQual|UNEQual}
            - TRIGger:A:TRANsition:WHEn?

        **Info:**
            - ``FASTer`` sets the trigger to occur when the signal transition time is faster than
              the time set by ``TRIGger:A:TRANsition:DELTatime``.
            - ``SLOWer`` sets the trigger to occur when the signal transition time is slower than
              the time set by.``TRIGger:A:TRANsition:DELTatime``.
            - ``EQual`` sets the trigger to occur when the signal transition time is equal to the
              time set by ``TRIGger:A:TRANsition:DELTatime``.
            - ``UNEQual`` sets the trigger to occur when the signal transition time is not equal to
              the time set by ``TRIGger:A:TRANsition:DELTatime``.
        """
        return self._when


class TriggerATimeoutTime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TIMEOut:TIMe`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this command specifies the timeout time,
          in seconds. This command is equivalent to selecting Timeout from the Trig menu and setting
          a value for Time Limit. The timeout trigger type is selected using TIMEOut

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:TIMe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:TIMe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TIMEOut:TIMe <NR3>
        - TRIGger:A:TIMEOut:TIMe?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the timeout time, in seconds.
    """


class TriggerATimeoutSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TIMEOut:SOUrce`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this command specifies the source. The
          available sources are live channels and digital channels. The default is channel 1. The
          timeout trigger type is selected using TIMEOut.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
        - TRIGger:A:TIMEOut:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the timeout trigger source.
        - ``CH<x>_D<x>`` specifies a digital channel as the timeout trigger source.
    """


class TriggerATimeoutPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TIMEOut:POLarity`` command.

    **Description:**
        - When triggering using the TIMEOut trigger type, this commands specifies the polarity to be
          used.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
        - TRIGger:A:TIMEOut:POLarity?

    **Info:**
        - ``STAYSHigh`` triggers when the signal stays high during the timeout time specified by the
          command.
        - ``STAYSLow`` triggers when the signal stays low during the timeout time specified by the
          command.
        - ``EITher`` triggers when the signal is either high or low during the timeout time
          specified by the command.
    """


class TriggerATimeoutLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:TIMEOut:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a timeout trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:TIMEOut:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:TIMEOut:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
        - TRIGger:A:TIMEOut:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the timeout trigger type uses logic qualification.
        - ``OFF`` specifies that the timeout trigger type does not use logic qualification.
    """


class TriggerATimeout(SCPICmdRead):
    """The ``TRIGger:A:TIMEOut`` command tree.

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

    Properties:
        - ``.logicqualification``: The ``TRIGger:A:TIMEOut:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:A:TIMEOut:POLarity`` command.
        - ``.source``: The ``TRIGger:A:TIMEOut:SOUrce`` command.
        - ``.time``: The ``TRIGger:A:TIMEOut:TIMe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logicqualification = TriggerATimeoutLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerATimeoutPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerATimeoutSource(device, f"{self._cmd_syntax}:SOUrce")
        self._time = TriggerATimeoutTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def logicqualification(self) -> TriggerATimeoutLogicqualification:
        """Return the ``TRIGger:A:TIMEOut:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a timeout
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:TIMEOut:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:TIMEOut:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
            - TRIGger:A:TIMEOut:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the timeout trigger type uses logic qualification.
            - ``OFF`` specifies that the timeout trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerATimeoutPolarity:
        """Return the ``TRIGger:A:TIMEOut:POLarity`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this commands specifies the polarity
              to be used.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
            - TRIGger:A:TIMEOut:POLarity?

        **Info:**
            - ``STAYSHigh`` triggers when the signal stays high during the timeout time specified by
              the command.
            - ``STAYSLow`` triggers when the signal stays low during the timeout time specified by
              the command.
            - ``EITher`` triggers when the signal is either high or low during the timeout time
              specified by the command.
        """
        return self._polarity

    @property
    def source(self) -> TriggerATimeoutSource:
        """Return the ``TRIGger:A:TIMEOut:SOUrce`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this command specifies the source. The
              available sources are live channels and digital channels. The default is channel 1.
              The timeout trigger type is selected using TIMEOut.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:SOUrce?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>}
            - TRIGger:A:TIMEOut:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the timeout trigger source.
            - ``CH<x>_D<x>`` specifies a digital channel as the timeout trigger source.
        """
        return self._source

    @property
    def time(self) -> TriggerATimeoutTime:
        """Return the ``TRIGger:A:TIMEOut:TIMe`` command.

        **Description:**
            - When triggering using the TIMEOut trigger type, this command specifies the timeout
              time, in seconds. This command is equivalent to selecting Timeout from the Trig menu
              and setting a value for Time Limit. The timeout trigger type is selected using TIMEOut

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:TIMEOut:TIMe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:TIMEOut:TIMe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:TIMEOut:TIMe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:TIMEOut:TIMe <NR3>
            - TRIGger:A:TIMEOut:TIMe?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the timeout time, in seconds.
        """
        return self._time


class TriggerASetholdSettime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:SETHold:SETTime`` command.

    **Description:**
        - This command specifies the setup time for setup and hold violation triggering. This
          command is equivalent to selecting Setup/Hold Setup from the Trig menu and then setting
          the desired Setup Time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:SETTime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:SETTime?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:SETTime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:SETHold:SETTime <NR3>
        - TRIGger:A:SETHold:SETTime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the setup time for setup and hold
          violation triggering.
    """


class TriggerASetholdHoldtime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:SETHold:HOLDTime`` command.

    **Description:**
        - This command specifies the hold time for setup and hold violation triggering. This command
          is equivalent to selecting Setup/Hold Setup from the Trig menu and then setting the
          desired Hold Time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:HOLDTime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:HOLDTime?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:HOLDTime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:SETHold:HOLDTime <NR3>
        - TRIGger:A:SETHold:HOLDTime?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the hold time setting, in seconds.
          Positive values for hold time occur after the clock edge. Negative values occur before the
          clock edge.
    """


class TriggerASetholdClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:SETHold:CLOCk:SOUrce`` command.

    **Description:**
        - This command specifies the clock source for the setup and hold triggering. You cannot
          specify the same source for both clock and data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:SOUrce?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
        - TRIGger:A:SETHold:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies the analog channel to use as the clock source waveform.
        - ``CH<x>_D<y>`` specifies the digital channel to use as the clock source waveform.
    """


class TriggerASetholdClockEdge(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:SETHold:CLOCk:EDGE`` command.

    **Description:**
        - This command specifies the clock edge polarity for setup and hold triggering.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk:EDGE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:EDGE?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:EDGE value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
        - TRIGger:A:SETHold:CLOCk:EDGE?

    **Info:**
        - ``FALL`` specifies polarity as the clock falling edge.
        - ``RISe`` specifies polarity as the clock rising edge.
    """


class TriggerASetholdClock(SCPICmdRead):
    """The ``TRIGger:A:SETHold:CLOCk`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.edge``: The ``TRIGger:A:SETHold:CLOCk:EDGE`` command.
        - ``.source``: The ``TRIGger:A:SETHold:CLOCk:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._edge = TriggerASetholdClockEdge(device, f"{self._cmd_syntax}:EDGE")
        self._source = TriggerASetholdClockSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def edge(self) -> TriggerASetholdClockEdge:
        """Return the ``TRIGger:A:SETHold:CLOCk:EDGE`` command.

        **Description:**
            - This command specifies the clock edge polarity for setup and hold triggering.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk:EDGE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:EDGE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:SETHold:CLOCk:EDGE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
            - TRIGger:A:SETHold:CLOCk:EDGE?

        **Info:**
            - ``FALL`` specifies polarity as the clock falling edge.
            - ``RISe`` specifies polarity as the clock rising edge.
        """
        return self._edge

    @property
    def source(self) -> TriggerASetholdClockSource:
        """Return the ``TRIGger:A:SETHold:CLOCk:SOUrce`` command.

        **Description:**
            - This command specifies the clock source for the setup and hold triggering. You cannot
              specify the same source for both clock and data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:SETHold:CLOCk:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
            - TRIGger:A:SETHold:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies the analog channel to use as the clock source waveform.
            - ``CH<x>_D<y>`` specifies the digital channel to use as the clock source waveform.
        """
        return self._source


class TriggerASethold(SCPICmdRead):
    """The ``TRIGger:A:SETHold`` command tree.

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

    Properties:
        - ``.clock``: The ``TRIGger:A:SETHold:CLOCk`` command tree.
        - ``.holdtime``: The ``TRIGger:A:SETHold:HOLDTime`` command.
        - ``.settime``: The ``TRIGger:A:SETHold:SETTime`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = TriggerASetholdClock(device, f"{self._cmd_syntax}:CLOCk")
        self._holdtime = TriggerASetholdHoldtime(device, f"{self._cmd_syntax}:HOLDTime")
        self._settime = TriggerASetholdSettime(device, f"{self._cmd_syntax}:SETTime")

    @property
    def clock(self) -> TriggerASetholdClock:
        """Return the ``TRIGger:A:SETHold:CLOCk`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:CLOCk?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:CLOCk?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.edge``: The ``TRIGger:A:SETHold:CLOCk:EDGE`` command.
            - ``.source``: The ``TRIGger:A:SETHold:CLOCk:SOUrce`` command.
        """
        return self._clock

    @property
    def holdtime(self) -> TriggerASetholdHoldtime:
        """Return the ``TRIGger:A:SETHold:HOLDTime`` command.

        **Description:**
            - This command specifies the hold time for setup and hold violation triggering. This
              command is equivalent to selecting Setup/Hold Setup from the Trig menu and then
              setting the desired Hold Time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:HOLDTime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:HOLDTime?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:HOLDTime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:SETHold:HOLDTime <NR3>
            - TRIGger:A:SETHold:HOLDTime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the hold time setting, in seconds.
              Positive values for hold time occur after the clock edge. Negative values occur before
              the clock edge.
        """
        return self._holdtime

    @property
    def settime(self) -> TriggerASetholdSettime:
        """Return the ``TRIGger:A:SETHold:SETTime`` command.

        **Description:**
            - This command specifies the setup time for setup and hold violation triggering. This
              command is equivalent to selecting Setup/Hold Setup from the Trig menu and then
              setting the desired Setup Time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:SETHold:SETTime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:SETHold:SETTime?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:SETHold:SETTime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:SETHold:SETTime <NR3>
            - TRIGger:A:SETHold:SETTime?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the setup time for setup and hold
              violation triggering.
        """
        return self._settime


class TriggerASetholdlogicvalA(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:SETHOLDLogicval:A`` command.

    **Description:**
        - This command sets or queries whether the specified channel is included (INCLude) or not
          included (DONTInclude) in the Setup & Hold trigger input configuration. The channel number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - TRIGger:A:SETHOLDLogicval:A {INCLude|DONTInclude}
        - TRIGger:A:SETHOLDLogicval:A?

    **Info:**
        - ``INCLude`` specifies including the specified channel in the Setup & Hold trigger input
          configuration.
        - ``DONTInclude`` specifies not including the specified channel in the Setup & Hold trigger
          input configuration.
    """


class TriggerASetholdlogicval(SCPICmdRead):
    """The ``TRIGger:A:SETHOLDLogicval`` command tree.

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

    Properties:
        - ``.a``: The ``TRIGger:A:SETHOLDLogicval:A`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._a = TriggerASetholdlogicvalA(device, f"{self._cmd_syntax}:A")

    @property
    def a(self) -> TriggerASetholdlogicvalA:
        """Return the ``TRIGger:A:SETHOLDLogicval:A`` command.

        **Description:**
            - This command sets or queries whether the specified channel is included (INCLude) or
              not included (DONTInclude) in the Setup & Hold trigger input configuration. The
              channel number is specified by x.

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

        **SCPI Syntax:**

        ::

            - TRIGger:A:SETHOLDLogicval:A {INCLude|DONTInclude}
            - TRIGger:A:SETHOLDLogicval:A?

        **Info:**
            - ``INCLude`` specifies including the specified channel in the Setup & Hold trigger
              input configuration.
            - ``DONTInclude`` specifies not including the specified channel in the Setup & Hold
              trigger input configuration.
        """
        return self._a


class TriggerARuntWidth(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:RUNT:WIDth`` command.

    **Description:**
        - This command specifies the width, in seconds, for a runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:WIDth?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:WIDth?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:WIDth value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:RUNT:WIDth <NR3>
        - TRIGger:A:RUNT:WIDth?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the minimum width, in seconds.
    """


class TriggerARuntWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:RUNT:WHEn`` command.

    **Description:**
        - This command specifies the type of pulse width the trigger checks for when it detects a
          runt.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:WHEn?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
        - TRIGger:A:RUNT:WHEn?

    **Info:**
        - ``OCCURS`` sets the instrument to trigger if a runt signal of any detectable width occurs.
        - ``LESSthan`` sets the instrument to trigger if the a runt pulse is detected with width
          less than the time set by the.
        - ``MOREthan`` sets the instrument to trigger if the a runt pulse is detected with width
          greater than the time set by the.
        - ``EQual`` sets the instrument to trigger if a runt pulse is detected with width equal to
          the time period specified in.
        - ``UNEQual`` sets the instrument to trigger if a runt pulse is detected with width greater
          than or less than (but not equal to) the time period specified in.
    """


class TriggerARuntSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:RUNT:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for the runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:RUNT:SOUrce {CH<x>}
        - TRIGger:A:RUNT:SOUrce?

    **Info:**
        - ``CH<x>`` specifies the analog channel number to use as the source waveform for the runt
          trigger. To specify the threshold levels when using CH<x> as the source, use.
    """


class TriggerARuntPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:RUNT:POLarity`` command.

    **Description:**
        - This command specifies the polarity for the runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:POLarity?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:RUNT:POLarity {EITher|NEGative|POSitive}
        - TRIGger:A:RUNT:POLarity?

    **Info:**
        - ``POSitive`` indicates that the rising edge crosses the low threshold and the falling edge
          recrosses the low threshold without either edge ever crossing the high threshold.
        - ``NEGative`` indicates that the falling edge crosses the high threshold and the rising
          edge recrosses the high threshold without either edge ever crossing the low threshold.
        - ``EITher`` triggers on a runt of either polarity.
    """


class TriggerARuntLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:RUNT:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a runt trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:LOGICQUALification?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:LOGICQUALification?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:RUNT:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
        - TRIGger:A:RUNT:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the runt trigger type uses logic qualification.
        - ``OFF`` specifies that the runt trigger type does not use logic qualification.
    """


class TriggerARunt(SCPICmdRead):
    """The ``TRIGger:A:RUNT`` command tree.

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

    Properties:
        - ``.logicqualification``: The ``TRIGger:A:RUNT:LOGICQUALification`` command.
        - ``.polarity``: The ``TRIGger:A:RUNT:POLarity`` command.
        - ``.source``: The ``TRIGger:A:RUNT:SOUrce`` command.
        - ``.when``: The ``TRIGger:A:RUNT:WHEn`` command.
        - ``.width``: The ``TRIGger:A:RUNT:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._logicqualification = TriggerARuntLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = TriggerARuntPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerARuntSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerARuntWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = TriggerARuntWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def logicqualification(self) -> TriggerARuntLogicqualification:
        """Return the ``TRIGger:A:RUNT:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:LOGICQUALification?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:RUNT:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:RUNT:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
            - TRIGger:A:RUNT:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the runt trigger type uses logic qualification.
            - ``OFF`` specifies that the runt trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def polarity(self) -> TriggerARuntPolarity:
        """Return the ``TRIGger:A:RUNT:POLarity`` command.

        **Description:**
            - This command specifies the polarity for the runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:POLarity?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:RUNT:POLarity {EITher|NEGative|POSitive}
            - TRIGger:A:RUNT:POLarity?

        **Info:**
            - ``POSitive`` indicates that the rising edge crosses the low threshold and the falling
              edge recrosses the low threshold without either edge ever crossing the high threshold.
            - ``NEGative`` indicates that the falling edge crosses the high threshold and the rising
              edge recrosses the high threshold without either edge ever crossing the low threshold.
            - ``EITher`` triggers on a runt of either polarity.
        """
        return self._polarity

    @property
    def source(self) -> TriggerARuntSource:
        """Return the ``TRIGger:A:RUNT:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for the runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:RUNT:SOUrce {CH<x>}
            - TRIGger:A:RUNT:SOUrce?

        **Info:**
            - ``CH<x>`` specifies the analog channel number to use as the source waveform for the
              runt trigger. To specify the threshold levels when using CH<x> as the source, use.
        """
        return self._source

    @property
    def when(self) -> TriggerARuntWhen:
        """Return the ``TRIGger:A:RUNT:WHEn`` command.

        **Description:**
            - This command specifies the type of pulse width the trigger checks for when it detects
              a runt.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:RUNT:WHEn {LESSthan|MOREthan|EQual|UNEQual|OCCURS}
            - TRIGger:A:RUNT:WHEn?

        **Info:**
            - ``OCCURS`` sets the instrument to trigger if a runt signal of any detectable width
              occurs.
            - ``LESSthan`` sets the instrument to trigger if the a runt pulse is detected with width
              less than the time set by the.
            - ``MOREthan`` sets the instrument to trigger if the a runt pulse is detected with width
              greater than the time set by the.
            - ``EQual`` sets the instrument to trigger if a runt pulse is detected with width equal
              to the time period specified in.
            - ``UNEQual`` sets the instrument to trigger if a runt pulse is detected with width
              greater than or less than (but not equal to) the time period specified in.
        """
        return self._when

    @property
    def width(self) -> TriggerARuntWidth:
        """Return the ``TRIGger:A:RUNT:WIDth`` command.

        **Description:**
            - This command specifies the width, in seconds, for a runt trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:RUNT:WIDth?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:RUNT:WIDth?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:RUNT:WIDth value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:RUNT:WIDth <NR3>
            - TRIGger:A:RUNT:WIDth?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the minimum width, in seconds.
        """
        return self._width


class TriggerAPulsewidthWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:WHEn`` command.

    **Description:**
        - This command specifies to trigger when a pulse is detected with a width (duration) that is
          less than, greater than, equal to, or unequal to a specified value (set using ), OR whose
          width falls outside of or within a specified range of two values (set using and ).

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:WHEn value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
        - TRIGger:A:PULSEWidth:WHEn?

    **Info:**
        - ``LESSthan`` causes a trigger when a pulse is detected with a width less than the time set
          by the.
        - ``MOREthan`` causes a trigger when a pulse is detected with a width greater than the time
          set by the.
        - ``EQual`` causes a trigger when a pulse is detected with a width equal to the time period
          specified in.
        - ``UNEQual`` causes a trigger when a pulse is detected with a width greater than or less
          than (but not equal) the time period specified in.
        - ``WIThin`` causes a trigger when a pulse is detected that is within a range set by two
          values.
        - ``OUTside`` causes a trigger when a pulse is detected that is outside of a range set by
          two values.
    """


class TriggerAPulsewidthSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:SOUrce`` command.

    **Description:**
        - This command specifies the source waveform for a pulse width trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:SOUrce?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:SOUrce value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
        - TRIGger:A:PULSEWidth:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog input channel as the pulse-width trigger source.
        - ``CH<x>_D<x>`` specifies an digital input channel as the pulse-width trigger source.
    """


class TriggerAPulsewidthPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:POLarity`` command.

    **Description:**
        - This command specifies the polarity for a pulse width trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:POLarity?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:POLarity {NEGative|POSitive}
        - TRIGger:A:PULSEWidth:POLarity?

    **Info:**
        - ``NEGative`` specifies a negative pulse.
        - ``POSitive`` specifies a positive pulse.
    """


class TriggerAPulsewidthLowlimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:LOWLimit`` command.

    **Description:**
        - This command specifies the lower limit to use, in seconds, when triggering on detection of
          a pulse whose duration is inside or outside a range of two values. (Use to specify the
          upper limit of the range.) This command also specifies the single limit to use, in
          seconds, when triggering on detection of a pulse whose duration is less than, greater
          than, equal to, or not equal to this time limit.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:LOWLimit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:LOWLimit?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:LOWLimit value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:LOWLimit <NR3>
        - TRIGger:A:PULSEWidth:LOWLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that represents the lower value of the range.
    """


class TriggerAPulsewidthLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a pulse width
          trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:LOGICQUALification?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:PULSEWidth:LOGICQUALification?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:PULSEWidth:LOGICQUALification value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
        - TRIGger:A:PULSEWidth:LOGICQUALification?

    **Info:**
        - ``ON`` specifies that the pulse width trigger type uses logic qualification.
        - ``OFF`` specifies that the pulse width trigger type does not use logic qualification.
    """


class TriggerAPulsewidthHighlimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth:HIGHLimit`` command.

    **Description:**
        - This command specifies the upper limit to use, in seconds, when triggering on detection of
          a pulse whose duration is inside or outside a range of two values. (Use to specify the
          lower value of the range.)

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:HIGHLimit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:HIGHLimit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:HIGHLimit value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:PULSEWidth:HIGHLimit <NR3>
        - TRIGger:A:PULSEWidth:HIGHLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that represents the higher value of the range.
    """


class TriggerAPulsewidth(SCPICmdRead):
    """The ``TRIGger:A:PULSEWidth`` command tree.

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

    Properties:
        - ``.highlimit``: The ``TRIGger:A:PULSEWidth:HIGHLimit`` command.
        - ``.logicqualification``: The ``TRIGger:A:PULSEWidth:LOGICQUALification`` command.
        - ``.lowlimit``: The ``TRIGger:A:PULSEWidth:LOWLimit`` command.
        - ``.polarity``: The ``TRIGger:A:PULSEWidth:POLarity`` command.
        - ``.source``: The ``TRIGger:A:PULSEWidth:SOUrce`` command.
        - ``.when``: The ``TRIGger:A:PULSEWidth:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._highlimit = TriggerAPulsewidthHighlimit(device, f"{self._cmd_syntax}:HIGHLimit")
        self._logicqualification = TriggerAPulsewidthLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._lowlimit = TriggerAPulsewidthLowlimit(device, f"{self._cmd_syntax}:LOWLimit")
        self._polarity = TriggerAPulsewidthPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._source = TriggerAPulsewidthSource(device, f"{self._cmd_syntax}:SOUrce")
        self._when = TriggerAPulsewidthWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def highlimit(self) -> TriggerAPulsewidthHighlimit:
        """Return the ``TRIGger:A:PULSEWidth:HIGHLimit`` command.

        **Description:**
            - This command specifies the upper limit to use, in seconds, when triggering on
              detection of a pulse whose duration is inside or outside a range of two values. (Use
              to specify the lower value of the range.)

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:HIGHLimit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:HIGHLimit?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:PULSEWidth:HIGHLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:HIGHLimit <NR3>
            - TRIGger:A:PULSEWidth:HIGHLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that represents the higher value of the range.
        """
        return self._highlimit

    @property
    def logicqualification(self) -> TriggerAPulsewidthLogicqualification:
        """Return the ``TRIGger:A:PULSEWidth:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a pulse width
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:PULSEWidth:LOGICQUALification?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:PULSEWidth:LOGICQUALification?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:PULSEWidth:LOGICQUALification value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
            - TRIGger:A:PULSEWidth:LOGICQUALification?

        **Info:**
            - ``ON`` specifies that the pulse width trigger type uses logic qualification.
            - ``OFF`` specifies that the pulse width trigger type does not use logic qualification.
        """
        return self._logicqualification

    @property
    def lowlimit(self) -> TriggerAPulsewidthLowlimit:
        """Return the ``TRIGger:A:PULSEWidth:LOWLimit`` command.

        **Description:**
            - This command specifies the lower limit to use, in seconds, when triggering on
              detection of a pulse whose duration is inside or outside a range of two values. (Use
              to specify the upper limit of the range.) This command also specifies the single limit
              to use, in seconds, when triggering on detection of a pulse whose duration is less
              than, greater than, equal to, or not equal to this time limit.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:LOWLimit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:LOWLimit?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:PULSEWidth:LOWLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:LOWLimit <NR3>
            - TRIGger:A:PULSEWidth:LOWLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that represents the lower value of the range.
        """
        return self._lowlimit

    @property
    def polarity(self) -> TriggerAPulsewidthPolarity:
        """Return the ``TRIGger:A:PULSEWidth:POLarity`` command.

        **Description:**
            - This command specifies the polarity for a pulse width trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:POLarity?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:PULSEWidth:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:POLarity {NEGative|POSitive}
            - TRIGger:A:PULSEWidth:POLarity?

        **Info:**
            - ``NEGative`` specifies a negative pulse.
            - ``POSitive`` specifies a positive pulse.
        """
        return self._polarity

    @property
    def source(self) -> TriggerAPulsewidthSource:
        """Return the ``TRIGger:A:PULSEWidth:SOUrce`` command.

        **Description:**
            - This command specifies the source waveform for a pulse width trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:SOUrce?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>}
            - TRIGger:A:PULSEWidth:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog input channel as the pulse-width trigger source.
            - ``CH<x>_D<x>`` specifies an digital input channel as the pulse-width trigger source.
        """
        return self._source

    @property
    def when(self) -> TriggerAPulsewidthWhen:
        """Return the ``TRIGger:A:PULSEWidth:WHEn`` command.

        **Description:**
            - This command specifies to trigger when a pulse is detected with a width (duration)
              that is less than, greater than, equal to, or unequal to a specified value (set using
              ), OR whose width falls outside of or within a specified range of two values (set
              using and ).

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:PULSEWidth:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:PULSEWidth:WHEn?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:PULSEWidth:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan|EQual|UNEQual|WIThin|OUTside}
            - TRIGger:A:PULSEWidth:WHEn?

        **Info:**
            - ``LESSthan`` causes a trigger when a pulse is detected with a width less than the time
              set by the.
            - ``MOREthan`` causes a trigger when a pulse is detected with a width greater than the
              time set by the.
            - ``EQual`` causes a trigger when a pulse is detected with a width equal to the time
              period specified in.
            - ``UNEQual`` causes a trigger when a pulse is detected with a width greater than or
              less than (but not equal) the time period specified in.
            - ``WIThin`` causes a trigger when a pulse is detected that is within a range set by two
              values.
            - ``OUTside`` causes a trigger when a pulse is detected that is outside of a range set
              by two values.
        """
        return self._when


class TriggerAMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:MODe`` command.

    **Description:**
        - This command sets or queries the A trigger mode. This command is equivalent to pushing the
          Mode button on the front panel.

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

    **SCPI Syntax:**

    ::

        - TRIGger:A:MODe {AUTO|NORMal}
        - TRIGger:A:MODe?

    **Info:**
        - ``AUTO`` generates a trigger if one is not detected within a specified time period.
        - ``NORMal`` waits for a valid trigger event.
    """


class TriggerALowerthresholdChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOWerthreshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the A or B lower trigger level threshold for the channel,
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOWerthreshold:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOWerthreshold:CH<x>?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOWerthreshold:CH<x> value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOWerthreshold:CH<x> <NR3>
        - TRIGger:A:LOWerthreshold:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the threshold voltage in user units.
    """


class TriggerALowerthreshold(SCPICmdRead):
    """The ``TRIGger:A:LOWerthreshold`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:A:LOWerthreshold:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerALowerthresholdChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerALowerthresholdChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerALowerthresholdChannel]:
        """Return the ``TRIGger:A:LOWerthreshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the A or B lower trigger level threshold for the channel,
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOWerthreshold:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOWerthreshold:CH<x>?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:LOWerthreshold:CH<x> value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOWerthreshold:CH<x> <NR3>
            - TRIGger:A:LOWerthreshold:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the threshold voltage in user units.
        """
        return self._ch


class TriggerALogicWhen(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:WHEn`` command.

    **Description:**
        - This command sets or queries the condition for generating an A or B logic trigger with
          respect to the defined input pattern. This command is equivalent to selecting Logic for
          Trigger Type, Use Clock Edge to No, and choosing a trigger condition from the Logic
          Pattern drop-down list.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:WHEn?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
        - TRIGger:A:LOGIc:WHEn?

    **Info:**
        - ``TRUe`` triggers on an input pattern that is true.
        - ``FALSe`` triggers on an input pattern that is false.
        - ``EQual`` triggers on an input pattern that is true for a time period equal to a user
          defined Time Limit (DELTatime) value.
        - ``UNEQual`` triggers on an input pattern that is true for a time period not equal to a
          user defined Time Limit (DELTatime) value.
    """


class TriggerALogicUseclockedge(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:USECLockedge`` command.

    **Description:**
        - This command specifies whether or not Logic trigger type uses clock source.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:USECLockedge?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:USECLockedge?`` query
          and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:USECLockedge value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:USECLockedge {OFF|ON|0|1}
        - TRIGger:A:LOGIc:USECLockedge?

    **Info:**
        - ``ON`` specifies that logic trigger type uses clock source.
        - ``OFF`` specifies that logic trigger type does not use clock source.
        - ``0`` specifies that logic trigger type does not use clock source; any other number value
          uses clock source.
        - ``1`` specifies that logic trigger type uses clock source.
    """


class TriggerALogicPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:POLarity`` command.

    **Description:**
        - This command sets or queries the polarity for the clock channel when Use Clock Edge is set
          to Yes for Logic trigger type.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:POLarity?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:POLarity value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
        - TRIGger:A:LOGIc:POLarity?

    **Info:**
        - ``NEGative`` specifies negative polarity.
        - ``EITher`` specifies either polarity.
    """


class TriggerALogicInputClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce`` command.

    **Description:**
        - This command specifies the channel to use as the clock source for logic trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
        - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the clock source. Number of channels depends on
          instrument configuration.
        - ``CH<x>_D<y>`` specifies a digital channel as the clock source. Number of channels depends
          on instrument configuration.
    """


class TriggerALogicInputClock(SCPICmdRead):
    """The ``TRIGger:A:LOGIc:INPut:CLOCk`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.source``: The ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._source = TriggerALogicInputClockSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def source(self) -> TriggerALogicInputClockSource:
        """Return the ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce`` command.

        **Description:**
            - This command specifies the channel to use as the clock source for logic trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce {CH<x>|CH<x>_D<y>}
            - TRIGger:A:LOGIc:INPut:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the clock source. Number of channels depends
              on instrument configuration.
            - ``CH<x>_D<y>`` specifies a digital channel as the clock source. Number of channels
              depends on instrument configuration.
        """
        return self._source


class TriggerALogicInput(SCPICmdRead):
    """The ``TRIGger:A:LOGIc:INPut`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:INPut?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.clock``: The ``TRIGger:A:LOGIc:INPut:CLOCk`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = TriggerALogicInputClock(device, f"{self._cmd_syntax}:CLOCk")

    @property
    def clock(self) -> TriggerALogicInputClock:
        """Return the ``TRIGger:A:LOGIc:INPut:CLOCk`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:INPut:CLOCk?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.source``: The ``TRIGger:A:LOGIc:INPut:CLOCk:SOUrce`` command.
        """
        return self._clock


class TriggerALogicFunction(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:FUNCtion`` command.

    **Description:**
        - This command sets or queries the logical combination of the input channels for logic
          triggers. This command is equivalent to selecting Logic for the Trigger Type, and setting
          or viewing the Define Logic.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:FUNCtion?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:FUNCtion?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:FUNCtion value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
        - TRIGger:A:LOGIc:FUNCtion?

    **Info:**
        - ``AND`` specifies to trigger if all conditions are true.
        - ``NANd`` specifies to trigger if any of the conditions are false.
        - ``NOR`` specifies to trigger if all conditions are false.
        - ``OR`` specifies to trigger if any of the conditions are true.
    """


class TriggerALogicDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGIc:DELTatime`` command.

    **Description:**
        - This command specifies or queries the Logic trigger delta time value. The time value is
          used as part of the Logic trigger condition to determine if the duration of a logic
          pattern meets the specified time constraints.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:DELTatime?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:DELTatime?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:DELTatime value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGIc:DELTatime <NR3>
        - TRIGger:A:LOGIc:DELTatime?

    **Info:**
        - ``<NR3>`` the Logic trigger delta time value.
    """


class TriggerALogic(SCPICmdRead):
    """The ``TRIGger:A:LOGIc`` command tree.

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

    Properties:
        - ``.deltatime``: The ``TRIGger:A:LOGIc:DELTatime`` command.
        - ``.function``: The ``TRIGger:A:LOGIc:FUNCtion`` command.
        - ``.input``: The ``TRIGger:A:LOGIc:INPut`` command tree.
        - ``.polarity``: The ``TRIGger:A:LOGIc:POLarity`` command.
        - ``.useclockedge``: The ``TRIGger:A:LOGIc:USECLockedge`` command.
        - ``.when``: The ``TRIGger:A:LOGIc:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._deltatime = TriggerALogicDeltatime(device, f"{self._cmd_syntax}:DELTatime")
        self._function = TriggerALogicFunction(device, f"{self._cmd_syntax}:FUNCtion")
        self._input = TriggerALogicInput(device, f"{self._cmd_syntax}:INPut")
        self._polarity = TriggerALogicPolarity(device, f"{self._cmd_syntax}:POLarity")
        self._useclockedge = TriggerALogicUseclockedge(device, f"{self._cmd_syntax}:USECLockedge")
        self._when = TriggerALogicWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def deltatime(self) -> TriggerALogicDeltatime:
        """Return the ``TRIGger:A:LOGIc:DELTatime`` command.

        **Description:**
            - This command specifies or queries the Logic trigger delta time value. The time value
              is used as part of the Logic trigger condition to determine if the duration of a logic
              pattern meets the specified time constraints.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:DELTatime?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:DELTatime?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:DELTatime value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:DELTatime <NR3>
            - TRIGger:A:LOGIc:DELTatime?

        **Info:**
            - ``<NR3>`` the Logic trigger delta time value.
        """
        return self._deltatime

    @property
    def function(self) -> TriggerALogicFunction:
        """Return the ``TRIGger:A:LOGIc:FUNCtion`` command.

        **Description:**
            - This command sets or queries the logical combination of the input channels for logic
              triggers. This command is equivalent to selecting Logic for the Trigger Type, and
              setting or viewing the Define Logic.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:FUNCtion?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:FUNCtion?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:FUNCtion value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
            - TRIGger:A:LOGIc:FUNCtion?

        **Info:**
            - ``AND`` specifies to trigger if all conditions are true.
            - ``NANd`` specifies to trigger if any of the conditions are false.
            - ``NOR`` specifies to trigger if all conditions are false.
            - ``OR`` specifies to trigger if any of the conditions are true.
        """
        return self._function

    @property
    def input(self) -> TriggerALogicInput:
        """Return the ``TRIGger:A:LOGIc:INPut`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:INPut?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:INPut?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.clock``: The ``TRIGger:A:LOGIc:INPut:CLOCk`` command tree.
        """
        return self._input

    @property
    def polarity(self) -> TriggerALogicPolarity:
        """Return the ``TRIGger:A:LOGIc:POLarity`` command.

        **Description:**
            - This command sets or queries the polarity for the clock channel when Use Clock Edge is
              set to Yes for Logic trigger type.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:POLarity?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:POLarity value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
            - TRIGger:A:LOGIc:POLarity?

        **Info:**
            - ``NEGative`` specifies negative polarity.
            - ``EITher`` specifies either polarity.
        """
        return self._polarity

    @property
    def useclockedge(self) -> TriggerALogicUseclockedge:
        """Return the ``TRIGger:A:LOGIc:USECLockedge`` command.

        **Description:**
            - This command specifies whether or not Logic trigger type uses clock source.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:USECLockedge?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:USECLockedge?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:LOGIc:USECLockedge value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:USECLockedge {OFF|ON|0|1}
            - TRIGger:A:LOGIc:USECLockedge?

        **Info:**
            - ``ON`` specifies that logic trigger type uses clock source.
            - ``OFF`` specifies that logic trigger type does not use clock source.
            - ``0`` specifies that logic trigger type does not use clock source; any other number
              value uses clock source.
            - ``1`` specifies that logic trigger type uses clock source.
        """
        return self._useclockedge

    @property
    def when(self) -> TriggerALogicWhen:
        """Return the ``TRIGger:A:LOGIc:WHEn`` command.

        **Description:**
            - This command sets or queries the condition for generating an A or B logic trigger with
              respect to the defined input pattern. This command is equivalent to selecting Logic
              for Trigger Type, Use Clock Edge to No, and choosing a trigger condition from the
              Logic Pattern drop-down list.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LOGIc:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LOGIc:WHEn?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:LOGIc:WHEn value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual| UNEQual}
            - TRIGger:A:LOGIc:WHEn?

        **Info:**
            - ``TRUe`` triggers on an input pattern that is true.
            - ``FALSe`` triggers on an input pattern that is false.
            - ``EQual`` triggers on an input pattern that is true for a time period equal to a user
              defined Time Limit (DELTatime) value.
            - ``UNEQual`` triggers on an input pattern that is true for a time period not equal to a
              user defined Time Limit (DELTatime) value.
        """
        return self._when


class TriggerALogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGICQUALification`` command.

    **Description:**
        - This command sets or queries the type of logic qualification to perform.

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

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGICQUALification {AND|OR|NAND|NOR}
        - TRIGger:A:LOGICQUALification?

    **Info:**
        - ``AND`` specifies to trigger if all conditions are true.
        - ``NANd`` specifies to trigger if any of the conditions are false.
        - ``NOR`` specifies to trigger if all conditions are false.
        - ``OR`` specifies to trigger if any of the conditions are true.
    """


class TriggerALogicpatternA(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LOGICPattern:A`` command.

    **Description:**
        - This command sets or queries the Logic Pattern that is used along with the Define Logic
          choice (``LOGIc:FUNCtion``) to determine when the logic trigger occurs.

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

    **SCPI Syntax:**

    ::

        - TRIGger:A:LOGICPattern:A {HIGH|LOW|X}
        - TRIGger:A:LOGICPattern:A?

    **Info:**
        - ``HIGH`` specifies the logic high.
        - ``LOW`` specifies the logic low.
        - ``X`` specifies a don't care state.
    """


class TriggerALogicpattern(SCPICmdRead):
    """The ``TRIGger:A:LOGICPattern`` command tree.

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

    Properties:
        - ``.a``: The ``TRIGger:A:LOGICPattern:A`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._a = TriggerALogicpatternA(device, f"{self._cmd_syntax}:A")

    @property
    def a(self) -> TriggerALogicpatternA:
        """Return the ``TRIGger:A:LOGICPattern:A`` command.

        **Description:**
            - This command sets or queries the Logic Pattern that is used along with the Define
              Logic choice (``LOGIc:FUNCtion``) to determine when the logic trigger occurs.

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

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGICPattern:A {HIGH|LOW|X}
            - TRIGger:A:LOGICPattern:A?

        **Info:**
            - ``HIGH`` specifies the logic high.
            - ``LOW`` specifies the logic low.
            - ``X`` specifies a don't care state.
        """
        return self._a


class TriggerALevelChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:LEVel:CH<x>`` command.

    **Description:**
        - This command sets or queries the CH<x> trigger level for an Edge, Pulse Width, Runt or
          Rise/Fall (Transition and Slew Rate) trigger when triggering on an analog channel
          waveform. Each channel can have an independent trigger level. The <x> is the channel
          number.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:LEVel:CH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:LEVel:CH<x>?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:LEVel:CH<x> value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:LEVel:CH<x> <NR3>
        - TRIGger:A:LEVel:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the trigger level in user units (usually volts).
    """


class TriggerALevel(SCPICmdRead):
    """The ``TRIGger:A:LEVel`` command tree.

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

    Properties:
        - ``.ch``: The ``TRIGger:A:LEVel:CH<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ch: Dict[int, TriggerALevelChannel] = DefaultDictPassKeyToFactory(
            lambda x: TriggerALevelChannel(device, f"{self._cmd_syntax}:CH{x}")
        )

    @property
    def ch(self) -> Dict[int, TriggerALevelChannel]:
        """Return the ``TRIGger:A:LEVel:CH<x>`` command.

        **Description:**
            - This command sets or queries the CH<x> trigger level for an Edge, Pulse Width, Runt or
              Rise/Fall (Transition and Slew Rate) trigger when triggering on an analog channel
              waveform. Each channel can have an independent trigger level. The <x> is the channel
              number.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:LEVel:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:LEVel:CH<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:LEVel:CH<x> value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:LEVel:CH<x> <NR3>
            - TRIGger:A:LEVel:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the trigger level in user units (usually volts).
        """
        return self._ch


class TriggerAHoldoffTime(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:HOLDoff:TIMe`` command.

    **Description:**
        - This command sets or queries the A trigger holdoff time. This command is equivalent to
          selecting Mode & Holdoff from the Trig menu, selecting Time, and then setting the desired
          Holdoff Time.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:HOLDoff:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:HOLDoff:TIMe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:HOLDoff:TIMe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:HOLDoff:TIMe <NR3>
        - TRIGger:A:HOLDoff:TIMe?

    **Info:**
        - ``<NR3>`` specifies the holdoff time in seconds. The range is from 0 seconds through 10
          seconds.
    """


class TriggerAHoldoffBy(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:HOLDoff:BY`` command.

    **Description:**
        - This command sets or queries the type of holdoff for the A trigger. Holdoff types are
          expressed as either user-specified time (TIMe) or by an internally calculated random time
          value (RANDom). This command is equivalent to selecting Mode & Holdoff from the Trig menu
          and then setting the Holdoff type.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:HOLDoff:BY?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:HOLDoff:BY?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:HOLDoff:BY value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:HOLDoff:BY {TIMe|RANDom}
        - TRIGger:A:HOLDoff:BY?

    **Info:**
        - ``TIMe`` enables you to set the holdoff time via the ``TRIGGER:A:HOLDOFF:TIME`` command.
        - ``RANDom`` specifies a random time value.
    """


class TriggerAHoldoff(SCPICmdRead):
    """The ``TRIGger:A:HOLDoff`` command tree.

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

    Properties:
        - ``.by``: The ``TRIGger:A:HOLDoff:BY`` command.
        - ``.time``: The ``TRIGger:A:HOLDoff:TIMe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._by = TriggerAHoldoffBy(device, f"{self._cmd_syntax}:BY")
        self._time = TriggerAHoldoffTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def by(self) -> TriggerAHoldoffBy:
        """Return the ``TRIGger:A:HOLDoff:BY`` command.

        **Description:**
            - This command sets or queries the type of holdoff for the A trigger. Holdoff types are
              expressed as either user-specified time (TIMe) or by an internally calculated random
              time value (RANDom). This command is equivalent to selecting Mode & Holdoff from the
              Trig menu and then setting the Holdoff type.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:HOLDoff:BY?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:HOLDoff:BY?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:HOLDoff:BY value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:HOLDoff:BY {TIMe|RANDom}
            - TRIGger:A:HOLDoff:BY?

        **Info:**
            - ``TIMe`` enables you to set the holdoff time via the ``TRIGGER:A:HOLDOFF:TIME``
              command.
            - ``RANDom`` specifies a random time value.
        """
        return self._by

    @property
    def time(self) -> TriggerAHoldoffTime:
        """Return the ``TRIGger:A:HOLDoff:TIMe`` command.

        **Description:**
            - This command sets or queries the A trigger holdoff time. This command is equivalent to
              selecting Mode & Holdoff from the Trig menu, selecting Time, and then setting the
              desired Holdoff Time.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:HOLDoff:TIMe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:HOLDoff:TIMe?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:HOLDoff:TIMe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:HOLDoff:TIMe <NR3>
            - TRIGger:A:HOLDoff:TIMe?

        **Info:**
            - ``<NR3>`` specifies the holdoff time in seconds. The range is from 0 seconds through
              10 seconds.
        """
        return self._time


class TriggerAEdgeSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:EDGE:SOUrce`` command.

    **Description:**
        - This command sets or queries the source for the edge trigger. For instruments that have an
          Auxiliary Input (such as the MSO58LP), AUXiliary can be selected as trigger source.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
        - TRIGger:A:EDGE:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the edge trigger source.
        - ``CH<x>_D<y>`` specifies a digital channel as the edge trigger source.
        - ``LINE`` specifies AC line voltage, and is a valid source when B trigger is inactive.
        - ``AUXiliary`` specifies the Auxiliary Input.
    """


class TriggerAEdgeSlope(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:EDGE:SLOpe`` command.

    **Description:**
        - This command sets or queries the slope for the edge trigger. This command is equivalent to
          selecting Edge from the Trigger Type drop-down in the Trigger setup context menu, and then
          choosing the desired Slope. This command is also equivalent to pressing the front-panel
          Slope button.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:SLOpe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:SLOpe?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:SLOpe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
        - TRIGger:A:EDGE:SLOpe?

    **Info:**
        - ``RISe`` specifies to trigger on the rising or positive edge of a signal.
        - ``FALL`` specifies to trigger on the falling or negative edge of a signal.
    """


class TriggerAEdgeCoupling(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:EDGE:COUPling`` command.

    **Description:**
        - This command sets or queries the type of coupling for the edge trigger. This command is
          equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup context
          menu, and choosing from the Coupling drop-down list.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:COUPling?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:COUPling?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:COUPling value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
        - TRIGger:A:EDGE:COUPling?

    **Info:**
        - ``DC`` selects DC trigger coupling, which passes all input signals to the trigger
          circuitry.
        - ``HFRej`` coupling attenuates signals above 50 kHz before passing the signals to the
          trigger circuitry.
        - ``LFRej`` coupling attenuates signals below 80 kHz before passing the signals to the
          trigger circuitry.
        - ``NOISErej`` coupling provides stable triggering by increasing the trigger hysteresis.
          Increased hysteresis reduces the trigger sensitivity to noise but can require greater
          trigger signal amplitude.
    """


class TriggerAEdge(SCPICmdRead):
    """The ``TRIGger:A:EDGE`` command tree.

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

    Properties:
        - ``.coupling``: The ``TRIGger:A:EDGE:COUPling`` command.
        - ``.slope``: The ``TRIGger:A:EDGE:SLOpe`` command.
        - ``.source``: The ``TRIGger:A:EDGE:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._coupling = TriggerAEdgeCoupling(device, f"{self._cmd_syntax}:COUPling")
        self._slope = TriggerAEdgeSlope(device, f"{self._cmd_syntax}:SLOpe")
        self._source = TriggerAEdgeSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def coupling(self) -> TriggerAEdgeCoupling:
        """Return the ``TRIGger:A:EDGE:COUPling`` command.

        **Description:**
            - This command sets or queries the type of coupling for the edge trigger. This command
              is equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup
              context menu, and choosing from the Coupling drop-down list.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:COUPling?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:COUPling?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:COUPling value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:EDGE:COUPling {DC|HFRej|LFRej|NOISErej}
            - TRIGger:A:EDGE:COUPling?

        **Info:**
            - ``DC`` selects DC trigger coupling, which passes all input signals to the trigger
              circuitry.
            - ``HFRej`` coupling attenuates signals above 50 kHz before passing the signals to the
              trigger circuitry.
            - ``LFRej`` coupling attenuates signals below 80 kHz before passing the signals to the
              trigger circuitry.
            - ``NOISErej`` coupling provides stable triggering by increasing the trigger hysteresis.
              Increased hysteresis reduces the trigger sensitivity to noise but can require greater
              trigger signal amplitude.
        """
        return self._coupling

    @property
    def slope(self) -> TriggerAEdgeSlope:
        """Return the ``TRIGger:A:EDGE:SLOpe`` command.

        **Description:**
            - This command sets or queries the slope for the edge trigger. This command is
              equivalent to selecting Edge from the Trigger Type drop-down in the Trigger setup
              context menu, and then choosing the desired Slope. This command is also equivalent to
              pressing the front-panel Slope button.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:SLOpe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:SLOpe?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:SLOpe value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
            - TRIGger:A:EDGE:SLOpe?

        **Info:**
            - ``RISe`` specifies to trigger on the rising or positive edge of a signal.
            - ``FALL`` specifies to trigger on the falling or negative edge of a signal.
        """
        return self._slope

    @property
    def source(self) -> TriggerAEdgeSource:
        """Return the ``TRIGger:A:EDGE:SOUrce`` command.

        **Description:**
            - This command sets or queries the source for the edge trigger. For instruments that
              have an Auxiliary Input (such as the MSO58LP), AUXiliary can be selected as trigger
              source.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:EDGE:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:EDGE:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:EDGE:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:EDGE:SOUrce {CH<x>|CH<x>_D<y>|LINE|AUXiliary}
            - TRIGger:A:EDGE:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the edge trigger source.
            - ``CH<x>_D<y>`` specifies a digital channel as the edge trigger source.
            - ``LINE`` specifies AC line voltage, and is a valid source when B trigger is inactive.
            - ``AUXiliary`` specifies the Auxiliary Input.
        """
        return self._source


class TriggerABusSource(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:SOUrce`` command.

    **Description:**
        - This command sets or queries the source bus for a bus trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:SOUrce?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:SOUrce B<x>
        - TRIGger:A:BUS:SOUrce?

    **Info:**
        - ``B<x>`` sets the selected source to the bus.
    """


class TriggerABusBItemUsbTokentype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:TOKENType`` command.

    **Description:**
        - This command specifies the token type for the USB trigger. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:TOKENType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:TOKENType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:TOKENType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
        - TRIGger:A:BUS:B<x>:USB:TOKENType?

    **Info:**
        - ``ANY`` indicates any of the token types.
        - ``SOF`` indicates a SOF (start-of-frame) token type.
        - ``OUT`` indicates an OUT token type.
        - ``IN`` indicates an IN token type.
        - ``SETUP`` indicates a SETUP token type.
    """


class TriggerABusBItemUsbSplitSeValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction start/end bit value to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
        - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?

    **Info:**
        - ``NOCARE`` - any combination of S and E bits.
        - ``FULLSPEED`` - S bit = 0, E bit = 0.
        - ``LOWSPEED`` - S bit = 1, E bit = 0.
        - ``ISOSTART`` - S bit = 1, E bit = 0.
        - ``ISOMID`` - see note above.
        - ``ISOEND`` - see note above.
        - ``ISOALL`` - see note above.
    """  # noqa: E501


class TriggerABusBItemUsbSplitSe(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbSplitSeValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbSplitSeValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction start/end bit value to trigger on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue {NOCARE|FULLSPEED|LOWSPEED|ISOSTART|ISOMID|ISOEND|ISOALL}
            - TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue?

        **Info:**
            - ``NOCARE`` - any combination of S and E bits.
            - ``FULLSPEED`` - S bit = 0, E bit = 0.
            - ``LOWSPEED`` - S bit = 1, E bit = 0.
            - ``ISOSTART`` - S bit = 1, E bit = 0.
            - ``ISOMID`` - see note above.
            - ``ISOEND`` - see note above.
            - ``ISOALL`` - see note above.
        """  # noqa: E501
        return self._value


class TriggerABusBItemUsbSplitScValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies whether to
          trigger on the start or complete phase of the split transaction, based on the
          Start/Complete bit field value. (0 = Start, 1 = Complete). The default is NOCARE. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
        - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?

    **Info:**
        - ``NOCARE`` - trigger on either the start or complete phase of the split transaction.
        - ``SSPLIT`` - trigger on the start phase of the split transaction.
        - ``CSPLIT`` - trigger on the complete phase of the split transaction.
    """


class TriggerABusBItemUsbSplitSc(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbSplitScValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbSplitScValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies whether
              to trigger on the start or complete phase of the split transaction, based on the
              Start/Complete bit field value. (0 = Start, 1 = Complete). The default is NOCARE. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue {NOCARE|SSPLIT|CSPLIT}
            - TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue?

        **Info:**
            - ``NOCARE`` - trigger on either the start or complete phase of the split transaction.
            - ``SSPLIT`` - trigger on the start phase of the split transaction.
            - ``CSPLIT`` - trigger on the complete phase of the split transaction.
        """
        return self._value


class TriggerABusBItemUsbSplitPortValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction port address value to trigger on. The trigger condition must be set to Special
          with a packet type SPLIT. The value can be up to 7 characters long. The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
        - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?

    **Info:**
        - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbSplitPort(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbSplitPortValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbSplitPortValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction port address value to trigger on. The trigger condition must be set
              to Special with a packet type SPLIT. The value can be up to 7 characters long. The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue <QString>
            - TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue?

        **Info:**
            - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and
              1.
        """
        return self._value


class TriggerABusBItemUsbSplitHubValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction hub address value to trigger on. The trigger condition must be set to Special
          with packet type SPLIT. The value can be up to 7 characters long. The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
        - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?

    **Info:**
        - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbSplitHub(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbSplitHubValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbSplitHubValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction hub address value to trigger on. The trigger condition must be set
              to Special with packet type SPLIT. The value can be up to 7 characters long. The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue <QString>
            - TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue?

        **Info:**
            - ``QString`` is a quoted string of up to 7 characters. The valid characters are 0 and
              1.
        """
        return self._value


class TriggerABusBItemUsbSplitEtValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue`` command.

    **Description:**
        - When triggering on a high-speed USB split transaction, this command specifies the split
          transaction endpoint type value to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
        - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?

    **Info:**
        - ``NOCARE`` - any endpoint type.
        - ``CONTRol`` - control endpoint type.
        - ``ISOchronous`` - isochronous endpoint type.
        - ``BULK`` - bulk endpoint type (BULK-IN or BULK-OUT).
        - ``INTERRUPT`` - interrupt endpoint type (Interrupt-IN).
    """


class TriggerABusBItemUsbSplitEt(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbSplitEtValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbSplitEtValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue`` command.

        **Description:**
            - When triggering on a high-speed USB split transaction, this command specifies the
              split transaction endpoint type value to trigger on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue {NOCARE|CONTRol|ISOchronous|BULK|INTERRUPT}
            - TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue?

        **Info:**
            - ``NOCARE`` - any endpoint type.
            - ``CONTRol`` - control endpoint type.
            - ``ISOchronous`` - isochronous endpoint type.
            - ``BULK`` - bulk endpoint type (BULK-IN or BULK-OUT).
            - ``INTERRUPT`` - interrupt endpoint type (Interrupt-IN).
        """
        return self._value


class TriggerABusBItemUsbSplit(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPLit`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.et``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET`` command tree.
        - ``.hub``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB`` command tree.
        - ``.port``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT`` command tree.
        - ``.sc``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC`` command tree.
        - ``.se``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._et = TriggerABusBItemUsbSplitEt(device, f"{self._cmd_syntax}:ET")
        self._hub = TriggerABusBItemUsbSplitHub(device, f"{self._cmd_syntax}:HUB")
        self._port = TriggerABusBItemUsbSplitPort(device, f"{self._cmd_syntax}:PORT")
        self._sc = TriggerABusBItemUsbSplitSc(device, f"{self._cmd_syntax}:SC")
        self._se = TriggerABusBItemUsbSplitSe(device, f"{self._cmd_syntax}:SE")

    @property
    def et(self) -> TriggerABusBItemUsbSplitEt:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:ET?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET:VALue`` command.
        """
        return self._et

    @property
    def hub(self) -> TriggerABusBItemUsbSplitHub:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB:VALue`` command.
        """
        return self._hub

    @property
    def port(self) -> TriggerABusBItemUsbSplitPort:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT:VALue`` command.
        """
        return self._port

    @property
    def sc(self) -> TriggerABusBItemUsbSplitSc:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SC?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC:VALue`` command.
        """
        return self._sc

    @property
    def se(self) -> TriggerABusBItemUsbSplitSe:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit:SE?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE:VALue`` command.
        """
        return self._se


class TriggerABusBItemUsbSpecialtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SPECIALType`` command.

    **Description:**
        - This command specifies the packet ID (PID) for the special packet. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPECIALType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPECIALType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SPECIALType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
        - TRIGger:A:BUS:B<x>:USB:SPECIALType?

    **Info:**
        - ``ANY`` specifies the PID value as Any (XX00).
        - ``ERROr`` specifies the PID value as ERR (1100).
        - ``PING`` specifies the PID value as PING (0100).
        - ``PREamble`` specifies the PID value as PRE (1100).
        - ``RESERVed`` specifies the PID value as Reserved (0000).
        - ``SPLit`` specifies the PID value as Split (1000).
    """


class TriggerABusBItemUsbSofframenumber(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber`` command.

    **Description:**
        - This command specifies the binary data string to be used for start of frame number, when
          the trigger condition is Token Packet and the token type is Start of Frame. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber <QString>
        - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?

    **Info:**
        - ``<QString>`` within the range 000 0000 0000 to 111 1111 1111 (000 hex to 7FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbHandshaketype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType`` command.

    **Description:**
        - This command specifies the handshake type for the USB trigger. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
        - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?

    **Info:**
        - ``ANY`` indicates the instrument will trigger on any handshake type.
        - ``NAK`` indicates the instrument will trigger when a device cannot send or receive data.
        - ``ACK`` indicates the instrument will trigger when a packet is successfully received.
        - ``STALL`` indicates the instrument will trigger when a device requires intervention from
          the host.
        - ``NYET`` specifies the handshake type as No response Yet (0110).
    """


class TriggerABusBItemUsbErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ERRType`` command.

    **Description:**
        - This command specifies the error type to be used when the trigger condition is set to
          ERRor. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
        - TRIGger:A:BUS:B<x>:USB:ERRType?

    **Info:**
        - ``PID`` indicates the error type is set to packet ID.
        - ``CRC5`` indicates the error type is set to 5-bit CRC.
        - ``CRC16`` indicates the error type is set to 16-bit CRC.
        - ``BITSTUFFing`` indicates the error type is set to bit stuffing.
    """


class TriggerABusBItemUsbEndpointValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue`` command.

    **Description:**
        - This command specifies the binary endpoint string to be used for the USB trigger. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue <QString>
        - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?

    **Info:**
        - ``<QString>`` within the range 0000 to 1111 (00 hex to 0F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbEndpoint(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ENDPoint`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemUsbEndpointValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemUsbEndpointValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue`` command.

        **Description:**
            - This command specifies the binary endpoint string to be used for the USB trigger. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue <QString>
            - TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue?

        **Info:**
            - ``<QString>`` within the range 0000 to 1111 (00 hex to 0F hex).
        """
        return self._value


class TriggerABusBItemUsbDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string to be used when triggering on a USB trigger.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:USB:DATa:VALue?

    **Info:**
        - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbDataType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe`` command.

    **Description:**
        - This command specifies the data type for a USB trigger. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
        - TRIGger:A:BUS:B<x>:USB:DATa:TYPe?

    **Info:**
        - ``ANY`` indicates either a DATA0 or DATA1 data packet type.
        - ``MDATA`` indicates a MDATA data packet type when on HIGH speed.
    """


class TriggerABusBItemUsbDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe`` command.

    **Description:**
        - This command specifies the number of contiguous data bytes to trigger on. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:USB:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is number in the range 1 to 16.
    """


class TriggerABusBItemUsbDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on a USB bus signal. The
          trigger condition must be set to DATAPACKET. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?

    **Info:**
        - ``INrange`` specifies the qualifier as Inside Range.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``OUTrange`` specifies the qualifier as Out of Range.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
    """  # noqa: E501


class TriggerABusBItemUsbDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet`` command.

    **Description:**
        - This command specifies the data offset in bytes to trigger on. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet <NR1>
        - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is number in the range 0 to 1024.
    """


class TriggerABusBItemUsbDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the binary data string for the upper limit for inside-of-range and
          outside-of-range qualifiers for the USB trigger when the trigger condition is DATA. Use
          the command to set the lower limit. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?

    **Info:**
        - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe`` command.
        - ``.type``: The ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemUsbDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerABusBItemUsbDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerABusBItemUsbDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerABusBItemUsbDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._type = TriggerABusBItemUsbDataType(device, f"{self._cmd_syntax}:TYPe")
        self._value = TriggerABusBItemUsbDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemUsbDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the binary data string for the upper limit for inside-of-range
              and outside-of-range qualifiers for the USB trigger when the trigger condition is
              DATA. Use the command to set the lower limit. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:USB:DATa:HIVALue?

        **Info:**
            - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerABusBItemUsbDataOffset:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet`` command.

        **Description:**
            - This command specifies the data offset in bytes to trigger on. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet <NR1>
            - TRIGger:A:BUS:B<x>:USB:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is number in the range 0 to 1024.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerABusBItemUsbDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on a USB bus signal. The
              trigger condition must be set to DATAPACKET. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:USB:DATa:QUALifier?

        **Info:**
            - ``INrange`` specifies the qualifier as Inside Range.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``OUTrange`` specifies the qualifier as Out of Range.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerABusBItemUsbDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe`` command.

        **Description:**
            - This command specifies the number of contiguous data bytes to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:USB:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is number in the range 1 to 16.
        """
        return self._size

    @property
    def type(self) -> TriggerABusBItemUsbDataType:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe`` command.

        **Description:**
            - This command specifies the data type for a USB trigger. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
            - TRIGger:A:BUS:B<x>:USB:DATa:TYPe?

        **Info:**
            - ``ANY`` indicates either a DATA0 or DATA1 data packet type.
            - ``MDATA`` indicates a MDATA data packet type when on HIGH speed.
        """
        return self._type

    @property
    def value(self) -> TriggerABusBItemUsbDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string to be used when triggering on a USB
              trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:USB:DATa:VALue?

        **Info:**
            - ``<QString>`` within the range 00000000 to 11111111 (00 hex to FF hex).
        """
        return self._value


class TriggerABusBItemUsbCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for the USB trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
        - TRIGger:A:BUS:B<x>:USB:CONDition?

    **Info:**
        - ``SYNC`` indicates triggering on a Sync field of a packet.
        - ``RESET`` sets triggering on a reset condition.
        - ``SUSPEND`` sets triggering on a suspend condition.
        - ``RESUME`` sets triggering on a resume condition.
        - ``EOP`` indicates triggering on an end-of-packet signal.
        - ``TOKENPacket`` indicates triggering on a token packet.
        - ``DATAPacket`` indicates triggering on a data packet.
        - ``HANDSHAKEPacket`` indicates triggering on a handshake packet.
        - ``SPECIALPacket`` indicates triggering on a special status packet.
        - ``ERRor`` indicates triggering on an error condition.
    """  # noqa: E501


class TriggerABusBItemUsbAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string to be used for USB trigger. The trigger
          condition must be set to TOKEN. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue <QString>
        - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue`` command.

    **Description:**
        - This command specifies the binary address string for the upper limit for inside-of-range
          and outside-of-range qualifiers for the USB trigger. Use the command to set the lower
          limit. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemUsbAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemUsbAddressHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._value = TriggerABusBItemUsbAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemUsbAddressHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue`` command.

        **Description:**
            - This command specifies the binary address string for the upper limit for
              inside-of-range and outside-of-range qualifiers for the USB trigger. Use the command
              to set the lower limit. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
        """
        return self._hivalue

    @property
    def value(self) -> TriggerABusBItemUsbAddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string to be used for USB trigger. The
              trigger condition must be set to TOKEN. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue <QString>
            - TRIGger:A:BUS:B<x>:USB:ADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` within the range 0000000 to 1111111 (00 hex to 7F hex).
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class TriggerABusBItemUsb(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:USB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:USB:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:USB:DATa`` command tree.
        - ``.endpoint``: The ``TRIGger:A:BUS:B<x>:USB:ENDPoint`` command tree.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:USB:ERRType`` command.
        - ``.handshaketype``: The ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType`` command.
        - ``.sofframenumber``: The ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber`` command.
        - ``.specialtype``: The ``TRIGger:A:BUS:B<x>:USB:SPECIALType`` command.
        - ``.split``: The ``TRIGger:A:BUS:B<x>:USB:SPLit`` command tree.
        - ``.tokentype``: The ``TRIGger:A:BUS:B<x>:USB:TOKENType`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemUsbAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerABusBItemUsbCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemUsbData(device, f"{self._cmd_syntax}:DATa")
        self._endpoint = TriggerABusBItemUsbEndpoint(device, f"{self._cmd_syntax}:ENDPoint")
        self._errtype = TriggerABusBItemUsbErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._handshaketype = TriggerABusBItemUsbHandshaketype(
            device, f"{self._cmd_syntax}:HANDSHAKEType"
        )
        self._sofframenumber = TriggerABusBItemUsbSofframenumber(
            device, f"{self._cmd_syntax}:SOFFRAMENUMber"
        )
        self._specialtype = TriggerABusBItemUsbSpecialtype(
            device, f"{self._cmd_syntax}:SPECIALType"
        )
        self._split = TriggerABusBItemUsbSplit(device, f"{self._cmd_syntax}:SPLit")
        self._tokentype = TriggerABusBItemUsbTokentype(device, f"{self._cmd_syntax}:TOKENType")

    @property
    def address(self) -> TriggerABusBItemUsbAddress:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess:HIVALue`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerABusBItemUsbCondition:
        """Return the ``TRIGger:A:BUS:B<x>:USB:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for the USB trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:CONDition {SYNC|RESET|SUSPEND|RESUME|EOP|TOKENPacket|DATAPacket| HANDSHAKEPacket|SPECIALPacket|ERRor}
            - TRIGger:A:BUS:B<x>:USB:CONDition?

        **Info:**
            - ``SYNC`` indicates triggering on a Sync field of a packet.
            - ``RESET`` sets triggering on a reset condition.
            - ``SUSPEND`` sets triggering on a suspend condition.
            - ``RESUME`` sets triggering on a resume condition.
            - ``EOP`` indicates triggering on an end-of-packet signal.
            - ``TOKENPacket`` indicates triggering on a token packet.
            - ``DATAPacket`` indicates triggering on a data packet.
            - ``HANDSHAKEPacket`` indicates triggering on a handshake packet.
            - ``SPECIALPacket`` indicates triggering on a special status packet.
            - ``ERRor`` indicates triggering on an error condition.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemUsbData:
        """Return the ``TRIGger:A:BUS:B<x>:USB:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:USB:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:A:BUS:B<x>:USB:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:USB:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:USB:DATa:SIZe`` command.
            - ``.type``: The ``TRIGger:A:BUS:B<x>:USB:DATa:TYPe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:DATa:VALue`` command.
        """
        return self._data

    @property
    def endpoint(self) -> TriggerABusBItemUsbEndpoint:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ENDPoint`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ENDPoint?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:USB:ENDPoint:VALue`` command.
        """
        return self._endpoint

    @property
    def errtype(self) -> TriggerABusBItemUsbErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:USB:ERRType`` command.

        **Description:**
            - This command specifies the error type to be used when the trigger condition is set to
              ERRor. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:ERRType {PID|CRC5|CRC16|BITSTUFFing}
            - TRIGger:A:BUS:B<x>:USB:ERRType?

        **Info:**
            - ``PID`` indicates the error type is set to packet ID.
            - ``CRC5`` indicates the error type is set to 5-bit CRC.
            - ``CRC16`` indicates the error type is set to 16-bit CRC.
            - ``BITSTUFFing`` indicates the error type is set to bit stuffing.
        """
        return self._errtype

    @property
    def handshaketype(self) -> TriggerABusBItemUsbHandshaketype:
        """Return the ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType`` command.

        **Description:**
            - This command specifies the handshake type for the USB trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType {ANY|NAK|ACK|STALL|NYET}
            - TRIGger:A:BUS:B<x>:USB:HANDSHAKEType?

        **Info:**
            - ``ANY`` indicates the instrument will trigger on any handshake type.
            - ``NAK`` indicates the instrument will trigger when a device cannot send or receive
              data.
            - ``ACK`` indicates the instrument will trigger when a packet is successfully received.
            - ``STALL`` indicates the instrument will trigger when a device requires intervention
              from the host.
            - ``NYET`` specifies the handshake type as No response Yet (0110).
        """
        return self._handshaketype

    @property
    def sofframenumber(self) -> TriggerABusBItemUsbSofframenumber:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber`` command.

        **Description:**
            - This command specifies the binary data string to be used for start of frame number,
              when the trigger condition is Token Packet and the token type is Start of Frame. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber <QString>
            - TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber?

        **Info:**
            - ``<QString>`` within the range 000 0000 0000 to 111 1111 1111 (000 hex to 7FF hex).
        """
        return self._sofframenumber

    @property
    def specialtype(self) -> TriggerABusBItemUsbSpecialtype:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPECIALType`` command.

        **Description:**
            - This command specifies the packet ID (PID) for the special packet. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPECIALType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPECIALType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:SPECIALType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
            - TRIGger:A:BUS:B<x>:USB:SPECIALType?

        **Info:**
            - ``ANY`` specifies the PID value as Any (XX00).
            - ``ERROr`` specifies the PID value as ERR (1100).
            - ``PING`` specifies the PID value as PING (0100).
            - ``PREamble`` specifies the PID value as PRE (1100).
            - ``RESERVed`` specifies the PID value as Reserved (0000).
            - ``SPLit`` specifies the PID value as Split (1000).
        """
        return self._specialtype

    @property
    def split(self) -> TriggerABusBItemUsbSplit:
        """Return the ``TRIGger:A:BUS:B<x>:USB:SPLit`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB:SPLit?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.et``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:ET`` command tree.
            - ``.hub``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:HUB`` command tree.
            - ``.port``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:PORT`` command tree.
            - ``.sc``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SC`` command tree.
            - ``.se``: The ``TRIGger:A:BUS:B<x>:USB:SPLit:SE`` command tree.
        """
        return self._split

    @property
    def tokentype(self) -> TriggerABusBItemUsbTokentype:
        """Return the ``TRIGger:A:BUS:B<x>:USB:TOKENType`` command.

        **Description:**
            - This command specifies the token type for the USB trigger. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB:TOKENType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:TOKENType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:USB:TOKENType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:USB:TOKENType {ANY|SOF|OUT|IN|SETUP}
            - TRIGger:A:BUS:B<x>:USB:TOKENType?

        **Info:**
            - ``ANY`` indicates any of the token types.
            - ``SOF`` indicates a SOF (start-of-frame) token type.
            - ``OUT`` indicates an OUT token type.
            - ``IN`` indicates an IN token type.
            - ``SETUP`` indicates a SETUP token type.
        """
        return self._tokentype


class TriggerABusBItemSvidSlaveAddress(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess`` command.

    **Description:**
        - This command sets the binary address of the slave for a SVID bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
        - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?

    **Info:**
        - ``<QString>`` sets the binary payload value. Default size and value is 4 bits and 'XXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSvidSlave(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:SLAVe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemSvidSlaveAddress(device, f"{self._cmd_syntax}:ADDRess")

    @property
    def address(self) -> TriggerABusBItemSvidSlaveAddress:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess`` command.

        **Description:**
            - This command sets the binary address of the slave for a SVID bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess <QString>
            - TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess?

        **Info:**
            - ``<QString>`` sets the binary payload value. Default size and value is 4 bits and
              'XXXX' respectively.
        """
        return self._address


class TriggerABusBItemSvidPayloadValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue`` command.

    **Description:**
        - This command sets the binary payload value for a SVID bus to trigger on. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue <QString>
        - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?

    **Info:**
        - ``<QString>`` sets the binary payload value. Default size and value is 8 bits and
          'XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSvidPayloadType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe`` command.

    **Description:**
        - This command sets or queries the payload type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
        - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?

    **Info:**
        - ``MASTer`` sets the payload type to master. This is the default value.
        - ``SLAVe`` sets the payload type to slave.
    """


class TriggerABusBItemSvidPayload(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerABusBItemSvidPayloadType(device, f"{self._cmd_syntax}:TYPe")
        self._value = TriggerABusBItemSvidPayloadValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def type(self) -> TriggerABusBItemSvidPayloadType:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe`` command.

        **Description:**
            - This command sets or queries the payload type for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe {MASTer|SLAVe}
            - TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe?

        **Info:**
            - ``MASTer`` sets the payload type to master. This is the default value.
            - ``SLAVe`` sets the payload type to slave.
        """
        return self._type

    @property
    def value(self) -> TriggerABusBItemSvidPayloadValue:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue`` command.

        **Description:**
            - This command sets the binary payload value for a SVID bus to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue <QString>
            - TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue?

        **Info:**
            - ``<QString>`` sets the binary payload value. Default size and value is 8 bits and
              'XXXXXXXX' respectively.
        """
        return self._value


class TriggerABusBItemSvidParityType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe`` command.

    **Description:**
        - This command sets or queries the parity type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
        - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?

    **Info:**
        - ``MASTer`` sets the parity type to master. This is the default value.
        - ``SLAVe`` sets the parity type to slave.
    """


class TriggerABusBItemSvidParity(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:PARity`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerABusBItemSvidParityType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> TriggerABusBItemSvidParityType:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe`` command.

        **Description:**
            - This command sets or queries the parity type for SVID bus. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe {MASTer|SLAVe}
            - TRIGger:A:BUS:B<x>:SVID:PARity:TYPe?

        **Info:**
            - ``MASTer`` sets the parity type to master. This is the default value.
            - ``SLAVe`` sets the parity type to slave.
        """
        return self._type


class TriggerABusBItemSvidErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
        - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?

    **Info:**
        - ``NACK`` sets the error type to nack.
        - ``REJect`` sets the error type to reject.
        - ``MIXed`` sets the error type to mixed.
        - ``PARity`` sets the error type to parity.
    """


class TriggerABusBItemSvidError(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = TriggerABusBItemSvidErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> TriggerABusBItemSvidErrorType:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for SVID bus. The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe {NACK| REJect| MIXed| PARity}
            - TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe?

        **Info:**
            - ``NACK`` sets the error type to nack.
            - ``REJect`` sets the error type to reject.
            - ``MIXed`` sets the error type to mixed.
            - ``PARity`` sets the error type to parity.
        """
        return self._type


class TriggerABusBItemSvidCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a SVID bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
        - TRIGger:A:BUS:B<x>:SVID:CONDition?

    **Info:**
        - ``STARTCONDition`` sets the trigger condition to start condition. This is the default
          value.
        - ``SLAVEADDRess`` sets the trigger condition to slave address.
        - ``COMMand`` sets the trigger condition to command.
        - ``PAYLoad`` sets the trigger condition to payload.
        - ``ERRors`` sets the trigger condition to errors.
    """


class TriggerABusBItemSvidCommandType(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe`` command.

    **Description:**
        - This command sets or queries the command type for SVID bus. The bus number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
        - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?

    **Info:**
        - ``GET`` sets the command type to get. This is the default value.
        - ``SET`` sets the command type to set.
        - ``OPTional`` sets the command type to optional.
    """


class TriggerABusBItemSvidCommandResponse(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse`` command.

    **Description:**
        - This command sets or queries the command response for SVID bus. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
        - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?

    **Info:**
        - ``GETREG`` sets the command response to GetReg. This is the default value.
        - ``GETREGVENDor`` sets the command response to GetRegVendor.
        - ``GETREGTESTCFG`` sets the command response to GetRegTestCfg.
        - ``SETVIDFAST`` sets the command response to SetVID Fast.
        - ``SETVIDSLOW`` sets the command response to SetVID Slow.
        - ``SETVIDDECay`` sets the command response to SetVID Decay.
        - ``SETPS`` sets the command response to SetPS.
        - ``SETREGADDR`` sets the command response to SetRegAddr.
        - ``SETREGDATa`` sets the command response to SetRegData.
        - ``SETREGADDRVENDor`` sets the command response to SetRegAddrVendor.
        - ``SETREGDATAVENDor`` sets the command response to SetRegDataVendor.
        - ``SETREGADDRTESTCONFg`` sets the command response to SetRegAddrTestCfg.
        - ``SETREGDATATESTCONFg`` sets the command response to SetRegDataTestCfg.
        - ``TESTMODe`` sets the command response to Test Mode.
        - ``SETWP`` sets the command response to SetWP.
        - ``GETREGPKTRECent`` sets the command response to GetRegPktRecent.
        - ``GETREGPKTALERt`` sets the command response to GetRegPktAlert.
        - ``GETREGPKTBAD`` sets the command response to GetRegPktBad.
        - ``GETREGVREVENt`` sets the command response to GetRegVrEvent.
    """  # noqa: E501


class TriggerABusBItemSvidCommand(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID:COMMand`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.response``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse`` command.
        - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._response = TriggerABusBItemSvidCommandResponse(device, f"{self._cmd_syntax}:RESPonse")
        self._type = TriggerABusBItemSvidCommandType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def response(self) -> TriggerABusBItemSvidCommandResponse:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse`` command.

        **Description:**
            - This command sets or queries the command response for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse {GETREG| GETREGVENDor| GETREGTESTCFG| SETVIDFAST| SETVIDSLOW| SETVIDDECay| SETPS| SETREGADDR| SETREGDATa| SETREGADDRVENDor| SETREGDATAVENDor| SETREGADDRTESTCONFg| SETREGDATATESTCONFg| TESTMODe| SETWP| GETREGPKTRECent| GETREGPKTALERt| GETREGPKTBAD| GETREGVREVENt}
            - TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse?

        **Info:**
            - ``GETREG`` sets the command response to GetReg. This is the default value.
            - ``GETREGVENDor`` sets the command response to GetRegVendor.
            - ``GETREGTESTCFG`` sets the command response to GetRegTestCfg.
            - ``SETVIDFAST`` sets the command response to SetVID Fast.
            - ``SETVIDSLOW`` sets the command response to SetVID Slow.
            - ``SETVIDDECay`` sets the command response to SetVID Decay.
            - ``SETPS`` sets the command response to SetPS.
            - ``SETREGADDR`` sets the command response to SetRegAddr.
            - ``SETREGDATa`` sets the command response to SetRegData.
            - ``SETREGADDRVENDor`` sets the command response to SetRegAddrVendor.
            - ``SETREGDATAVENDor`` sets the command response to SetRegDataVendor.
            - ``SETREGADDRTESTCONFg`` sets the command response to SetRegAddrTestCfg.
            - ``SETREGDATATESTCONFg`` sets the command response to SetRegDataTestCfg.
            - ``TESTMODe`` sets the command response to Test Mode.
            - ``SETWP`` sets the command response to SetWP.
            - ``GETREGPKTRECent`` sets the command response to GetRegPktRecent.
            - ``GETREGPKTALERt`` sets the command response to GetRegPktAlert.
            - ``GETREGPKTBAD`` sets the command response to GetRegPktBad.
            - ``GETREGVREVENt`` sets the command response to GetRegVrEvent.
        """  # noqa: E501
        return self._response

    @property
    def type(self) -> TriggerABusBItemSvidCommandType:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe`` command.

        **Description:**
            - This command sets or queries the command type for SVID bus. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe {GET|SET|OPTional}
            - TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe?

        **Info:**
            - ``GET`` sets the command type to get. This is the default value.
            - ``SET`` sets the command type to set.
            - ``OPTional`` sets the command type to optional.
        """
        return self._type


class TriggerABusBItemSvid(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SVID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.command``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand`` command tree.
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:SVID:CONDition`` command.
        - ``.error``: The ``TRIGger:A:BUS:B<x>:SVID:ERRor`` command tree.
        - ``.parity``: The ``TRIGger:A:BUS:B<x>:SVID:PARity`` command tree.
        - ``.payload``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad`` command tree.
        - ``.slave``: The ``TRIGger:A:BUS:B<x>:SVID:SLAVe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = TriggerABusBItemSvidCommand(device, f"{self._cmd_syntax}:COMMand")
        self._condition = TriggerABusBItemSvidCondition(device, f"{self._cmd_syntax}:CONDition")
        self._error = TriggerABusBItemSvidError(device, f"{self._cmd_syntax}:ERRor")
        self._parity = TriggerABusBItemSvidParity(device, f"{self._cmd_syntax}:PARity")
        self._payload = TriggerABusBItemSvidPayload(device, f"{self._cmd_syntax}:PAYLoad")
        self._slave = TriggerABusBItemSvidSlave(device, f"{self._cmd_syntax}:SLAVe")

    @property
    def command(self) -> TriggerABusBItemSvidCommand:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:COMMand`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:COMMand?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.response``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand:RESPonse`` command.
            - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand:TYPe`` command.
        """
        return self._command

    @property
    def condition(self) -> TriggerABusBItemSvidCondition:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a SVID bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SVID:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
            - TRIGger:A:BUS:B<x>:SVID:CONDition?

        **Info:**
            - ``STARTCONDition`` sets the trigger condition to start condition. This is the default
              value.
            - ``SLAVEADDRess`` sets the trigger condition to slave address.
            - ``COMMand`` sets the trigger condition to command.
            - ``PAYLoad`` sets the trigger condition to payload.
            - ``ERRors`` sets the trigger condition to errors.
        """  # noqa: E501
        return self._condition

    @property
    def error(self) -> TriggerABusBItemSvidError:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:ERRor?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def parity(self) -> TriggerABusBItemSvidParity:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:PARity`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PARity?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:PARity:TYPe`` command.
        """
        return self._parity

    @property
    def payload(self) -> TriggerABusBItemSvidPayload:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:PAYLoad?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:TYPe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad:VALue`` command.
        """
        return self._payload

    @property
    def slave(self) -> TriggerABusBItemSvidSlave:
        """Return the ``TRIGger:A:BUS:B<x>:SVID:SLAVe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID:SLAVe?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:SVID:SLAVe:ADDRess`` command.
        """
        return self._slave


class TriggerABusBItemSpmiSlaveaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the slave address used
          in SPMI triggering if the trigger condition is RESet, SLEep, SHUTdown, WAKeup,
          AUTHenticate, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, LONGEXTREGWRIte,
          DEVICEDESCSLAVEREAd, or REG0WRIte.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the slave address on which to
          trigger.
    """


class TriggerABusBItemSpmiSlaveaddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSpmiSlaveaddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSpmiSlaveaddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the slave address
              used in SPMI triggering if the trigger condition is RESet, SLEep, SHUTdown, WAKeup,
              AUTHenticate, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd,
              LONGEXTREGWRIte, DEVICEDESCSLAVEREAd, or REG0WRIte.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the slave address on which to
              trigger.
        """
        return self._value


class TriggerABusBItemSpmiRegisteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the register address
          used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, REGREAd,
          REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the register address.
    """


class TriggerABusBItemSpmiRegisteraddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSpmiRegisteraddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSpmiRegisteraddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the register
              address used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte,
              REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the register address.
        """
        return self._value


class TriggerABusBItemSpmiNoresponse(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse`` command.

    **Description:**
        - This command sets or queries whether or not to trigger on No Response frames.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:NORESPonse <Qstring>
        - TRIGger:A:BUS:B<x>:SPMI:NORESPonse?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is either TRUE or FALSE boolean value.
    """


class TriggerABusBItemSpmiMasteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the master address
          used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, or
          DEVICEDESCMASTERREAd.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the master address on which to
          trigger.
    """


class TriggerABusBItemSpmiMasteraddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSpmiMasteraddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSpmiMasteraddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the master address
              used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, or
              DEVICEDESCMASTERREAd.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the master address on which to
              trigger.
        """
        return self._value


class TriggerABusBItemSpmiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for SPMI triggering if the
          trigger condition is MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte,
          LONGEXTREGREAd, LONGEXTREGWRIte, or REG0WRIte.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary data string that identifies the data value on which to
          trigger.
    """


class TriggerABusBItemSpmiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to be used when
          triggering on an SPMI bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe <NR2>
        - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<NR2>`` is the size of the data string in bytes.
    """


class TriggerABusBItemSpmiData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.size``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerABusBItemSpmiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemSpmiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerABusBItemSpmiDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string, in bytes, to be used when
              triggering on an SPMI bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe <NR2>
            - TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<NR2>`` is the size of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemSpmiDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for SPMI triggering if the
              trigger condition is MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd,
              EXTREGWRIte, LONGEXTREGREAd, LONGEXTREGWRIte, or REG0WRIte.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SPMI:DATa:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary data string that identifies the data value on which to
              trigger.
        """
        return self._value


class TriggerABusBItemSpmiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified SPMI bus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPMI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
        - TRIGger:A:BUS:B<x>:SPMI:CONDition?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``SSC`` specifies triggering on the Sequence Start Condition.
        - ``RESet`` specifies triggering on the Reset command sequence.
        - ``SLEep`` specifies triggering on the Sleep command sequnce.
        - ``SHUTdown`` specifies triggering on the Shutdown command sequence.
        - ``WAKeup`` specifies triggering on the Wakeup command sequence.
        - ``MASTERREAd`` specifies triggering on the Master Read command sequence.
        - ``MASTERWRIte`` specifies triggering on the Master Write command sequence.
        - ``REGREAd`` specifies triggering on the Register Read command sequence.
        - ``REGWRIte`` specifies triggering on the Register Write command sequence.
        - ``DEVICEDESCMASTERREAd`` specifies triggering on the Device Descriptor Block Master Read
          command sequence.
        - ``DEVICEDESCSLAVEREAd`` specifies triggering on the Device Descriptor Block Slave Read
          command sequence.
        - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
        - ``EXTREGWRIte`` specifies triggering on the Extended Register Write command sequence.
        - ``LONGEXTREGREAd`` specifies triggering on the Extended Register Read Long command
          sequence.
        - ``LONGEXTREGWRIte`` specifies triggering on the Extended Register Write Long command
          sequence.
        - ``REG0WRIte`` specifies triggering on the Register 0 Write command sequence.
        - ``AUTHenticate`` specifies triggering on the Authentication command sequence.
        - ``TRANSferbusownership`` specifies triggering on the Transfer Bus Ownership (TBO) command
          sequence.
        - ``PARItyerror`` specifies triggering on the parity errors.
    """  # noqa: E501


class TriggerABusBItemSpmi(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPMI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:SPMI:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa`` command tree.
        - ``.masteraddress``: The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess`` command tree.
        - ``.noresponse``: The ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse`` command.
        - ``.registeraddress``: The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.
        - ``.slaveaddress``: The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemSpmiCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemSpmiData(device, f"{self._cmd_syntax}:DATa")
        self._masteraddress = TriggerABusBItemSpmiMasteraddress(
            device, f"{self._cmd_syntax}:MASTERADDRess"
        )
        self._noresponse = TriggerABusBItemSpmiNoresponse(device, f"{self._cmd_syntax}:NORESPonse")
        self._registeraddress = TriggerABusBItemSpmiRegisteraddress(
            device, f"{self._cmd_syntax}:REGISTERADDRess"
        )
        self._slaveaddress = TriggerABusBItemSpmiSlaveaddress(
            device, f"{self._cmd_syntax}:SLAVEADDRess"
        )

    @property
    def condition(self) -> TriggerABusBItemSpmiCondition:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified SPMI bus.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
            - TRIGger:A:BUS:B<x>:SPMI:CONDition?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``SSC`` specifies triggering on the Sequence Start Condition.
            - ``RESet`` specifies triggering on the Reset command sequence.
            - ``SLEep`` specifies triggering on the Sleep command sequnce.
            - ``SHUTdown`` specifies triggering on the Shutdown command sequence.
            - ``WAKeup`` specifies triggering on the Wakeup command sequence.
            - ``MASTERREAd`` specifies triggering on the Master Read command sequence.
            - ``MASTERWRIte`` specifies triggering on the Master Write command sequence.
            - ``REGREAd`` specifies triggering on the Register Read command sequence.
            - ``REGWRIte`` specifies triggering on the Register Write command sequence.
            - ``DEVICEDESCMASTERREAd`` specifies triggering on the Device Descriptor Block Master
              Read command sequence.
            - ``DEVICEDESCSLAVEREAd`` specifies triggering on the Device Descriptor Block Slave Read
              command sequence.
            - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
            - ``EXTREGWRIte`` specifies triggering on the Extended Register Write command sequence.
            - ``LONGEXTREGREAd`` specifies triggering on the Extended Register Read Long command
              sequence.
            - ``LONGEXTREGWRIte`` specifies triggering on the Extended Register Write Long command
              sequence.
            - ``REG0WRIte`` specifies triggering on the Register 0 Write command sequence.
            - ``AUTHenticate`` specifies triggering on the Authentication command sequence.
            - ``TRANSferbusownership`` specifies triggering on the Transfer Bus Ownership (TBO)
              command sequence.
            - ``PARItyerror`` specifies triggering on the parity errors.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemSpmiData:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.size``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa:VALue`` command.
        """
        return self._data

    @property
    def masteraddress(self) -> TriggerABusBItemSpmiMasteraddress:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess:VALue`` command.
        """
        return self._masteraddress

    @property
    def noresponse(self) -> TriggerABusBItemSpmiNoresponse:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse`` command.

        **Description:**
            - This command sets or queries whether or not to trigger on No Response frames.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPMI:NORESPonse <Qstring>
            - TRIGger:A:BUS:B<x>:SPMI:NORESPonse?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is either TRUE or FALSE boolean value.
        """
        return self._noresponse

    @property
    def registeraddress(self) -> TriggerABusBItemSpmiRegisteraddress:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess:VALue`` command.
        """
        return self._registeraddress

    @property
    def slaveaddress(self) -> TriggerABusBItemSpmiSlaveaddress:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess:VALue`` command.
        """
        return self._slaveaddress


class TriggerABusBItemSpiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SPI triggering if the trigger
          condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPI:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:SPI:DATa:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<QString>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSpiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string to be used for a SPI trigger if the
          trigger condition is DATa. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerABusBItemSpiData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.size``: The ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerABusBItemSpiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemSpiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerABusBItemSpiDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string to be used for a SPI trigger if
              the trigger condition is DATa. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:SPI:DATa:SIZe?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemSpiDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SPI triggering if the trigger
              condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPI:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:SPI:DATa:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<QString>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary format.
        """
        return self._value


class TriggerABusBItemSpiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPI:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for a SPI trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SPI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
        - TRIGger:A:BUS:B<x>:SPI:CONDition?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``SS`` specifies the Slave Selection condition.
        - ``STARTofframe`` is applicable when ``BUS:B<x>:SPI:FRAMING`` is set to IDLEtime. When the
          trigger condition is set to STARTofframe, the instrument triggers on the first SPI clock
          after an idle time when there are no clocks.
        - ``DATa`` sets the trigger condition to Master-In Slave-Out and Master-Out Slave-In.
    """


class TriggerABusBItemSpi(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SPI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:SPI:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:SPI:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemSpiCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemSpiData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerABusBItemSpiCondition:
        """Return the ``TRIGger:A:BUS:B<x>:SPI:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for a SPI trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SPI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SPI:CONDition {SS|STARTofframe|DATa}
            - TRIGger:A:BUS:B<x>:SPI:CONDition?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``SS`` specifies the Slave Selection condition.
            - ``STARTofframe`` is applicable when ``BUS:B<x>:SPI:FRAMING`` is set to IDLEtime. When
              the trigger condition is set to STARTofframe, the instrument triggers on the first SPI
              clock after an idle time when there are no clocks.
            - ``DATa`` sets the trigger condition to Master-In Slave-Out and Master-Out Slave-In.
        """
        return self._condition

    @property
    def data(self) -> TriggerABusBItemSpiData:
        """Return the ``TRIGger:A:BUS:B<x>:SPI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.size``: The ``TRIGger:A:BUS:B<x>:SPI:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SPI:DATa:VALue`` command.
        """
        return self._data


class TriggerABusBItemSentSlowIdentifierValue(SCPICmdWrite):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the qualifier to use when triggering on SENT slow packet bus
          data.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary identifier value.
    """


class TriggerABusBItemSentSlowIdentifier(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSentSlowIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSentSlowIdentifierValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the qualifier to use when triggering on SENT slow packet
              bus data.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue <Qstring>

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary identifier value.
        """
        return self._value


class TriggerABusBItemSentSlowDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.

    **Description:**
        - This command sets or queries the binary slow channel value to use when triggering on a
          SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``<Qstring>`` is the binary slow channel data value.
    """


class TriggerABusBItemSentSlowDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.

    **Description:**
        - This command sets or queries the binary identifier value to use when triggering on a SENT
          bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerABusBItemSentSlowDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary Slow channel data value to use when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSentSlowData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemSentSlowDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemSentSlowDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemSentSlowDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemSentSlowDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary Slow channel data value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemSentSlowDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.

        **Description:**
            - This command sets or queries the binary identifier value to use when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemSentSlowDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.

        **Description:**
            - This command sets or queries the binary slow channel value to use when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``<Qstring>`` is the binary slow channel data value.
        """
        return self._value


class TriggerABusBItemSentSlow(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:SLOW`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.data``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA`` command tree.
        - ``.identifier``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = TriggerABusBItemSentSlowData(device, f"{self._cmd_syntax}:DATA")
        self._identifier = TriggerABusBItemSentSlowIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def data(self) -> TriggerABusBItemSentSlowData:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA:VALue`` command.
        """
        return self._data

    @property
    def identifier(self) -> TriggerABusBItemSentSlowIdentifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerABusBItemSentPauseQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT pause
          pulses.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
        - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?

    **Info:**
        - ``B<x>`` is the bus identifier number.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``OUTrange`` sets the qualifier to out of range.
        - ``UNEQual`` sets the qualifier as Unequal.
    """  # noqa: E501


class TriggerABusBItemSentPause(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:PAUSE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:PAUSE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:PAUSE?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._qualifier = TriggerABusBItemSentPauseQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )

    @property
    def qualifier(self) -> TriggerABusBItemSentPauseQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT pause
              pulses.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|Inrange|OUTrange}
            - TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier?

        **Info:**
            - ``B<x>`` is the bus identifier number.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``OUTrange`` sets the qualifier to out of range.
            - ``UNEQual`` sets the qualifier as Unequal.
        """  # noqa: E501
        return self._qualifier


class TriggerABusBItemSentFastStatusValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue`` command.

    **Description:**
        - This command sets or queries the binary status value to be used when triggering on a SENT
          bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the binary status value on which to trigger.
    """


class TriggerABusBItemSentFastStatus(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSentFastStatusValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSentFastStatusValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue`` command.

        **Description:**
            - This command sets or queries the binary status value to be used when triggering on a
              SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the binary status value on which to trigger.
        """
        return self._value


class TriggerABusBItemSentFastInvertnibbleValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message inverted nibble value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 inverted nibble binary value on which to trigger.
    """


class TriggerABusBItemSentFastInvertnibble(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemSentFastInvertnibbleValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemSentFastInvertnibbleValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message inverted nibble value to be used
              when triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 inverted nibble binary value on which to trigger.
        """
        return self._value


class TriggerABusBItemSentFastCounterValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message counter value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 fast message counter binary value on which to trigger.
    """


class TriggerABusBItemSentFastCounterQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for the secure format counter.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerABusBItemSentFastCounterHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast message counter value to be used when
          triggering on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSentFastCounter(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemSentFastCounterHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerABusBItemSentFastCounterQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemSentFastCounterValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemSentFastCounterHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast message counter value to be used
              when triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemSentFastCounterQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for the secure format counter.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemSentFastCounterValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message counter value to be used when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 fast message counter binary value on which to
              trigger.
        """
        return self._value


class TriggerABusBItemSentFastChan2bValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 2 value to be used when triggering on
          a SENT bus signal. The trigger condition must be set to FAST.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 2 binary value on which to trigger.
    """


class TriggerABusBItemSentFastChan2bQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for device channel 2.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerABusBItemSentFastChan2bHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 2 value to use when triggering
          on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSentFastChan2b(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemSentFastChan2bHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemSentFastChan2bQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemSentFastChan2bValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemSentFastChan2bHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 2 value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemSentFastChan2bQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for device channel 2.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemSentFastChan2bValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 2 value to be used when
              triggering on a SENT bus signal. The trigger condition must be set to FAST.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 2 binary value on which to trigger.
        """
        return self._value


class TriggerABusBItemSentFastChan1aValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 1 value to be used when triggering on
          a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``<Qstring>`` is the Fast Channel 1 value on which to trigger.
    """


class TriggerABusBItemSentFastChan1aQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on SENT fast packet
          bus data for device channel 1.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?

    **Info:**
        - ``B<x>`` is the number of the bus.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``UNEQual`` sets the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class TriggerABusBItemSentFastChan1aHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 1 value to use when triggering
          on a SENT bus signal.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?

    **Info:**
        - ``B<x>`` is the bus identifier number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemSentFastChan1a(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A?``
          query and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemSentFastChan1aHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemSentFastChan1aQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemSentFastChan1aValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemSentFastChan1aHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 1 value to use when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue?

        **Info:**
            - ``B<x>`` is the bus identifier number.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemSentFastChan1aQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on SENT fast
              packet bus data for device channel 1.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier?

        **Info:**
            - ``B<x>`` is the number of the bus.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``UNEQual`` sets the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemSentFastChan1aValue:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 1 value to be used when
              triggering on a SENT bus signal.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue <Qstring>
            - TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``<Qstring>`` is the Fast Channel 1 value on which to trigger.
        """
        return self._value


class TriggerABusBItemSentFast(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:FAST`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the bus identifier number.

    Properties:
        - ``.chan1a``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.
        - ``.chan2b``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.
        - ``.counter``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer`` command tree.
        - ``.invertnibble``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.
        - ``.status``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._chan1a = TriggerABusBItemSentFastChan1a(device, f"{self._cmd_syntax}:CHAN1A")
        self._chan2b = TriggerABusBItemSentFastChan2b(device, f"{self._cmd_syntax}:CHAN2B")
        self._counter = TriggerABusBItemSentFastCounter(device, f"{self._cmd_syntax}:COUNTer")
        self._invertnibble = TriggerABusBItemSentFastInvertnibble(
            device, f"{self._cmd_syntax}:INVERTNIBble"
        )
        self._status = TriggerABusBItemSentFastStatus(device, f"{self._cmd_syntax}:STATus")

    @property
    def chan1a(self) -> TriggerABusBItemSentFastChan1a:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A:VALue`` command.
        """
        return self._chan1a

    @property
    def chan2b(self) -> TriggerABusBItemSentFastChan2b:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B:VALue`` command.
        """
        return self._chan2b

    @property
    def counter(self) -> TriggerABusBItemSentFastCounter:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer:VALue`` command.
        """
        return self._counter

    @property
    def invertnibble(self) -> TriggerABusBItemSentFastInvertnibble:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble:VALue`` command.
        """
        return self._invertnibble

    @property
    def status(self) -> TriggerABusBItemSentFastStatus:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus:VALue`` command.
        """
        return self._status


class TriggerABusBItemSentErrtypeCrc(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC`` command.

    **Description:**
        - This command sets or queries the CRC error type to be used when triggering on SENT data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
        - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``FAST`` specifies triggering on CRC errors in only the Fast Channel.
        - ``SLOW`` specifies triggering on CRC errors in only the slow channel.
    """


class TriggerABusBItemSentErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:ERRType`` command.

    **Description:**
        - This command sets or queries the error type to be used when triggering on SENT data.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:ERRType CRC
        - TRIGger:A:BUS:B<x>:SENT:ERRType?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``CRC`` specifies triggering on CRC errors.

    Properties:
        - ``.crc``: The ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crc = TriggerABusBItemSentErrtypeCrc(device, f"{self._cmd_syntax}:CRC")

    @property
    def crc(self) -> TriggerABusBItemSentErrtypeCrc:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC`` command.

        **Description:**
            - This command sets or queries the CRC error type to be used when triggering on SENT
              data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC {FAST|SLOW}
            - TRIGger:A:BUS:B<x>:SENT:ERRType:CRC?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``FAST`` specifies triggering on CRC errors in only the Fast Channel.
            - ``SLOW`` specifies triggering on CRC errors in only the slow channel.
        """
        return self._crc


class TriggerABusBItemSentCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a SENT bus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:SENT:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
        - TRIGger:A:BUS:B<x>:SENT:CONDition?

    **Info:**
        - ``B<x>`` is the number of the bus waveform.
        - ``START`` sets triggering on start of packet.
        - ``FAST`` sets triggering on fast channel packets.
        - ``SLOW`` sets triggering on slow channel packets.
        - ``ERRor`` sets triggering on errors.
    """


class TriggerABusBItemSent(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:SENT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    **Info:**
        - ``B<x>`` is the number of the bus waveform.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:SENT:CONDition`` command.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:SENT:ERRType`` command.
        - ``.fast``: The ``TRIGger:A:BUS:B<x>:SENT:FAST`` command tree.
        - ``.pause``: The ``TRIGger:A:BUS:B<x>:SENT:PAUSE`` command tree.
        - ``.slow``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemSentCondition(device, f"{self._cmd_syntax}:CONDition")
        self._errtype = TriggerABusBItemSentErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._fast = TriggerABusBItemSentFast(device, f"{self._cmd_syntax}:FAST")
        self._pause = TriggerABusBItemSentPause(device, f"{self._cmd_syntax}:PAUSE")
        self._slow = TriggerABusBItemSentSlow(device, f"{self._cmd_syntax}:SLOW")

    @property
    def condition(self) -> TriggerABusBItemSentCondition:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a SENT bus.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:CONDition {START|FAST|SLOW|ERRor}
            - TRIGger:A:BUS:B<x>:SENT:CONDition?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``START`` sets triggering on start of packet.
            - ``FAST`` sets triggering on fast channel packets.
            - ``SLOW`` sets triggering on slow channel packets.
            - ``ERRor`` sets triggering on errors.
        """
        return self._condition

    @property
    def errtype(self) -> TriggerABusBItemSentErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:ERRType`` command.

        **Description:**
            - This command sets or queries the error type to be used when triggering on SENT data.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:SENT:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:SENT:ERRType CRC
            - TRIGger:A:BUS:B<x>:SENT:ERRType?

        **Info:**
            - ``B<x>`` is the number of the bus waveform.
            - ``CRC`` specifies triggering on CRC errors.

        Sub-properties:
            - ``.crc``: The ``TRIGger:A:BUS:B<x>:SENT:ERRType:CRC`` command.
        """
        return self._errtype

    @property
    def fast(self) -> TriggerABusBItemSentFast:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:FAST`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:FAST?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.chan1a``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN1A`` command tree.
            - ``.chan2b``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:CHAN2B`` command tree.
            - ``.counter``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:COUNTer`` command tree.
            - ``.invertnibble``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:INVERTNIBble`` command tree.
            - ``.status``: The ``TRIGger:A:BUS:B<x>:SENT:FAST:STATus`` command tree.
        """
        return self._fast

    @property
    def pause(self) -> TriggerABusBItemSentPause:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:PAUSE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:PAUSE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:PAUSE?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:SENT:PAUSE:QUALifier`` command.
        """
        return self._pause

    @property
    def slow(self) -> TriggerABusBItemSentSlow:
        """Return the ``TRIGger:A:BUS:B<x>:SENT:SLOW`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT:SLOW?``
              query and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.data``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:DATA`` command tree.
            - ``.identifier``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW:IDentifier`` command tree.
        """
        return self._slow


class TriggerABusBItemRs232cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data address string used for the RS-232 bus trigger when
          the trigger condition is set to Data. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the address value. The argument is a string of 0, 1, or X
          representing a binary number.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemRs232cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes to be used for an
          RS-232C trigger when the trigger condition is Data. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe <NR3>
        - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the data size in bytes.
    """


class TriggerABusBItemRs232cData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:RS232C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = TriggerABusBItemRs232cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemRs232cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> TriggerABusBItemRs232cDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes to be used for an
              RS-232C trigger when the trigger condition is Data. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe <NR3>
            - TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the data size in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemRs232cDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data address string used for the RS-232 bus trigger
              when the trigger condition is set to Data. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:RS232C:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the address value. The argument is a string of 0, 1, or X
              representing a binary number.
        """
        return self._value


class TriggerABusBItemRs232cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:RS232C:CONDition`` command.

    **Description:**
        - This command specifies the condition for an RS-232C trigger, where the bus number is
          specified by< >x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:RS232C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
        - TRIGger:A:BUS:B<x>:RS232C:CONDition?

    **Info:**
        - ``STARt`` sets the Trigger on condition to Start.
        - ``EOp`` sets the Trigger on condition to End of Packet.
        - ``DATa`` sets the Trigger on condition to Data.
        - ``PARItyerror`` sets the Trigger on condition to Parity Error.
    """


class TriggerABusBItemRs232c(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:RS232C`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:RS232C:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemRs232cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemRs232cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerABusBItemRs232cCondition:
        """Return the ``TRIGger:A:BUS:B<x>:RS232C:CONDition`` command.

        **Description:**
            - This command specifies the condition for an RS-232C trigger, where the bus number is
              specified by< >x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:RS232C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:RS232C:CONDition {STARt|EOp|DATa|PARItyerror}
            - TRIGger:A:BUS:B<x>:RS232C:CONDition?

        **Info:**
            - ``STARt`` sets the Trigger on condition to Start.
            - ``EOp`` sets the Trigger on condition to End of Packet.
            - ``DATa`` sets the Trigger on condition to Data.
            - ``PARItyerror`` sets the Trigger on condition to Parity Error.
        """
        return self._condition

    @property
    def data(self) -> TriggerABusBItemRs232cData:
        """Return the ``TRIGger:A:BUS:B<x>:RS232C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa:VALue`` command.
        """
        return self._data


class TriggerABusBItemParallelDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for a Parallel Bus trigger. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary data string used for a Parallel Bus trigger.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemParallelData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:PARallel:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:PARallel:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:PARallel:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemParallelDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemParallelDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for a Parallel Bus trigger. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:PARallel:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary data string used for a Parallel Bus trigger.
        """
        return self._value


class TriggerABusBItemParallel(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:PARallel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:PARallel?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:PARallel?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.data``: The ``TRIGger:A:BUS:B<x>:PARallel:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = TriggerABusBItemParallelData(device, f"{self._cmd_syntax}:DATa")

    @property
    def data(self) -> TriggerABusBItemParallelData:
        """Return the ``TRIGger:A:BUS:B<x>:PARallel:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:PARallel:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:PARallel:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:PARallel:DATa:VALue`` command.
        """
        return self._data


class TriggerABusBItemMil1553bTimeQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?

    **Info:**
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """


class TriggerABusBItemMil1553bTimeMorelimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.

    **Description:**
        - This command sets or queries the upper limit to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the upper bound for measuring remote
          terminal response time (RT) or the inter-message gap (IMG) in seconds.
    """


class TriggerABusBItemMil1553bTimeLesslimit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.

    **Description:**
        - This command sets or queries the lower limit to be used when triggering on response time /
          inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
          trigger condition must be set to TIMe.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
        - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies the lower bound for measuring remote
          terminal response time (RT) or the inter-message gap (IMG) in seconds.
    """


class TriggerABusBItemMil1553bTime(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.lesslimit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.
        - ``.morelimit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lesslimit = TriggerABusBItemMil1553bTimeLesslimit(
            device, f"{self._cmd_syntax}:LESSLimit"
        )
        self._morelimit = TriggerABusBItemMil1553bTimeMorelimit(
            device, f"{self._cmd_syntax}:MORELimit"
        )
        self._qualifier = TriggerABusBItemMil1553bTimeQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )

    @property
    def lesslimit(self) -> TriggerABusBItemMil1553bTimeLesslimit:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.

        **Description:**
            - This command sets or queries the lower limit to be used when triggering on response
              time / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by
              x. The trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit <NR3>
            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the lower bound for measuring
              remote terminal response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._lesslimit

    @property
    def morelimit(self) -> TriggerABusBItemMil1553bTimeMorelimit:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.

        **Description:**
            - This command sets or queries the upper limit to be used when triggering on response
              time / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by
              x. The trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit <NR3>
            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies the upper bound for measuring
              remote terminal response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._morelimit

    @property
    def qualifier(self) -> TriggerABusBItemMil1553bTimeQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on response time
              / inter message gap time for a MIL-STD-1553 bus. The bus number is specified by x. The
              trigger condition must be set to TIMe.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier?

        **Info:**
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """
        return self._qualifier


class TriggerABusBItemMil1553bStatusParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity`` command.

    **Description:**
        - This command sets or queries the value of the status word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?

    **Info:**
        - ``ONE`` filters status words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the parity bit.
    """


class TriggerABusBItemMil1553bStatusBitTf(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.

    **Description:**
        - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?

    **Info:**
        - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the TF bit.
    """


class TriggerABusBItemMil1553bStatusBitSubsf(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.

    **Description:**
        - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?

    **Info:**
        - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SUBSF bit.
    """


class TriggerABusBItemMil1553bStatusBitSrq(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.

    **Description:**
        - This command sets or queries the value of the status word service request bit (SRQ bit,
          bit 11) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
          specified by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?

    **Info:**
        - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SRQ bit.
    """


class TriggerABusBItemMil1553bStatusBitMe(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.

    **Description:**
        - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?

    **Info:**
        - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the ME bit.
    """


class TriggerABusBItemMil1553bStatusBitInstr(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.

    **Description:**
        - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10) in a
          status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
          trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?

    **Info:**
        - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the INSTR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the INSTR bit.
    """


class TriggerABusBItemMil1553bStatusBitDbca(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.

    **Description:**
        - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
          bit, bit 18) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
          specified by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?

    **Info:**
        - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the DBCA bit.
    """


class TriggerABusBItemMil1553bStatusBitBusy(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.

    **Description:**
        - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status word
          for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
          condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?

    **Info:**
        - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BUSY bit.
    """


class TriggerABusBItemMil1553bStatusBitBcr(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.

    **Description:**
        - This command sets or queries the value of the broadcast command received bit (BCR bit, bit
          15) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
          by x. The trigger condition must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?

    **Info:**
        - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BCR bit.
    """


#  pylint: disable=too-many-instance-attributes
class TriggerABusBItemMil1553bStatusBit(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.bcr``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.
        - ``.busy``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.
        - ``.dbca``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.
        - ``.instr``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.
        - ``.me``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.
        - ``.srq``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.
        - ``.subsf``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.
        - ``.tf``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._bcr = TriggerABusBItemMil1553bStatusBitBcr(device, f"{self._cmd_syntax}:BCR")
        self._busy = TriggerABusBItemMil1553bStatusBitBusy(device, f"{self._cmd_syntax}:BUSY")
        self._dbca = TriggerABusBItemMil1553bStatusBitDbca(device, f"{self._cmd_syntax}:DBCA")
        self._instr = TriggerABusBItemMil1553bStatusBitInstr(device, f"{self._cmd_syntax}:INSTR")
        self._me = TriggerABusBItemMil1553bStatusBitMe(device, f"{self._cmd_syntax}:ME")
        self._srq = TriggerABusBItemMil1553bStatusBitSrq(device, f"{self._cmd_syntax}:SRQ")
        self._subsf = TriggerABusBItemMil1553bStatusBitSubsf(device, f"{self._cmd_syntax}:SUBSF")
        self._tf = TriggerABusBItemMil1553bStatusBitTf(device, f"{self._cmd_syntax}:TF")

    @property
    def bcr(self) -> TriggerABusBItemMil1553bStatusBitBcr:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.

        **Description:**
            - This command sets or queries the value of the broadcast command received bit (BCR bit,
              bit 15) in a status word for a MIL-STD-1553 bus to triggering on. The bus number is
              specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR?

        **Info:**
            - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BCR bit.
        """
        return self._bcr

    @property
    def busy(self) -> TriggerABusBItemMil1553bStatusBitBusy:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.

        **Description:**
            - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status
              word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x. The
              trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY?

        **Info:**
            - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BUSY bit.
        """
        return self._busy

    @property
    def dbca(self) -> TriggerABusBItemMil1553bStatusBitDbca:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.

        **Description:**
            - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
              bit, bit 18) in a status word for a MIL-STD-1553 bus to triggering on. The bus number
              is specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA?

        **Info:**
            - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the DBCA bit.
        """
        return self._dbca

    @property
    def instr(self) -> TriggerABusBItemMil1553bStatusBitInstr:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.

        **Description:**
            - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10)
              in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
              by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR?

        **Info:**
            - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the INSTR bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the INSTR bit.
        """
        return self._instr

    @property
    def me(self) -> TriggerABusBItemMil1553bStatusBitMe:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.

        **Description:**
            - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
              status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x.
              The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME?

        **Info:**
            - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the ME bit.
        """
        return self._me

    @property
    def srq(self) -> TriggerABusBItemMil1553bStatusBitSrq:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.

        **Description:**
            - This command sets or queries the value of the status word service request bit (SRQ
              bit, bit 11) in a status word for a MIL-STD-1553 bus to triggering on. The bus number
              is specified by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ?

        **Info:**
            - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the SRQ bit.
        """
        return self._srq

    @property
    def subsf(self) -> TriggerABusBItemMil1553bStatusBitSubsf:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.

        **Description:**
            - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17)
              in a status word for a MIL-STD-1553 bus to triggering on. The bus number is specified
              by x. The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF?

        **Info:**
            - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the SUBSF bit.
        """
        return self._subsf

    @property
    def tf(self) -> TriggerABusBItemMil1553bStatusBitTf:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.

        **Description:**
            - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
              status word for a MIL-STD-1553 bus to triggering on. The bus number is specified by x.
              The trigger condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF?

        **Info:**
            - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the TF bit.
        """
        return self._tf


class TriggerABusBItemMil1553bStatusAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on status word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bStatusAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on status word
          addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition
          must be set to STATus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemMil1553bStatusAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on status word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          STATus and the address qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bStatusAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemMil1553bStatusAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerABusBItemMil1553bStatusAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemMil1553bStatusAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> TriggerABusBItemMil1553bStatusAddressHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on status word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to STATus and the address qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemMil1553bStatusAddressQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on status word
              addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger
              condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemMil1553bStatusAddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on status word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._value


class TriggerABusBItemMil1553bStatus(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.
        - ``.bit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.
        - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemMil1553bStatusAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._bit = TriggerABusBItemMil1553bStatusBit(device, f"{self._cmd_syntax}:BIT")
        self._parity = TriggerABusBItemMil1553bStatusParity(device, f"{self._cmd_syntax}:PARity")

    @property
    def address(self) -> TriggerABusBItemMil1553bStatusAddress:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def bit(self) -> TriggerABusBItemMil1553bStatusBit:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.bcr``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BCR`` command.
            - ``.busy``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:BUSY`` command.
            - ``.dbca``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:DBCA`` command.
            - ``.instr``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:INSTR`` command.
            - ``.me``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:ME`` command.
            - ``.srq``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SRQ`` command.
            - ``.subsf``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:SUBSF`` command.
            - ``.tf``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT:TF`` command.
        """
        return self._bit

    @property
    def parity(self) -> TriggerABusBItemMil1553bStatusParity:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity`` command.

        **Description:**
            - This command sets or queries the value of the status word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to STATus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity?

        **Info:**
            - ``ONE`` filters status words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters status words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the parity bit.
        """
        return self._parity


class TriggerABusBItemMil1553bErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the type of error condition for a MIL-STD-1553 bus to trigger
          on. The bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
        - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?

    **Info:**
        - ``PARity`` specifies triggering on an incorrectly calculated parity bit in any word.
        - ``SYNC`` specifies triggering on any sync pulse that does not transition in the middle of
          the pulse as required.
        - ``DATA`` specifies triggering on any non-contiguous data words.
    """


class TriggerABusBItemMil1553bDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the value when triggering on data words for a MIL-STD-1553
          bus. The bus number is specified by x. The trigger condition must be set to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bDataParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity`` command.

    **Description:**
        - This command sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?

    **Info:**
        - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of data words on the parity bit.
    """


class TriggerABusBItemMil1553bData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._parity = TriggerABusBItemMil1553bDataParity(device, f"{self._cmd_syntax}:PARity")
        self._value = TriggerABusBItemMil1553bDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def parity(self) -> TriggerABusBItemMil1553bDataParity:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity?

        **Info:**
            - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
            - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
            - ``NOCARE`` disables filtering of data words on the parity bit.
        """
        return self._parity

    @property
    def value(self) -> TriggerABusBItemMil1553bDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the value when triggering on data words for a
              MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set
              to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value.
        """
        return self._value


class TriggerABusBItemMil1553bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition`` command.

    **Description:**
        - This command sets or queries the field or condition for a MIL-STD-1553 bus to trigger on.
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
        - TRIGger:A:BUS:B<x>:MIL1553B:CONDition?

    **Info:**
        - ``SYNC`` specifies triggering on the sync pulse of any word.
        - ``COMMAND`` specifies triggering on a matching command word.
        - ``STATus`` specifies triggering on a matching status word.
        - ``DATA`` specifies triggering on a matching data word.
        - ``TIMe`` specifies triggering on the response time or intermessage gap between words.
        - ``ERRor`` specifies triggering on a specified error condition.
    """


class TriggerABusBItemMil1553bCommandTrbit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.

    **Description:**
        - This command sets or queries the value of the command word Transmit / Receive bit for a
          MIL-STD-1553 bus to trigger on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?

    **Info:**
        - ``RX`` filters command words to only match those that are receive packets.
        - ``TX`` filters command words to only match those that are transmit packets.
        - ``X`` disables filtering of command words on the R/T bit.
    """


class TriggerABusBItemMil1553bCommandSubaddress(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.

    **Description:**
        - This command sets or queries the value of the command word subaddress field for a
          MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?

    **Info:**
        - ``<QString>`` is the subaddress value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bCommandParity(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.

    **Description:**
        - This command sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to triggering on. The bus number is specified by x. The trigger condition must be set
          to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?

    **Info:**
        - ``ONE`` filters command words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters command words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of command words on the parity bit.
    """


class TriggerABusBItemMil1553bCommandCount(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.

    **Description:**
        - This command sets or queries the value of the command word 'word count' field for a
          MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?

    **Info:**
        - ``<QString>`` is the word count value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bCommandAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on command word addresses for a
          MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          COMMAND

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bCommandAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on command word
          addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition
          must be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemMil1553bCommandAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on command word addresses for
          a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must be set to
          COMMAND, and the address qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemMil1553bCommandAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemMil1553bCommandAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerABusBItemMil1553bCommandAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemMil1553bCommandAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> TriggerABusBItemMil1553bCommandAddressHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on command word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to COMMAND, and the address qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemMil1553bCommandAddressQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on command word
              addresses for a MIL-STD-1553 bus. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemMil1553bCommandAddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on command word addresses
              for a MIL-STD-1553 bus. The bus number is specified by x. The trigger condition must
              be set to COMMAND

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._value


class TriggerABusBItemMil1553bCommand(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.
        - ``.count``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.
        - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.
        - ``.subaddress``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.
        - ``.trbit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemMil1553bCommandAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._count = TriggerABusBItemMil1553bCommandCount(device, f"{self._cmd_syntax}:COUNt")
        self._parity = TriggerABusBItemMil1553bCommandParity(device, f"{self._cmd_syntax}:PARity")
        self._subaddress = TriggerABusBItemMil1553bCommandSubaddress(
            device, f"{self._cmd_syntax}:SUBADdress"
        )
        self._trbit = TriggerABusBItemMil1553bCommandTrbit(device, f"{self._cmd_syntax}:TRBit")

    @property
    def address(self) -> TriggerABusBItemMil1553bCommandAddress:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def count(self) -> TriggerABusBItemMil1553bCommandCount:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.

        **Description:**
            - This command sets or queries the value of the command word 'word count' field for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt?

        **Info:**
            - ``<QString>`` is the word count value.
        """
        return self._count

    @property
    def parity(self) -> TriggerABusBItemMil1553bCommandParity:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity?

        **Info:**
            - ``ONE`` filters command words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters command words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of command words on the parity bit.
        """
        return self._parity

    @property
    def subaddress(self) -> TriggerABusBItemMil1553bCommandSubaddress:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.

        **Description:**
            - This command sets or queries the value of the command word subaddress field for a
              MIL-STD-1553 bus to triggering on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress <QString>
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress?

        **Info:**
            - ``<QString>`` is the subaddress value.
        """
        return self._subaddress

    @property
    def trbit(self) -> TriggerABusBItemMil1553bCommandTrbit:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.

        **Description:**
            - This command sets or queries the value of the command word Transmit / Receive bit for
              a MIL-STD-1553 bus to trigger on. The bus number is specified by x. The trigger
              condition must be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit {RX|TX|X}
            - TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit?

        **Info:**
            - ``RX`` filters command words to only match those that are receive packets.
            - ``TX`` filters command words to only match those that are transmit packets.
            - ``X`` disables filtering of command words on the R/T bit.
        """
        return self._trbit


class TriggerABusBItemMil1553b(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:MIL1553B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.command``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND`` command tree.
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe`` command.
        - ``.status``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus`` command tree.
        - ``.time``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = TriggerABusBItemMil1553bCommand(device, f"{self._cmd_syntax}:COMMAND")
        self._condition = TriggerABusBItemMil1553bCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemMil1553bData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerABusBItemMil1553bErrtype(device, f"{self._cmd_syntax}:ERRTYPe")
        self._status = TriggerABusBItemMil1553bStatus(device, f"{self._cmd_syntax}:STATus")
        self._time = TriggerABusBItemMil1553bTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def command(self) -> TriggerABusBItemMil1553bCommand:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:ADDRess`` command tree.
            - ``.count``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:COUNt`` command.
            - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:PARity`` command.
            - ``.subaddress``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:SUBADdress`` command.
            - ``.trbit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND:TRBit`` command.
        """
        return self._command

    @property
    def condition(self) -> TriggerABusBItemMil1553bCondition:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition`` command.

        **Description:**
            - This command sets or queries the field or condition for a MIL-STD-1553 bus to trigger
              on. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA |TIMe|ERRor}
            - TRIGger:A:BUS:B<x>:MIL1553B:CONDition?

        **Info:**
            - ``SYNC`` specifies triggering on the sync pulse of any word.
            - ``COMMAND`` specifies triggering on a matching command word.
            - ``STATus`` specifies triggering on a matching status word.
            - ``DATA`` specifies triggering on a matching data word.
            - ``TIMe`` specifies triggering on the response time or intermessage gap between words.
            - ``ERRor`` specifies triggering on a specified error condition.
        """
        return self._condition

    @property
    def data(self) -> TriggerABusBItemMil1553bData:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:PARity`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerABusBItemMil1553bErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe`` command.

        **Description:**
            - This command sets or queries the type of error condition for a MIL-STD-1553 bus to
              trigger on. The bus number is specified by x. The trigger condition must be set to
              ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe {PARity|SYNC|DATA}
            - TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe?

        **Info:**
            - ``PARity`` specifies triggering on an incorrectly calculated parity bit in any word.
            - ``SYNC`` specifies triggering on any sync pulse that does not transition in the middle
              of the pulse as required.
            - ``DATA`` specifies triggering on any non-contiguous data words.
        """
        return self._errtype

    @property
    def status(self) -> TriggerABusBItemMil1553bStatus:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:STATus?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:STATus?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:ADDRess`` command tree.
            - ``.bit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:BIT`` command tree.
            - ``.parity``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus:PARity`` command.
        """
        return self._status

    @property
    def time(self) -> TriggerABusBItemMil1553bTime:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.lesslimit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:LESSLimit`` command.
            - ``.morelimit``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:MORELimit`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe:QUALifier`` command.
        """
        return self._time


class TriggerABusBItemLinIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for LIN bus trigger if the trigger
          condition is ID or IDANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue <QString>
        - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` is the binary address string used for LIN trigger if the trigger condition
          is ID or IDANDDATA.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemLinIdentifier(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:IDentifier?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:IDentifier?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemLinIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemLinIdentifierValue:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for LIN bus trigger if the
              trigger condition is ID or IDANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue <QString>
            - TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` is the binary address string used for LIN trigger if the trigger
              condition is ID or IDANDDATA.
        """
        return self._value


class TriggerABusBItemLinErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE`` command.

    **Description:**
        - This command specifies the error type be used for LIN trigger. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
        - TRIGger:A:BUS:B<x>:LIN:ERRTYPE?

    **Info:**
        - ``SYNC`` sets the LIN error type to SYNC.
        - ``PARity`` sets the LIN error type to parity.
        - ``CHecksum`` sets the LIN error type to checksum.
    """


class TriggerABusBItemLinDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string to be used for LIN trigger condition if
          trigger condition is ID or IDANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:LIN:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the LIN trigger data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemLinDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for LIN trigger.
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the size of the data string in bytes.
    """


class TriggerABusBItemLinDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier`` command.

    **Description:**
        - This command specifies the LIN data qualifier. This only applies if the trigger condition
          is IDANDDATA or DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the LIN data qualifier to less than.
        - ``MOREthan`` sets the LIN data qualifier to greater than.
        - ``EQual`` sets the LIN data qualifier to equal.
        - ``UNEQual`` sets the LIN data qualifier to not equal.
        - ``LESSEQual`` sets the LIN data qualifier to less than or equal.
        - ``MOREEQual`` sets the LIN data qualifier to greater than or equal.
        - ``INrange`` sets the LIN data qualifier to in range.
        - ``OUTrange`` sets the LIN data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemLinDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the high data value string used for a LIN bus trigger when the
          trigger condition is DATA or IDANDDATA and the data qualifier is INRANGE or OUTRANGE. The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary data string used for LIN trigger if
          the trigger condition is ID or IDANDDATA.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemLinData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemLinDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemLinDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerABusBItemLinDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemLinDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemLinDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the high data value string used for a LIN bus trigger when the
              trigger condition is DATA or IDANDDATA and the data qualifier is INRANGE or OUTRANGE.
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary data string used for LIN trigger
              if the trigger condition is ID or IDANDDATA.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemLinDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier`` command.

        **Description:**
            - This command specifies the LIN data qualifier. This only applies if the trigger
              condition is IDANDDATA or DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the LIN data qualifier to less than.
            - ``MOREthan`` sets the LIN data qualifier to greater than.
            - ``EQual`` sets the LIN data qualifier to equal.
            - ``UNEQual`` sets the LIN data qualifier to not equal.
            - ``LESSEQual`` sets the LIN data qualifier to less than or equal.
            - ``MOREEQual`` sets the LIN data qualifier to greater than or equal.
            - ``INrange`` sets the LIN data qualifier to in range.
            - ``OUTrange`` sets the LIN data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerABusBItemLinDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for LIN
              trigger. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:LIN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the size of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemLinDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string to be used for LIN trigger condition if
              trigger condition is ID or IDANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:LIN:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the LIN trigger data value.
        """
        return self._value


class TriggerABusBItemLinCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for LIN. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:LIN:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
        - TRIGger:A:BUS:B<x>:LIN:CONDition?

    **Info:**
        - ``SYNCfield`` sets the LIN trigger condition to sync field.
        - ``IDentifier`` sets the LIN trigger condition to identifier.
        - ``DATa`` sets the LIN trigger condition to data.
        - ``IDANDDATA`` sets the LIN trigger condition to id and data.
        - ``WAKEup`` sets the LIN trigger condition to wake up.
        - ``SLEEP`` sets the LIN trigger condition to sleep.
        - ``ERRor`` sets the LIN trigger condition to error.
    """


class TriggerABusBItemLin(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:LIN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:LIN:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:LIN:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE`` command.
        - ``.identifier``: The ``TRIGger:A:BUS:B<x>:LIN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemLinCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemLinData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerABusBItemLinErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._identifier = TriggerABusBItemLinIdentifier(device, f"{self._cmd_syntax}:IDentifier")

    @property
    def condition(self) -> TriggerABusBItemLinCondition:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for LIN. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:CONDition {SYNCfield|IDentifier|DATa|IDANDDATA|WAKEup|SLEEP|ERRor}
            - TRIGger:A:BUS:B<x>:LIN:CONDition?

        **Info:**
            - ``SYNCfield`` sets the LIN trigger condition to sync field.
            - ``IDentifier`` sets the LIN trigger condition to identifier.
            - ``DATa`` sets the LIN trigger condition to data.
            - ``IDANDDATA`` sets the LIN trigger condition to id and data.
            - ``WAKEup`` sets the LIN trigger condition to wake up.
            - ``SLEEP`` sets the LIN trigger condition to sleep.
            - ``ERRor`` sets the LIN trigger condition to error.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemLinData:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:LIN:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerABusBItemLinErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE`` command.

        **Description:**
            - This command specifies the error type be used for LIN trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:LIN:ERRTYPE {SYNC|PARity|CHecksum}
            - TRIGger:A:BUS:B<x>:LIN:ERRTYPE?

        **Info:**
            - ``SYNC`` sets the LIN error type to SYNC.
            - ``PARity`` sets the LIN error type to parity.
            - ``CHecksum`` sets the LIN error type to checksum.
        """
        return self._errtype

    @property
    def identifier(self) -> TriggerABusBItemLinIdentifier:
        """Return the ``TRIGger:A:BUS:B<x>:LIN:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN:IDentifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:LIN:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:LIN:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerABusBItemI3cTbitDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction`` command.

    **Description:**
        - This command specifies the I3C trigger for T-Bit error direction when triggering on error
          type field. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
        - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?

    **Info:**
        - ``READ`` sets the trigger condition to T-bit Parity Error. This is the default value.
        - ``WRITe`` sets the trigger condition to T-bit Slave Error.
    """


class TriggerABusBItemI3cTbit(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:TBIT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerABusBItemI3cTbitDirection(device, f"{self._cmd_syntax}:DIREction")

    @property
    def direction(self) -> TriggerABusBItemI3cTbitDirection:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction`` command.

        **Description:**
            - This command specifies the I3C trigger for T-Bit error direction when triggering on
              error type field. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction {READ|WRITe}
            - TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction?

        **Info:**
            - ``READ`` sets the trigger condition to T-bit Parity Error. This is the default value.
            - ``WRITe`` sets the trigger condition to T-bit Slave Error.
        """
        return self._direction


class TriggerABusBItemI3cSdrDirectpacket(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.

    **Description:**
        - This command sets or queries the I3C trigger for SDR Direct Packets. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
        - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?

    **Info:**
        - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
        - ``DISLave`` sets the trigger condition to Disable Slave.
        - ``ENTasx`` sets the trigger condition to Enter Activity State.
        - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
        - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
        - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
        - ``SEText`` sets the trigger condition to Set Exchange Time.
        - ``SETDya`` sets the trigger condition to Set Dynamic Address.
        - ``SETNdya`` sets the trigger condition to Set New Dynamic Address.
        - ``GETMWrl`` sets the trigger condition to Get Max Write Length.
        - ``GETMRdl`` sets the trigger condition to Get Max Read Length.
        - ``GETPrid`` sets the trigger condition to Get Provisional ID.
        - ``GETBusch`` sets the trigger condition to Get Bus Characteristics.
        - ``GETDevch`` sets the trigger condition to Get Dev Characteristics.
        - ``GETSlave`` sets the trigger condition to Get Slave Current Status.
        - ``ACCM`` sets the trigger condition to Get Accept Mastership.
        - ``SETBrt`` sets the trigger condition to Set Bridge Direct Target.
        - ``MDATASpeed`` sets the trigger condition to Get Max Data Speed.
        - ``HDRCapability`` sets the trigger condition to Get HDR Capability.
        - ``GETXTime`` sets the trigger condition to Get Exchange Time.
    """  # noqa: E501


class TriggerABusBItemI3cSdrBroadcastpacket(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.

    **Description:**
        - This command sets or queries the I3C trigger for SDR broadcast packets. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
        - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?

    **Info:**
        - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
        - ``DISLave`` sets the trigger condition to Disable Slave.
        - ``ENTasx`` sets the trigger condition to Enter Activity State.
        - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
        - ``ENTRDya`` sets the trigger condition to Enter Dynamic Address.
        - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
        - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
        - ``DLSLave`` sets the trigger condition to Define List of Slaves.
        - ``ENTRTSTMode`` sets the trigger condition to Enter Test Mode.
        - ``EXTime`` sets the trigger condition to Set Exchange Time.
        - ``SETaasa`` sets the trigger condition to Set Static As Dynamic Address.
    """  # noqa: E501


class TriggerABusBItemI3cSdr(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:SDR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:SDR?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:SDR?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.broadcastpacket``: The ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.
        - ``.directpacket``: The ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._broadcastpacket = TriggerABusBItemI3cSdrBroadcastpacket(
            device, f"{self._cmd_syntax}:BROADCASTPacket"
        )
        self._directpacket = TriggerABusBItemI3cSdrDirectpacket(
            device, f"{self._cmd_syntax}:DIRECTPacket"
        )

    @property
    def broadcastpacket(self) -> TriggerABusBItemI3cSdrBroadcastpacket:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.

        **Description:**
            - This command sets or queries the I3C trigger for SDR broadcast packets. The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket {ENSLave| DISLave| ENTasx| RSTDya| ENTRDya| SETMwrl| SETMrdl| DLSLave| ENTRTSTMode| EXTime| SETaasa}
            - TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket?

        **Info:**
            - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
            - ``DISLave`` sets the trigger condition to Disable Slave.
            - ``ENTasx`` sets the trigger condition to Enter Activity State.
            - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
            - ``ENTRDya`` sets the trigger condition to Enter Dynamic Address.
            - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
            - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
            - ``DLSLave`` sets the trigger condition to Define List of Slaves.
            - ``ENTRTSTMode`` sets the trigger condition to Enter Test Mode.
            - ``EXTime`` sets the trigger condition to Set Exchange Time.
            - ``SETaasa`` sets the trigger condition to Set Static As Dynamic Address.
        """  # noqa: E501
        return self._broadcastpacket

    @property
    def directpacket(self) -> TriggerABusBItemI3cSdrDirectpacket:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.

        **Description:**
            - This command sets or queries the I3C trigger for SDR Direct Packets. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket {ENSLave| DISLave| ENTasx| RSTDya| SETMwrl| SETMrdl| SEText| SETDya| SETNdya| GETMWrl| GETMRdl| GETPrid| GETBusch| GETDevch| GETSlave| ACCM| SETBrt| MDATASpeed| HDRCapability| GETXTime}
            - TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket?

        **Info:**
            - ``ENSLave`` sets the trigger condition to Enable Slave. This is the default value.
            - ``DISLave`` sets the trigger condition to Disable Slave.
            - ``ENTasx`` sets the trigger condition to Enter Activity State.
            - ``RSTDya`` sets the trigger condition to Reset Dynamic Address.
            - ``SETMwrl`` sets the trigger condition to Set Max Write Length.
            - ``SETMrdl`` sets the trigger condition to Set Max Read Length.
            - ``SEText`` sets the trigger condition to Set Exchange Time.
            - ``SETDya`` sets the trigger condition to Set Dynamic Address.
            - ``SETNdya`` sets the trigger condition to Set New Dynamic Address.
            - ``GETMWrl`` sets the trigger condition to Get Max Write Length.
            - ``GETMRdl`` sets the trigger condition to Get Max Read Length.
            - ``GETPrid`` sets the trigger condition to Get Provisional ID.
            - ``GETBusch`` sets the trigger condition to Get Bus Characteristics.
            - ``GETDevch`` sets the trigger condition to Get Dev Characteristics.
            - ``GETSlave`` sets the trigger condition to Get Slave Current Status.
            - ``ACCM`` sets the trigger condition to Get Accept Mastership.
            - ``SETBrt`` sets the trigger condition to Set Bridge Direct Target.
            - ``MDATASpeed`` sets the trigger condition to Get Max Data Speed.
            - ``HDRCapability`` sets the trigger condition to Get HDR Capability.
            - ``GETXTime`` sets the trigger condition to Get Exchange Time.
        """  # noqa: E501
        return self._directpacket


class TriggerABusBItemI3cErrortype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe`` command.

    **Description:**
        - This command specifies the error type when triggering on I3C errors. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
        - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?

    **Info:**
        - ``NACK`` sets the trigger condition to Missing ACK error . This is the default value.
        - ``TBIT`` sets the trigger condition to Slave/Parity Error shown by Transition bit.
        - ``BADDr`` sets the trigger condition to BroadCast Error.
    """


class TriggerABusBItemI3cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for I3C triggering if the trigger
          condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:I3C:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the I3C trigger data value. Default Data is
          XXXXXXXX and user can enter up to XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemI3cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an I3C
          trigger if the trigger condition is DATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the size of the data string in bytes. Data bytes can vary from 1 to 5.
    """


class TriggerABusBItemI3cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection`` command.

    **Description:**
        - This command specifies the I3C bus data direction when triggering on data field. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?

    **Info:**
        - ``READ`` sets the trigger condition to Read Packet. This is the default value.
        - ``WRITE`` sets the trigger condition to Write Packet.
        - ``NOCARE`` sets the trigger condition to Either Read or Write Packet.
    """


class TriggerABusBItemI3cData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerABusBItemI3cDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._size = TriggerABusBItemI3cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemI3cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerABusBItemI3cDataDirection:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection`` command.

        **Description:**
            - This command specifies the I3C bus data direction when triggering on data field. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:A:BUS:B<x>:I3C:DATa:DIRection?

        **Info:**
            - ``READ`` sets the trigger condition to Read Packet. This is the default value.
            - ``WRITE`` sets the trigger condition to Write Packet.
            - ``NOCARE`` sets the trigger condition to Either Read or Write Packet.
        """
        return self._direction

    @property
    def size(self) -> TriggerABusBItemI3cDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an I3C
              trigger if the trigger condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:I3C:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the size of the data string in bytes. Data bytes can vary from 1 to 5.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemI3cDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for I3C triggering if the trigger
              condition is DATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:I3C:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the I3C trigger data value. Default Data is
              XXXXXXXX and user can enter up to XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX.
        """
        return self._value


class TriggerABusBItemI3cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a I3C bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
        - TRIGger:A:BUS:B<x>:I3C:CONDition?

    **Info:**
        - ``STARt`` sets the trigger condition to STARt. This is the default value.
        - ``REPEATStart`` sets the trigger condition to REPEATStart.
        - ``ADDRess`` sets the trigger condition to ADDRess.
        - ``DATa`` sets the trigger condition to DATa.
        - ``SDRDirect`` sets the trigger condition to SDRDirect.
        - ``SDRBroadcast`` sets the trigger condition to SDRBroadcast.
        - ``ERRors`` sets the trigger condition to ERRors.
        - ``HOTJoin`` sets the trigger condition to HOTJoin.
        - ``HDRRestart`` sets the trigger condition to HDRRestart.
        - ``HDRExit`` sets the trigger condition to HDRExit.
        - ``STOP`` sets the trigger condition to STOP.
    """  # noqa: E501


class TriggerABusBItemI3cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for the I3C trigger if the trigger
          condition is ADDRESS. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue <QString>
        - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the I3C trigger data value. XXXXXXX in case of
          7-bit addressing mode XXXXXXXXXX in case of 10-bit addressing mode.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemI3cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe`` command.

    **Description:**
        - This command specifies the I3C address mode to either 7bit or 10bit when triggering on
          address field. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
        - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?

    **Info:**
        - ``ADDR7`` sets the trigger condition to 7-bit Address. This is the default value.
        - ``ADDR10`` sets the trigger condition to 10-bit Address.
    """


class TriggerABusBItemI3cAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerABusBItemI3cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerABusBItemI3cAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerABusBItemI3cAddressMode:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe`` command.

        **Description:**
            - This command specifies the I3C address mode to either 7bit or 10bit when triggering on
              address field. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe {ADDR7|ADDR10}
            - TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe?

        **Info:**
            - ``ADDR7`` sets the trigger condition to 7-bit Address. This is the default value.
            - ``ADDR10`` sets the trigger condition to 10-bit Address.
        """
        return self._mode

    @property
    def value(self) -> TriggerABusBItemI3cAddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for the I3C trigger if the
              trigger condition is ADDRESS. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue <QString>
            - TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the I3C trigger data value. XXXXXXX in case
              of 7-bit addressing mode XXXXXXXXXX in case of 10-bit addressing mode.
        """
        return self._value


class TriggerABusBItemI3c(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I3C`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:I3C:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:I3C:DATa`` command tree.
        - ``.errortype``: The ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe`` command.
        - ``.sdr``: The ``TRIGger:A:BUS:B<x>:I3C:SDR`` command tree.
        - ``.tbit``: The ``TRIGger:A:BUS:B<x>:I3C:TBIT`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemI3cAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerABusBItemI3cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemI3cData(device, f"{self._cmd_syntax}:DATa")
        self._errortype = TriggerABusBItemI3cErrortype(device, f"{self._cmd_syntax}:ERRORTYPe")
        self._sdr = TriggerABusBItemI3cSdr(device, f"{self._cmd_syntax}:SDR")
        self._tbit = TriggerABusBItemI3cTbit(device, f"{self._cmd_syntax}:TBIT")

    @property
    def address(self) -> TriggerABusBItemI3cAddress:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:MODe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerABusBItemI3cCondition:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a I3C bus to trigger on. The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:CONDition {STARt| REPEATStart| ADDRess| DATa| SDRDirect| SDRBroadcast| ERRors| HOTJoin| HDRRestart| HDRExit| STOP}
            - TRIGger:A:BUS:B<x>:I3C:CONDition?

        **Info:**
            - ``STARt`` sets the trigger condition to STARt. This is the default value.
            - ``REPEATStart`` sets the trigger condition to REPEATStart.
            - ``ADDRess`` sets the trigger condition to ADDRess.
            - ``DATa`` sets the trigger condition to DATa.
            - ``SDRDirect`` sets the trigger condition to SDRDirect.
            - ``SDRBroadcast`` sets the trigger condition to SDRBroadcast.
            - ``ERRors`` sets the trigger condition to ERRors.
            - ``HOTJoin`` sets the trigger condition to HOTJoin.
            - ``HDRRestart`` sets the trigger condition to HDRRestart.
            - ``HDRExit`` sets the trigger condition to HDRExit.
            - ``STOP`` sets the trigger condition to STOP.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemI3cData:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:DIRection`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:I3C:DATa:VALue`` command.
        """
        return self._data

    @property
    def errortype(self) -> TriggerABusBItemI3cErrortype:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe`` command.

        **Description:**
            - This command specifies the error type when triggering on I3C errors. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe {NACK|TBIT|BADDr}
            - TRIGger:A:BUS:B<x>:I3C:ERRORTYPe?

        **Info:**
            - ``NACK`` sets the trigger condition to Missing ACK error . This is the default value.
            - ``TBIT`` sets the trigger condition to Slave/Parity Error shown by Transition bit.
            - ``BADDr`` sets the trigger condition to BroadCast Error.
        """
        return self._errortype

    @property
    def sdr(self) -> TriggerABusBItemI3cSdr:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:SDR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:SDR?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:SDR?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.broadcastpacket``: The ``TRIGger:A:BUS:B<x>:I3C:SDR:BROADCASTPacket`` command.
            - ``.directpacket``: The ``TRIGger:A:BUS:B<x>:I3C:SDR:DIRECTPacket`` command.
        """
        return self._sdr

    @property
    def tbit(self) -> TriggerABusBItemI3cTbit:
        """Return the ``TRIGger:A:BUS:B<x>:I3C:TBIT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C:TBIT?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:A:BUS:B<x>:I3C:TBIT:DIREction`` command.
        """
        return self._tbit


class TriggerABusBItemI2cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for I2C triggering if the trigger
          condition is DATA or ADDRANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:I2C:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary data string, where the number of bits is 8 times the number of
          bytes specified. The only allowed characters in the string are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemI2cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an I2C
          trigger if the trigger condition is DATA or ADDRANDDATA. Applies to bus <x>, where the bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerABusBItemI2cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection`` command.

    **Description:**
        - This command specifies the I 2 C trigger type to be valid on a Read, Write, or Either
          condition. Read or write is indicated by the R/W bit in the I 2 C protocol. The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?

    **Info:**
        - ``READ`` specifies read as the data direction.
        - ``WRITE`` specifies write as the data direction.
        - ``NOCARE`` specifies either as the data direction.
    """


class TriggerABusBItemI2cData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerABusBItemI2cDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._size = TriggerABusBItemI2cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemI2cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerABusBItemI2cDataDirection:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection`` command.

        **Description:**
            - This command specifies the I 2 C trigger type to be valid on a Read, Write, or Either
              condition. Read or write is indicated by the R/W bit in the I 2 C protocol. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:A:BUS:B<x>:I2C:DATa:DIRection?

        **Info:**
            - ``READ`` specifies read as the data direction.
            - ``WRITE`` specifies write as the data direction.
            - ``NOCARE`` specifies either as the data direction.
        """
        return self._direction

    @property
    def size(self) -> TriggerABusBItemI2cDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an I2C
              trigger if the trigger condition is DATA or ADDRANDDATA. Applies to bus <x>, where the
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:I2C:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemI2cDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for I2C triggering if the trigger
              condition is DATA or ADDRANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:I2C:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary data string, where the number of bits is 8 times the
              number of bytes specified. The only allowed characters in the string are 0, 1, and X.
        """
        return self._value


class TriggerABusBItemI2cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:CONDition`` command.

    **Description:**
        - This command specifies the trigger condition for an I 2 C trigger. The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
        - TRIGger:A:BUS:B<x>:I2C:CONDition?

    **Info:**
        - ``STARt`` specifies a search based on start condition.
        - ``STOP`` specifies a search based on stop condition.
        - ``REPEATstart`` specifies a search based on repeat of start condition.
        - ``ACKMISS`` specifies a search based on missing acknowledgement condition.
        - ``ADDRess`` specifies a search based on address.
        - ``DATa`` specifies a search based on data.
        - ``ADDRANDDATA`` specifies a search based on address and data.
    """


class TriggerABusBItemI2cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for the I 2 C trigger if the trigger
          condition is ADDRESS or ADDRANDDATA. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue <QString>
        - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is up to 7 or 10-bits depending on the address mode that specifies the
          address. The only allowed characters in the QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemI2cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe`` command.

    **Description:**
        - This command specifies the I 2 C address mode to 7 or 10-bit. The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
        - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?

    **Info:**
        - ``ADDR7`` specifies the 7-bit I2C address mode.
        - ``ADDR10`` specifies the 10-bit I2C address mode.
    """


class TriggerABusBItemI2cAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerABusBItemI2cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerABusBItemI2cAddressValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerABusBItemI2cAddressMode:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe`` command.

        **Description:**
            - This command specifies the I 2 C address mode to 7 or 10-bit. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe {ADDR7|ADDR10}
            - TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe?

        **Info:**
            - ``ADDR7`` specifies the 7-bit I2C address mode.
            - ``ADDR10`` specifies the 10-bit I2C address mode.
        """
        return self._mode

    @property
    def value(self) -> TriggerABusBItemI2cAddressValue:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for the I 2 C trigger if the
              trigger condition is ADDRESS or ADDRANDDATA. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue <QString>
            - TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is up to 7 or 10-bits depending on the address mode that specifies the
              address. The only allowed characters in the QString are 0, 1, and X.
        """
        return self._value


class TriggerABusBItemI2c(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:I2C`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess`` command tree.
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:I2C:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:I2C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemI2cAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._condition = TriggerABusBItemI2cCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemI2cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def address(self) -> TriggerABusBItemI2cAddress:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:ADDRess?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:MODe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> TriggerABusBItemI2cCondition:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:CONDition`` command.

        **Description:**
            - This command specifies the trigger condition for an I 2 C trigger. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:I2C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:I2C:CONDition {STARt|STOP|REPEATstart|ACKMISS|ADDRess|DATa|ADDRANDDATA}
            - TRIGger:A:BUS:B<x>:I2C:CONDition?

        **Info:**
            - ``STARt`` specifies a search based on start condition.
            - ``STOP`` specifies a search based on stop condition.
            - ``REPEATstart`` specifies a search based on repeat of start condition.
            - ``ACKMISS`` specifies a search based on missing acknowledgement condition.
            - ``ADDRess`` specifies a search based on address.
            - ``DATa`` specifies a search based on data.
            - ``ADDRANDDATA`` specifies a search based on address and data.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemI2cData:
        """Return the ``TRIGger:A:BUS:B<x>:I2C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:DIRection`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:I2C:DATa:VALue`` command.
        """
        return self._data


class TriggerABusBItemFlexrayHeaderPaylength(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.

    **Description:**
        - This command specifies the payload length portion of the binary header string when
          triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
          (using ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?

    **Info:**
        - ``<QString>`` is the length of the payload portion of the Binary header string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayHeaderIndbits(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits`` command.

    **Description:**
        - This command specifies the indicator bits portion of the binary header string when
          triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?

    **Info:**
        - ``<QString>`` is a quoted string that is the indicator bits portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayHeaderFrameid(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.

    **Description:**
        - This command specifies the frame ID portion of the binary header string when triggering on
          the FlexRay bus header. The trigger condition needs to be set to HEADer (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?

    **Info:**
        - ``<QString>`` is a quoted string that represents the frame ID portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayHeaderCyclecount(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.

    **Description:**
        - This command specifies the cycle count portion of the binary header string when triggering
          on the FlexRay bus header. The trigger condition needs to be set to HEADer (using ). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?

    **Info:**
        - ``<QString>`` is a quoted string that is the cycle count portion of the binary header
          string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayHeaderCrc(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC`` command.

    **Description:**
        - This command specifies the CRC portion of the binary header string when triggering on the
          FlexRay bus signal. The trigger condition needs to be set to HEADer (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?

    **Info:**
        - ``<QString>`` is a quoted string that is the CRC portion of the binary header string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayHeader(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.crc``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC`` command.
        - ``.cyclecount``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.
        - ``.frameid``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.
        - ``.indbits``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits`` command.
        - ``.paylength``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crc = TriggerABusBItemFlexrayHeaderCrc(device, f"{self._cmd_syntax}:CRC")
        self._cyclecount = TriggerABusBItemFlexrayHeaderCyclecount(
            device, f"{self._cmd_syntax}:CYCLEcount"
        )
        self._frameid = TriggerABusBItemFlexrayHeaderFrameid(device, f"{self._cmd_syntax}:FRAMEID")
        self._indbits = TriggerABusBItemFlexrayHeaderIndbits(device, f"{self._cmd_syntax}:INDBits")
        self._paylength = TriggerABusBItemFlexrayHeaderPaylength(
            device, f"{self._cmd_syntax}:PAYLength"
        )

    @property
    def crc(self) -> TriggerABusBItemFlexrayHeaderCrc:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC`` command.

        **Description:**
            - This command specifies the CRC portion of the binary header string when triggering on
              the FlexRay bus signal. The trigger condition needs to be set to HEADer (using ). The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC?

        **Info:**
            - ``<QString>`` is a quoted string that is the CRC portion of the binary header string.
        """
        return self._crc

    @property
    def cyclecount(self) -> TriggerABusBItemFlexrayHeaderCyclecount:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.

        **Description:**
            - This command specifies the cycle count portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount?

        **Info:**
            - ``<QString>`` is a quoted string that is the cycle count portion of the binary header
              string.
        """
        return self._cyclecount

    @property
    def frameid(self) -> TriggerABusBItemFlexrayHeaderFrameid:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.

        **Description:**
            - This command specifies the frame ID portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID?

        **Info:**
            - ``<QString>`` is a quoted string that represents the frame ID portion of the binary
              header string.
        """
        return self._frameid

    @property
    def indbits(self) -> TriggerABusBItemFlexrayHeaderIndbits:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits`` command.

        **Description:**
            - This command specifies the indicator bits portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits?

        **Info:**
            - ``<QString>`` is a quoted string that is the indicator bits portion of the binary
              header string.
        """
        return self._indbits

    @property
    def paylength(self) -> TriggerABusBItemFlexrayHeaderPaylength:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.

        **Description:**
            - This command specifies the payload length portion of the binary header string when
              triggering on the FlexRay bus header. The trigger condition needs to be set to HEADer
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength?

        **Info:**
            - ``<QString>`` is the length of the payload portion of the Binary header string.
        """
        return self._paylength


class TriggerABusBItemFlexrayFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType`` command.

    **Description:**
        - This command specifies the frame type (normal, payload, null, sync or startup) when
          triggering on the FlexRay bus signal. The trigger condition needs to be set to FRAMEType
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?

    **Info:**
        - ``NORMal`` specifies the normal frame type.
        - ``PAYLoad`` specifies the payload frame type.
        - ``NULL`` specifies the null frame type.
        - ``SYNC`` specifies the sync frame type.
        - ``STARTup`` specifies the startup frame type.
    """


class TriggerABusBItemFlexrayFrameidValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus frame ID field.
          (Use to set the high value.) The trigger condition needs to be set to IDentifier (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the FlexRay frame ID low value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayFrameidQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to use when triggering on the FlexRay bus frame ID
          field. The trigger condition needs to be set to IDentifier (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?

    **Info:**
        - ``LESSthan`` sets the frame ID qualifier to less than.
        - ``MOREthan`` sets the frame ID qualifier to greater than.
        - ``EQual`` sets the frame ID qualifier to equal.
        - ``UNEQual`` sets the frame ID qualifier to not equal.
        - ``LESSEQual`` sets the frame ID qualifier to less than or equal.
        - ``MOREEQual`` sets the frame ID qualifier to greater than or equal.
        - ``INrange`` sets the frame ID qualifier to in range.
        - ``OUTrange`` sets the frame ID qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemFlexrayFrameidHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on the FlexRay bus frame ID field.
          (Use to set the low value.) The trigger condition needs to be set to IDentifier (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary frame ID high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayFrameid(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemFlexrayFrameidHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemFlexrayFrameidQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemFlexrayFrameidValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemFlexrayFrameidHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on the FlexRay bus frame ID
              field. (Use to set the low value.) The trigger condition needs to be set to IDentifier
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary frame ID high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemFlexrayFrameidQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to use when triggering on the FlexRay bus frame
              ID field. The trigger condition needs to be set to IDentifier (using ). The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier?

        **Info:**
            - ``LESSthan`` sets the frame ID qualifier to less than.
            - ``MOREthan`` sets the frame ID qualifier to greater than.
            - ``EQual`` sets the frame ID qualifier to equal.
            - ``UNEQual`` sets the frame ID qualifier to not equal.
            - ``LESSEQual`` sets the frame ID qualifier to less than or equal.
            - ``MOREEQual`` sets the frame ID qualifier to greater than or equal.
            - ``INrange`` sets the frame ID qualifier to in range.
            - ``OUTrange`` sets the frame ID qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemFlexrayFrameidValue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus frame ID
              field. (Use to set the high value.) The trigger condition needs to be set to
              IDentifier (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the FlexRay frame ID low value.
        """
        return self._value


class TriggerABusBItemFlexrayErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE`` command.

    **Description:**
        - This command specifies the error type when triggering on the FlexRay bus signal. The
          trigger condition needs to be set to ERROR (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
        - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?

    **Info:**
        - ``CRCHeader`` sets the error type to CRCHeader.
        - ``CRCTrailer`` sets the error type to CRCTrailer.
        - ``SYNCFrame`` sets the error type to SYNCFrame.
        - ``STARTupnosync`` sets the error type to STARTupnosync.
        - ``NULLFRStatic`` sets the error type to NULLFRStatic.
        - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
    """  # noqa: E501


class TriggerABusBItemFlexrayEoftype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE`` command.

    **Description:**
        - This command specifies the end of file type (static, dynamic or any) when triggering on
          the FlexRay bus EOF field. The trigger condition needs to be set to EOF (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
        - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?

    **Info:**
        - ``STATic`` specifies triggering on the STATIC end of file type.
        - ``DYNAMic`` specifies triggering on the DYNAMIC end of file type.
        - ``ANY`` specifies triggering on a STATIC or DYNAMIC end of file type.
    """


class TriggerABusBItemFlexrayDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus data field. (Use
          to set the upper value.) The trigger condition needs to be set to ID or IDANDDATA (using
          ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string, in bytes, when triggering on the
          FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the FlexRay data string length, in bytes.
    """


class TriggerABusBItemFlexrayDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range) to
          use when triggering on the FlexRay bus data field. The trigger condition needs to be set
          to ID or IDANDDATA (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to greater than.
        - ``EQual`` sets the data qualifier to eqaual.
        - ``UNEQual`` sets the data qualifier to not equal.
        - ``LESSEQual`` sets the data qualifier to less than or equal.
        - ``MOREEQual`` sets the data qualifier to greater than or equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemFlexrayDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet`` command.

    **Description:**
        - This command specifies the offset of the data string, in bytes, when triggering on the
          FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA (using ).
          The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
        - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is the offset of the data string in bytes. A byte offset of -1 signifies 'don't
          care', and no byte offset is used. The instrument will trigger on or match any byte value
          that fits.
    """


class TriggerABusBItemFlexrayDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on the FlexRay bus data field. (Use
          to set the lower value.) The trigger condition needs to be set to ID or IDANDDATA (using
          ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the binary data high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemFlexrayDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerABusBItemFlexrayDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerABusBItemFlexrayDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = TriggerABusBItemFlexrayDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemFlexrayDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemFlexrayDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on the FlexRay bus data field.
              (Use to set the lower value.) The trigger condition needs to be set to ID or IDANDDATA
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the binary data high value.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerABusBItemFlexrayDataOffset:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet`` command.

        **Description:**
            - This command specifies the offset of the data string, in bytes, when triggering on the
              FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet <NR1>
            - TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is the offset of the data string in bytes. A byte offset of -1 signifies
              'don't care', and no byte offset is used. The instrument will trigger on or match any
              byte value that fits.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerABusBItemFlexrayDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range)
              to use when triggering on the FlexRay bus data field. The trigger condition needs to
              be set to ID or IDANDDATA (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to greater than.
            - ``EQual`` sets the data qualifier to eqaual.
            - ``UNEQual`` sets the data qualifier to not equal.
            - ``LESSEQual`` sets the data qualifier to less than or equal.
            - ``MOREEQual`` sets the data qualifier to greater than or equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerABusBItemFlexrayDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string, in bytes, when triggering on the
              FlexRay bus data field. The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the FlexRay data string length, in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemFlexrayDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus data field.
              (Use to set the upper value.) The trigger condition needs to be set to ID or IDANDDATA
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string.
        """
        return self._value


class TriggerABusBItemFlexrayCyclecountValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.

    **Description:**
        - This command specifies the low value when triggering on the FlexRay bus cycle count field.
          (Use to set the upper value.) The trigger condition must be set to CYCLEcount (using ).The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?

    **Info:**
        - ``<QString>`` is a quoted binary data string that represents the cycle count low value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayCyclecountQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range) to
          use when triggering on the FlexRay bus cycle count field. The trigger condition must be
          set to CYCLEcount (using ).The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?

    **Info:**
        - ``LESSthan`` sets the cycle count qualifier to less than.
        - ``MOREthan`` sets the cycle count qualifier to more than.
        - ``EQual`` sets the cycle count qualifier to equal.
        - ``UNEQual`` sets the cycle count qualifier to not equal.
        - ``LESSEQual`` sets the cycle count qualifier to less than or equal.
        - ``MOREEQual`` sets the cycle count qualifier to greater than or equal.
        - ``INrange`` sets the cycle count qualifier to in range.
        - ``OUTrange`` sets the cycle count qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemFlexrayCyclecountHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.

    **Description:**
        - This command specifies the high value when triggering on a FlexRay bus cycle count field.
          (Use to set the low value.) The trigger condition must be set to CYCLEcount (using ). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string that is the cycle count high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemFlexrayCyclecount(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemFlexrayCyclecountHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = TriggerABusBItemFlexrayCyclecountQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemFlexrayCyclecountValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemFlexrayCyclecountHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.

        **Description:**
            - This command specifies the high value when triggering on a FlexRay bus cycle count
              field. (Use to set the low value.) The trigger condition must be set to CYCLEcount
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string that is the cycle count high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemFlexrayCyclecountQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier (<, >, =, <=, >=, not =, in range, out of range)
              to use when triggering on the FlexRay bus cycle count field. The trigger condition
              must be set to CYCLEcount (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier?

        **Info:**
            - ``LESSthan`` sets the cycle count qualifier to less than.
            - ``MOREthan`` sets the cycle count qualifier to more than.
            - ``EQual`` sets the cycle count qualifier to equal.
            - ``UNEQual`` sets the cycle count qualifier to not equal.
            - ``LESSEQual`` sets the cycle count qualifier to less than or equal.
            - ``MOREEQual`` sets the cycle count qualifier to greater than or equal.
            - ``INrange`` sets the cycle count qualifier to in range.
            - ``OUTrange`` sets the cycle count qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemFlexrayCyclecountValue:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.

        **Description:**
            - This command specifies the low value when triggering on the FlexRay bus cycle count
              field. (Use to set the upper value.) The trigger condition must be set to CYCLEcount
              (using ).The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue <QString>
            - TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue?

        **Info:**
            - ``<QString>`` is a quoted binary data string that represents the cycle count low
              value.
        """
        return self._value


class TriggerABusBItemFlexrayCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray:CONDition`` command.

    **Description:**
        - This command specifies the condition to use when triggering on a FlexRay bus signal (start
          of frame, frame type, ID, cycle count, header, data, ID and data, EOF, error). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:FLEXray:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
        - TRIGger:A:BUS:B<x>:FLEXray:CONDition?

    **Info:**
        - ``SOF`` sets the trigger condition to start of frame.
        - ``FRAMEType`` sets the trigger condition to frame type.
        - ``IDentifier`` sets the trigger condition to identifier.
        - ``CYCLEcount`` sets the trigger condition to cycle count.
        - ``HEADer`` sets the trigger condition to header.
        - ``DATa`` sets the trigger condition to data.
        - ``IDANDDATA`` sets the trigger condition to id and data.
        - ``EOF`` sets the trigger condition to end of frame.
        - ``ERRor`` sets the trigger condition to error.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class TriggerABusBItemFlexray(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:FLEXray`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:FLEXray:CONDition`` command.
        - ``.cyclecount``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount`` command tree.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa`` command tree.
        - ``.eoftype``: The ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE`` command.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE`` command.
        - ``.frameid``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID`` command tree.
        - ``.frametype``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType`` command.
        - ``.header``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemFlexrayCondition(device, f"{self._cmd_syntax}:CONDition")
        self._cyclecount = TriggerABusBItemFlexrayCyclecount(
            device, f"{self._cmd_syntax}:CYCLEcount"
        )
        self._data = TriggerABusBItemFlexrayData(device, f"{self._cmd_syntax}:DATa")
        self._eoftype = TriggerABusBItemFlexrayEoftype(device, f"{self._cmd_syntax}:EOFTYPE")
        self._errtype = TriggerABusBItemFlexrayErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._frameid = TriggerABusBItemFlexrayFrameid(device, f"{self._cmd_syntax}:FRAMEID")
        self._frametype = TriggerABusBItemFlexrayFrametype(device, f"{self._cmd_syntax}:FRAMEType")
        self._header = TriggerABusBItemFlexrayHeader(device, f"{self._cmd_syntax}:HEADER")

    @property
    def condition(self) -> TriggerABusBItemFlexrayCondition:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:CONDition`` command.

        **Description:**
            - This command specifies the condition to use when triggering on a FlexRay bus signal
              (start of frame, frame type, ID, cycle count, header, data, ID and data, EOF, error).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:CONDition {SOF|FRAMEType|IDentifier|CYCLEcount|HEADer|DATa|IDANDDATA|EOF|ERRor}
            - TRIGger:A:BUS:B<x>:FLEXray:CONDition?

        **Info:**
            - ``SOF`` sets the trigger condition to start of frame.
            - ``FRAMEType`` sets the trigger condition to frame type.
            - ``IDentifier`` sets the trigger condition to identifier.
            - ``CYCLEcount`` sets the trigger condition to cycle count.
            - ``HEADer`` sets the trigger condition to header.
            - ``DATa`` sets the trigger condition to data.
            - ``IDANDDATA`` sets the trigger condition to id and data.
            - ``EOF`` sets the trigger condition to end of frame.
            - ``ERRor`` sets the trigger condition to error.
        """  # noqa: E501
        return self._condition

    @property
    def cyclecount(self) -> TriggerABusBItemFlexrayCyclecount:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount:VALue`` command.
        """
        return self._cyclecount

    @property
    def data(self) -> TriggerABusBItemFlexrayData:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa:VALue`` command.
        """
        return self._data

    @property
    def eoftype(self) -> TriggerABusBItemFlexrayEoftype:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE`` command.

        **Description:**
            - This command specifies the end of file type (static, dynamic or any) when triggering
              on the FlexRay bus EOF field. The trigger condition needs to be set to EOF (using ).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE {STATic|DYNAMic|ANY}
            - TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE?

        **Info:**
            - ``STATic`` specifies triggering on the STATIC end of file type.
            - ``DYNAMic`` specifies triggering on the DYNAMIC end of file type.
            - ``ANY`` specifies triggering on a STATIC or DYNAMIC end of file type.
        """
        return self._eoftype

    @property
    def errtype(self) -> TriggerABusBItemFlexrayErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE`` command.

        **Description:**
            - This command specifies the error type when triggering on the FlexRay bus signal. The
              trigger condition needs to be set to ERROR (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE {CRCHeader|CRCTrailer|SYNCFrame|STARTupnosync|NULLFRStatic| NULLFRDynamic}
            - TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE?

        **Info:**
            - ``CRCHeader`` sets the error type to CRCHeader.
            - ``CRCTrailer`` sets the error type to CRCTrailer.
            - ``SYNCFrame`` sets the error type to SYNCFrame.
            - ``STARTupnosync`` sets the error type to STARTupnosync.
            - ``NULLFRStatic`` sets the error type to NULLFRStatic.
            - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
        """  # noqa: E501
        return self._errtype

    @property
    def frameid(self) -> TriggerABusBItemFlexrayFrameid:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID:VALue`` command.
        """
        return self._frameid

    @property
    def frametype(self) -> TriggerABusBItemFlexrayFrametype:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType`` command.

        **Description:**
            - This command specifies the frame type (normal, payload, null, sync or startup) when
              triggering on the FlexRay bus signal. The trigger condition needs to be set to
              FRAMEType (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType {NORMal|PAYLoad|NULL|SYNC|STARTup}
            - TRIGger:A:BUS:B<x>:FLEXray:FRAMEType?

        **Info:**
            - ``NORMal`` specifies the normal frame type.
            - ``PAYLoad`` specifies the payload frame type.
            - ``NULL`` specifies the null frame type.
            - ``SYNC`` specifies the sync frame type.
            - ``STARTup`` specifies the startup frame type.
        """
        return self._frametype

    @property
    def header(self) -> TriggerABusBItemFlexrayHeader:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray:HEADER?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:FLEXray:HEADER?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.crc``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CRC`` command.
            - ``.cyclecount``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:CYCLEcount`` command.
            - ``.frameid``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:FRAMEID`` command.
            - ``.indbits``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:INDBits`` command.
            - ``.paylength``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER:PAYLength`` command.
        """
        return self._header


class TriggerABusBItemEthernetTcpheaderSourceportValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 16-bit
          source port address that is to be used in the trigger (along with the destination port
          address, the sequence number and the acknowledgement number). The default is all X's
          (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetTcpheaderSourceport(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetTcpheaderSourceportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetTcpheaderSourceportValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              16-bit source port address that is to be used in the trigger (along with the
              destination port address, the sequence number and the acknowledgement number). The
              default is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetTcpheaderSeqnumValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 32-bit
          sequence number that is to be used in the trigger (along with the destination and source
          port addresses and the acknowledgement value). The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetTcpheaderSeqnum(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetTcpheaderSeqnumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetTcpheaderSeqnumValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              32-bit sequence number that is to be used in the trigger (along with the destination
              and source port addresses and the acknowledgement value). The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetTcpheaderDestinationportValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set TCPHeader, this command specifies the 16-bit
          destination port address value that is to be used in the trigger (along with the
          acknowledgement value, source port address and the sequence number). The default is all
          X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetTcpheaderDestinationport(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetTcpheaderDestinationportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetTcpheaderDestinationportValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set TCPHeader, this command specifies the
              16-bit destination port address value that is to be used in the trigger (along with
              the acknowledgement value, source port address and the sequence number). The default
              is all X's (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetTcpheaderAcknumValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to TCPHeader, this command specifies the 32-bit
          acknowledgement number that is to be used in the trigger (along with the destination and
          source port addresses and the sequence number). The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetTcpheaderAcknum(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetTcpheaderAcknumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetTcpheaderAcknumValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to TCPHeader, this command specifies the
              32-bit acknowledgement number that is to be used in the trigger (along with the
              destination and source port addresses and the sequence number). The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetTcpheader(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.acknum``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.
        - ``.destinationport``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport``
          command tree.
        - ``.seqnum``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.
        - ``.sourceport``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._acknum = TriggerABusBItemEthernetTcpheaderAcknum(device, f"{self._cmd_syntax}:ACKnum")
        self._destinationport = TriggerABusBItemEthernetTcpheaderDestinationport(
            device, f"{self._cmd_syntax}:DESTinationport"
        )
        self._seqnum = TriggerABusBItemEthernetTcpheaderSeqnum(device, f"{self._cmd_syntax}:SEQnum")
        self._sourceport = TriggerABusBItemEthernetTcpheaderSourceport(
            device, f"{self._cmd_syntax}:SOUrceport"
        )

    @property
    def acknum(self) -> TriggerABusBItemEthernetTcpheaderAcknum:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum:VALue`` command.
        """
        return self._acknum

    @property
    def destinationport(self) -> TriggerABusBItemEthernetTcpheaderDestinationport:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport:VALue``
              command.
        """
        return self._destinationport

    @property
    def seqnum(self) -> TriggerABusBItemEthernetTcpheaderSeqnum:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum:VALue`` command.
        """
        return self._seqnum

    @property
    def sourceport(self) -> TriggerABusBItemEthernetTcpheaderSourceport:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport:VALue`` command.
        """
        return self._sourceport


class TriggerABusBItemEthernetQtagValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to QTAG, this command specifies the 32-bit
          Q-Tag value to trigger on. The default is all X's (don't care). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetQtag(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetQtagValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemEthernetQtagValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to QTAG, this command specifies the 32-bit
              Q-Tag value to trigger on. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetMacLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
          LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
          16-bit value to trigger on. When the qualifier is set to INrange or OUTrange, this command
          specifies the lower limit of the range. (Use the command to set the upper limit of the
          range.) The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetMacLengthHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
          INrange or OUTrange, this command specifies the upper data value of the range. (Use the
          command to specify the lower limit of the range.) The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string of up toe 16 characters where the allowable characters
          are 0, 1, and X. The bits specified in the quoted string replace the least significant
          bits, leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetMacLength(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemEthernetMacLengthHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = TriggerABusBItemEthernetMacLengthValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemEthernetMacLengthHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
              INrange or OUTrange, this command specifies the upper data value of the range. (Use
              the command to specify the lower limit of the range.) The default is all X's (don't
              care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string of up toe 16 characters where the allowable
              characters are 0, 1, and X. The bits specified in the quoted string replace the least
              significant bits, leaving any unspecified upper bits unchanged.
        """
        return self._hivalue

    @property
    def value(self) -> TriggerABusBItemEthernetMacLengthValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACLENgth, and the qualifier is set to
              LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
              16-bit value to trigger on. When the qualifier is set to INrange or OUTrange, this
              command specifies the lower limit of the range. (Use the command to set the upper
              limit of the range.) The default is all X's (don't care). The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetMacAddressSourceValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACADDress, this command specifies the
          48-bit MAC source address value that is to be used in the trigger (along with the
          destination address value). The default is all X's (don't care). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetMacAddressSource(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetMacAddressSourceValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetMacAddressSourceValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACADDress, this command specifies the
              48-bit MAC source address value that is to be used in the trigger (along with the
              destination address value). The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetMacAddressDestinationValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to MACADDress, this command specifies the
          48-bit MAC destination address that is to be used in the trigger (along with the source
          address value). The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetMacAddressDestination(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetMacAddressDestinationValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetMacAddressDestinationValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to MACADDress, this command specifies the
              48-bit MAC destination address that is to be used in the trigger (along with the
              source address value). The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetMacAddress(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.destination``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command
          tree.
        - ``.source``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destination = TriggerABusBItemEthernetMacAddressDestination(
            device, f"{self._cmd_syntax}:DESTination"
        )
        self._source = TriggerABusBItemEthernetMacAddressSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )

    @property
    def destination(self) -> TriggerABusBItemEthernetMacAddressDestination:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.
        """
        return self._destination

    @property
    def source(self) -> TriggerABusBItemEthernetMacAddressSource:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.
        """
        return self._source


class TriggerABusBItemEthernetMac(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.
        - ``.length``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = TriggerABusBItemEthernetMacAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._length = TriggerABusBItemEthernetMacLength(device, f"{self._cmd_syntax}:LENgth")

    @property
    def address(self) -> TriggerABusBItemEthernetMacAddress:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.destination``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:DESTination`` command
              tree.
            - ``.source``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess:SOUrce`` command tree.
        """
        return self._address

    @property
    def length(self) -> TriggerABusBItemEthernetMacLength:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:HIVALue`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth:VALue`` command.
        """
        return self._length


class TriggerABusBItemEthernetIpheaderSourceaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 32-bit source address that is to be used in the trigger (along with the destination
          address and protocol value). The IP source address is a standard IP address such as
          192.168.0.1. The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetIpheaderSourceaddr(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetIpheaderSourceaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetIpheaderSourceaddrValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 32-bit source address that is to be used in the trigger (along with the
              destination address and protocol value). The IP source address is a standard IP
              address such as 192.168.0.1. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetIpheaderProtocolValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 8-bit protocol field that is to be used in the trigger (along with the source and
          destination addresses). The default is all X's (don't care). The bus number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 8 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetIpheaderProtocol(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetIpheaderProtocolValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetIpheaderProtocolValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 8-bit protocol field that is to be used in the trigger (along with the
              source and destination addresses). The default is all X's (don't care). The bus number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 8 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetIpheaderDestinationaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to IPHeader, this command specifies the value
          of the 32-bit destination address that is to be used in the trigger (along with the source
          address and protocol value). The IP destination address is a standard IP address such as
          192.168.0.1. The default is all X's (don't care). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetIpheaderDestinationaddr(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemEthernetIpheaderDestinationaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> TriggerABusBItemEthernetIpheaderDestinationaddrValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to IPHeader, this command specifies the
              value of the 32-bit destination address that is to be used in the trigger (along with
              the source address and protocol value). The IP destination address is a standard IP
              address such as 192.168.0.1. The default is all X's (don't care). The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetIpheader(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.destinationaddr``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command
          tree.
        - ``.protocol``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.
        - ``.sourceaddr``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destinationaddr = TriggerABusBItemEthernetIpheaderDestinationaddr(
            device, f"{self._cmd_syntax}:DESTinationaddr"
        )
        self._protocol = TriggerABusBItemEthernetIpheaderProtocol(
            device, f"{self._cmd_syntax}:PROTOcol"
        )
        self._sourceaddr = TriggerABusBItemEthernetIpheaderSourceaddr(
            device, f"{self._cmd_syntax}:SOUrceaddr"
        )

    @property
    def destinationaddr(self) -> TriggerABusBItemEthernetIpheaderDestinationaddr:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr:VALue``
              command.
        """
        return self._destinationaddr

    @property
    def protocol(self) -> TriggerABusBItemEthernetIpheaderProtocol:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol:VALue`` command.
        """
        return self._protocol

    @property
    def sourceaddr(self) -> TriggerABusBItemEthernetIpheaderSourceaddr:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.
        """
        return self._sourceaddr


class TriggerABusBItemEthernetDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, and the qualifier is set to LESSthan,
          MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the value to
          trigger on. When the Ethernet trigger condition is set to DATa, and the qualifier is set
          to INrange or OUTrange, this command specifies the lower limit of the range. (Use the
          command to set the upper limit of the range.) The default is all X's (don't care). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?

    **Info:**
        - ``<QString>`` is a quoted string where the allowable characters are 0, 1, and X. The
          allowable number of characters depends on the setting for size (using
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe``). The bits specified in the quoted string
          replace the least significant bits, leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, this command specifies the number of
          contiguous TCP/IPv4/MAC client data bytes to trigger on. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of contiguous TCP/IPv4/MAC client data bytes. The minimum
          and default values are 1 and maximum is 16, except when the qualifier is set to Inside
          Range or Outside Range. In these cases, the maximum size is 4.
    """


class TriggerABusBItemEthernetDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on an Ethernet bus
          signal. The trigger condition must be set to DATa. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemEthernetDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, this command specifies where in the
          data field to look for the data trigger value. It specifies the offset into the data
          field, in bytes, where the value will be matched. The default is -1 (don't care). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and maximum
          is 1,499.
    """


class TriggerABusBItemEthernetDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.

    **Description:**
        - When the Ethernet trigger condition is set to DATa, and the qualifier is set to either
          INrange or OUTrange, this command specifies the upper data value of the range. (Use the
          command to specify the lower limit of the range.) The default is all X's (don't care). The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string whose length varies depending on the size setting, up to
          32 bits. (Use the command.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemEthernetData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemEthernetDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerABusBItemEthernetDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerABusBItemEthernetDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = TriggerABusBItemEthernetDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemEthernetDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemEthernetDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, and the qualifier is set to either
              INrange or OUTrange, this command specifies the upper data value of the range. (Use
              the command to specify the lower limit of the range.) The default is all X's (don't
              care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string whose length varies depending on the size setting, up
              to 32 bits. (Use the command.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerABusBItemEthernetDataOffset:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, this command specifies where in
              the data field to look for the data trigger value. It specifies the offset into the
              data field, in bytes, where the value will be matched. The default is -1 (don't care).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet <NR1>
            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and
              maximum is 1,499.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerABusBItemEthernetDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on an Ethernet
              bus signal. The trigger condition must be set to DATa. The bus number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier {EQual| UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerABusBItemEthernetDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, this command specifies the number
              of contiguous TCP/IPv4/MAC client data bytes to trigger on. The bus number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of contiguous TCP/IPv4/MAC client data bytes. The
              minimum and default values are 1 and maximum is 16, except when the qualifier is set
              to Inside Range or Outside Range. In these cases, the maximum size is 4.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemEthernetDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue`` command.

        **Description:**
            - When the Ethernet trigger condition is set to DATa, and the qualifier is set to
              LESSthan, MOREthan, EQual, UNEQual, LESSEQual or MOREEQual, this command specifies the
              value to trigger on. When the Ethernet trigger condition is set to DATa, and the
              qualifier is set to INrange or OUTrange, this command specifies the lower limit of the
              range. (Use the command to set the upper limit of the range.) The default is all X's
              (don't care). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue?

        **Info:**
            - ``<QString>`` is a quoted string where the allowable characters are 0, 1, and X. The
              allowable number of characters depends on the setting for size (using
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe``). The bits specified in the quoted string
              replace the least significant bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class TriggerABusBItemEthernetCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition`` command.

    **Description:**
        - This command specifies a field or condition within an Ethernet frame to trigger on. The
          bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
        - TRIGger:A:BUS:B<x>:ETHERnet:CONDition?

    **Info:**
        - ``SFD`` - Start of frame delimiter.
        - ``MACADDRess`` - MAC addresses field.
        - ``MACLENgth`` - MAC length/type field.
        - ``IPHeader`` - IP header field. This argument is only available when PROTOCOL is set to
          IPv4.
        - ``TCPHeader`` - TCP header field. This argument is only available when PROTOCOL is set to
          IPv4.
        - ``DATa`` - TCP/IPv4 or MAC protocol client data field. If the protocol is set to OTHER,
          then DATa refers to the MAC client data.
        - ``EOP`` - End of Packet field.
        - ``IDLe`` - Idle field.
        - ``FCSError`` - Frame Check Sequence Error (CRC) field.
        - ``QTAG`` - IEEE 802.1Q (VLAN) control information field. In order to use QTAG as a trigger
          condition, the frame type must be set to QTAG ).
    """  # noqa: E501


class TriggerABusBItemEthernet(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ETHERnet`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa`` command tree.
        - ``.ipheader``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader`` command tree.
        - ``.mac``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC`` command tree.
        - ``.qtag``: The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG`` command tree.
        - ``.tcpheader``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemEthernetCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemEthernetData(device, f"{self._cmd_syntax}:DATa")
        self._ipheader = TriggerABusBItemEthernetIpheader(device, f"{self._cmd_syntax}:IPHeader")
        self._mac = TriggerABusBItemEthernetMac(device, f"{self._cmd_syntax}:MAC")
        self._qtag = TriggerABusBItemEthernetQtag(device, f"{self._cmd_syntax}:QTAG")
        self._tcpheader = TriggerABusBItemEthernetTcpheader(device, f"{self._cmd_syntax}:TCPHeader")

    @property
    def condition(self) -> TriggerABusBItemEthernetCondition:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition`` command.

        **Description:**
            - This command specifies a field or condition within an Ethernet frame to trigger on.
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
            - TRIGger:A:BUS:B<x>:ETHERnet:CONDition?

        **Info:**
            - ``SFD`` - Start of frame delimiter.
            - ``MACADDRess`` - MAC addresses field.
            - ``MACLENgth`` - MAC length/type field.
            - ``IPHeader`` - IP header field. This argument is only available when PROTOCOL is set
              to IPv4.
            - ``TCPHeader`` - TCP header field. This argument is only available when PROTOCOL is set
              to IPv4.
            - ``DATa`` - TCP/IPv4 or MAC protocol client data field. If the protocol is set to
              OTHER, then DATa refers to the MAC client data.
            - ``EOP`` - End of Packet field.
            - ``IDLe`` - Idle field.
            - ``FCSError`` - Frame Check Sequence Error (CRC) field.
            - ``QTAG`` - IEEE 802.1Q (VLAN) control information field. In order to use QTAG as a
              trigger condition, the frame type must be set to QTAG ).
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemEthernetData:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa:VALue`` command.
        """
        return self._data

    @property
    def ipheader(self) -> TriggerABusBItemEthernetIpheader:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.destinationaddr``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:DESTinationaddr``
              command tree.
            - ``.protocol``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:PROTOcol`` command tree.
            - ``.sourceaddr``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader:SOUrceaddr`` command tree.
        """
        return self._ipheader

    @property
    def mac(self) -> TriggerABusBItemEthernetMac:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC?``
              query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:MAC?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:ADDRess`` command tree.
            - ``.length``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC:LENgth`` command tree.
        """
        return self._mac

    @property
    def qtag(self) -> TriggerABusBItemEthernetQtag:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG:VALue`` command.
        """
        return self._qtag

    @property
    def tcpheader(self) -> TriggerABusBItemEthernetTcpheader:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.acknum``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:ACKnum`` command tree.
            - ``.destinationport``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:DESTinationport``
              command tree.
            - ``.seqnum``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SEQnum`` command tree.
            - ``.sourceport``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader:SOUrceport`` command
              tree.
        """
        return self._tcpheader


class TriggerABusBItemCanIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue`` command.

    **Description:**
        - This command sets the binary address value to be used when triggering on a CAN bus signal.
          The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue <QString>
        - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` is up to 29 bits specifying the binary identifier value. The only allowed
          characters in the QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemCanIdentifierMode(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe`` command.

    **Description:**
        - This command sets the addressing mode (standard or extended format) to be used when
          triggering on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa
          (using ). The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
        - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?

    **Info:**
        - ``STandard`` specifies the standard addressing mode.
        - ``EXTended`` specifies the extended addressing mode.
    """


class TriggerABusBItemCanIdentifier(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:IDentifier`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:IDentifier?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:IDentifier?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = TriggerABusBItemCanIdentifierMode(device, f"{self._cmd_syntax}:MODe")
        self._value = TriggerABusBItemCanIdentifierValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def mode(self) -> TriggerABusBItemCanIdentifierMode:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe`` command.

        **Description:**
            - This command sets the addressing mode (standard or extended format) to be used when
              triggering on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa
              (using ). The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe {STandard|EXTended}
            - TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe?

        **Info:**
            - ``STandard`` specifies the standard addressing mode.
            - ``EXTended`` specifies the extended addressing mode.
        """
        return self._mode

    @property
    def value(self) -> TriggerABusBItemCanIdentifierValue:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue`` command.

        **Description:**
            - This command sets the binary address value to be used when triggering on a CAN bus
              signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue <QString>
            - TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` is up to 29 bits specifying the binary identifier value. The only
              allowed characters in the QString are 0, 1, and X.
        """
        return self._value


class TriggerABusBItemCanFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype`` command.

    **Description:**
        - This command sets the frame type (data, remote, error or overload) to be used when
          triggering on a CAN bus signal. The trigger condition must be set to FRAMEtype (using ).
          B<x> is the bus number.The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
        - TRIGger:A:BUS:B<x>:CAN:FRAMEtype?

    **Info:**
        - ``DATa`` specifies a data frame type.
        - ``REMote`` specifies a remote frame type.
        - ``ERRor`` specifies an error frame type.
        - ``OVERLoad`` specifies an overload frame type.
    """


class TriggerABusBItemCanFdEsibit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit`` command.

    **Description:**
        - This command sets or queries the value of the error state indicator bit (ESI bit) for a
          CAN bus to triggering on. The bus number is specified by x. The trigger condition must be
          set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
          (recessive).
        - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
          (dominant).
        - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
    """


class TriggerABusBItemCanFdBrsbit(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit`` command.

    **Description:**
        - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN bus
          to triggering on. The bus number is specified by x. The trigger condition must be set to
          FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
        - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
          (fast data enabled).
        - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
          (fast data disabled).
        - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
    """


class TriggerABusBItemCanFd(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:FD`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.brsbit``: The ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit`` command.
        - ``.esibit``: The ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._brsbit = TriggerABusBItemCanFdBrsbit(device, f"{self._cmd_syntax}:BRSBit")
        self._esibit = TriggerABusBItemCanFdEsibit(device, f"{self._cmd_syntax}:ESIBit")

    @property
    def brsbit(self) -> TriggerABusBItemCanFdBrsbit:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit`` command.

        **Description:**
            - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN
              bus to triggering on. The bus number is specified by x. The trigger condition must be
              set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:CAN:FD:BRSBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
              (fast data enabled).
            - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
              (fast data disabled).
            - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
        """
        return self._brsbit

    @property
    def esibit(self) -> TriggerABusBItemCanFdEsibit:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit`` command.

        **Description:**
            - This command sets or queries the value of the error state indicator bit (ESI bit) for
              a CAN bus to triggering on. The bus number is specified by x. The trigger condition
              must be set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
            - TRIGger:A:BUS:B<x>:CAN:FD:ESIBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
              (recessive).
            - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
              (dominant).
            - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
        """
        return self._esibit


class TriggerABusBItemCanErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:ERRType`` command.

    **Description:**
        - This command sets or queries the type of error condition for a CAN bus to triggering on.
          The bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:ERRType?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:ERRType value``
          command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
        - TRIGger:A:BUS:B<x>:CAN:ERRType?

    **Info:**
        - ``ACKMISS`` specifies triggering on a missing ACK field.
        - ``BITSTUFFing`` specifies triggering on a bit stuffing error.
        - ``FORMERRor`` specifies triggering on a CAN FD form error. To use this option, the CAN
          standard must be set to FDISO or FDNONISO.
        - ``ANYERRor`` specifies triggering on any error type.
    """


class TriggerABusBItemCanDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue`` command.

    **Description:**
        - This command sets the binary data value to be used when triggering on a CAN bus signal.
          The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:CAN:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value in binary format. The only allowed characters in the
          QString are 0, 1, and X.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemCanDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe`` command.

    **Description:**
        - This command sets the length of the data string, in bytes, to be used when triggering on a
          CAN bus signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe <NR1>
        - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the length of the data string in bytes.
    """


class TriggerABusBItemCanDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier (<, >, =, ≠, ≤, ≥) to be used when triggering on a CAN bus
          signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
        - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the instrument to trigger when the data is less than the qualifier
          value.
        - ``MOREthan`` sets the instrument to trigger when the data is greater than the qualifier
          value.
        - ``EQual`` sets the instrument to trigger when the data is equal to the qualifier value.
        - ``UNEQual`` sets the instrument to trigger when the data is not equal to the qualifier
          value.
        - ``LESSEQual`` sets the instrument to trigger when the data is less than or equal to the
          qualifier value.
        - ``MOREEQual`` sets the instrument to trigger when the data is greater than or equal to the
          qualifier value.
    """  # noqa: E501


class TriggerABusBItemCanDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset value, in bytes, to use when triggering on
          the CAN data field. The bus number is specified by x. The trigger condition must be set to
          DATA or IDANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet <NR1>
        - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care), and the
          maximum is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD).
    """


class TriggerABusBItemCanDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection`` command.

    **Description:**
        - This command sets the data direction (read, write or 'nocare') to be used to search on a
          CAN bus signal. The trigger condition must be set to IDentifier (using ). The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
        - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?

    **Info:**
        - ``READ`` sets the CAN data direction to READ.
        - ``WRITE`` sets the CAN data direction to WRITE.
        - ``NOCARE`` sets the CAN data direction to either.
    """


class TriggerABusBItemCanData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection`` command.
        - ``.offset``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier`` command.
        - ``.size``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = TriggerABusBItemCanDataDirection(device, f"{self._cmd_syntax}:DIRection")
        self._offset = TriggerABusBItemCanDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerABusBItemCanDataQualifier(device, f"{self._cmd_syntax}:QUALifier")
        self._size = TriggerABusBItemCanDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = TriggerABusBItemCanDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> TriggerABusBItemCanDataDirection:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection`` command.

        **Description:**
            - This command sets the data direction (read, write or 'nocare') to be used to search on
              a CAN bus signal. The trigger condition must be set to IDentifier (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection {READ|WRITE|NOCARE}
            - TRIGger:A:BUS:B<x>:CAN:DATa:DIRection?

        **Info:**
            - ``READ`` sets the CAN data direction to READ.
            - ``WRITE`` sets the CAN data direction to WRITE.
            - ``NOCARE`` sets the CAN data direction to either.
        """
        return self._direction

    @property
    def offset(self) -> TriggerABusBItemCanDataOffset:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset value, in bytes, to use when triggering
              on the CAN data field. The bus number is specified by x. The trigger condition must be
              set to DATA or IDANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet <NR1>
            - TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care), and the
              maximum is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD).
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerABusBItemCanDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier (<, >, =, ≠, ≤, ≥) to be used when triggering on a CAN
              bus signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
            - TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the instrument to trigger when the data is less than the qualifier
              value.
            - ``MOREthan`` sets the instrument to trigger when the data is greater than the
              qualifier value.
            - ``EQual`` sets the instrument to trigger when the data is equal to the qualifier
              value.
            - ``UNEQual`` sets the instrument to trigger when the data is not equal to the qualifier
              value.
            - ``LESSEQual`` sets the instrument to trigger when the data is less than or equal to
              the qualifier value.
            - ``MOREEQual`` sets the instrument to trigger when the data is greater than or equal to
              the qualifier value.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> TriggerABusBItemCanDataSize:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe`` command.

        **Description:**
            - This command sets the length of the data string, in bytes, to be used when triggering
              on a CAN bus signal. The trigger condition must be set to IDANDDATA or DATa (using ).
              The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe <NR1>
            - TRIGger:A:BUS:B<x>:CAN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the length of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> TriggerABusBItemCanDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue`` command.

        **Description:**
            - This command sets the binary data value to be used when triggering on a CAN bus
              signal. The trigger condition must be set to IDANDDATA or DATa (using ). The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:CAN:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value in binary format. The only allowed characters in the
              QString are 0, 1, and X.
        """
        return self._value


class TriggerABusBItemCanCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN:CONDition`` command.

    **Description:**
        - This command sets the condition (start of frame, frame type, identifier, matching data,
          EOF, missing ACK field, bit-stuffing error) to be used when triggering on a CAN bus
          signal. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:CAN:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
        - TRIGger:A:BUS:B<x>:CAN:CONDition?

    **Info:**
        - ``SOF`` enables triggering on the start of frame.
        - ``FDBITS`` enables triggering on the values of the BRS and ESI bits in an FD packet.
        - ``FRAMEtype`` enables triggering on the type of frame.
        - ``IDentifier`` enables triggering on a matching identifier.
        - ``DATa`` enables triggering on matching data.
        - ``IDANDDATA`` enables triggering on a matching identifier and matching data.
        - ``EOF`` enables triggering on the end of frame.
        - ``ERRor`` enables triggering on a specified error condition.
    """  # noqa: E501


class TriggerABusBItemCan(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:CAN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:CAN:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:CAN:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:CAN:ERRType`` command.
        - ``.fd``: The ``TRIGger:A:BUS:B<x>:CAN:FD`` command tree.
        - ``.frametype``: The ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype`` command.
        - ``.identifier``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemCanCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemCanData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerABusBItemCanErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._fd = TriggerABusBItemCanFd(device, f"{self._cmd_syntax}:FD")
        self._frametype = TriggerABusBItemCanFrametype(device, f"{self._cmd_syntax}:FRAMEtype")
        self._identifier = TriggerABusBItemCanIdentifier(device, f"{self._cmd_syntax}:IDentifier")

    @property
    def condition(self) -> TriggerABusBItemCanCondition:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:CONDition`` command.

        **Description:**
            - This command sets the condition (start of frame, frame type, identifier, matching
              data, EOF, missing ACK field, bit-stuffing error) to be used when triggering on a CAN
              bus signal. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:CONDition {SOF|FRAMEtype|IDentifier|DATa|IDANDDATA|EOF|ERRor|FDBITS}
            - TRIGger:A:BUS:B<x>:CAN:CONDition?

        **Info:**
            - ``SOF`` enables triggering on the start of frame.
            - ``FDBITS`` enables triggering on the values of the BRS and ESI bits in an FD packet.
            - ``FRAMEtype`` enables triggering on the type of frame.
            - ``IDentifier`` enables triggering on a matching identifier.
            - ``DATa`` enables triggering on matching data.
            - ``IDANDDATA`` enables triggering on a matching identifier and matching data.
            - ``EOF`` enables triggering on the end of frame.
            - ``ERRor`` enables triggering on a specified error condition.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> TriggerABusBItemCanData:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:DIRection`` command.
            - ``.offset``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:QUALifier`` command.
            - ``.size``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:SIZe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:CAN:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerABusBItemCanErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:ERRType`` command.

        **Description:**
            - This command sets or queries the type of error condition for a CAN bus to triggering
              on. The bus number is specified by x. The trigger condition must be set to ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:ERRType?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor|ANYERRor}
            - TRIGger:A:BUS:B<x>:CAN:ERRType?

        **Info:**
            - ``ACKMISS`` specifies triggering on a missing ACK field.
            - ``BITSTUFFing`` specifies triggering on a bit stuffing error.
            - ``FORMERRor`` specifies triggering on a CAN FD form error. To use this option, the CAN
              standard must be set to FDISO or FDNONISO.
            - ``ANYERRor`` specifies triggering on any error type.
        """
        return self._errtype

    @property
    def fd(self) -> TriggerABusBItemCanFd:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:FD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FD?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.brsbit``: The ``TRIGger:A:BUS:B<x>:CAN:FD:BRSBit`` command.
            - ``.esibit``: The ``TRIGger:A:BUS:B<x>:CAN:FD:ESIBit`` command.
        """
        return self._fd

    @property
    def frametype(self) -> TriggerABusBItemCanFrametype:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype`` command.

        **Description:**
            - This command sets the frame type (data, remote, error or overload) to be used when
              triggering on a CAN bus signal. The trigger condition must be set to FRAMEtype (using
              ). B<x> is the bus number.The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:CAN:FRAMEtype {DATa|REMote|ERRor|OVERLoad}
            - TRIGger:A:BUS:B<x>:CAN:FRAMEtype?

        **Info:**
            - ``DATa`` specifies a data frame type.
            - ``REMote`` specifies a remote frame type.
            - ``ERRor`` specifies an error frame type.
            - ``OVERLoad`` specifies an overload frame type.
        """
        return self._frametype

    @property
    def identifier(self) -> TriggerABusBItemCanIdentifier:
        """Return the ``TRIGger:A:BUS:B<x>:CAN:IDentifier`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN:IDentifier?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:CAN:IDentifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:MODe`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier:VALue`` command.
        """
        return self._identifier


class TriggerABusBItemAudioDataWord(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD`` command.

    **Description:**
        - This command sets the alignment of the data (left, right or either) to be used to trigger
          on an audio bus signal. The trigger condition must be set to DATa using . The bus number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
        - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?

    **Info:**
        - ``EITher`` aligns the trigger data to either left or right.
        - ``LEFt`` aligns the trigger data to the left.
        - ``RIGht`` aligns the trigger data to the right.
    """


class TriggerABusBItemAudioDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue`` command.

    **Description:**
        - This command sets the lower word value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the trigger data lower word.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemAudioDataTdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the single or low data word to be
          used when triggering on an TDM audio bus signal. The trigger condition must be set to DATa
          using TRIGger:{A|B}``:BUS:B``{x}``:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
        - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the single or low data word to be used when
          triggering on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemAudioDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on an audio bus signal. The
          trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemAudioDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet`` command.

    **Description:**
        - This command sets the data offset value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATa using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
        - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is the data offset value.
    """


class TriggerABusBItemAudioDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue`` command.

    **Description:**
        - This command sets the upper word value to be used when triggering on an audio bus signal.
          The trigger condition must be set to DATA using . The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the upper word value to be used when triggering on an audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemAudioDataHitdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the high data word to be used when
          triggering on an TDM audio bus signal. The trigger condition must be set to DATa using
          TRIGger:{A|B}``:BUS:B<x>:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
        - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the high data word to be used when triggering
          on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemAudioData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hitdmvalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue`` command.
        - ``.offset``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier`` command.
        - ``.tdmvalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue`` command.
        - ``.word``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hitdmvalue = TriggerABusBItemAudioDataHitdmvalue(
            device, f"{self._cmd_syntax}:HITDMVALue"
        )
        self._hivalue = TriggerABusBItemAudioDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._offset = TriggerABusBItemAudioDataOffset(device, f"{self._cmd_syntax}:OFFSet")
        self._qualifier = TriggerABusBItemAudioDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._tdmvalue = TriggerABusBItemAudioDataTdmvalue(device, f"{self._cmd_syntax}:TDMVALue")
        self._value = TriggerABusBItemAudioDataValue(device, f"{self._cmd_syntax}:VALue")
        self._word = TriggerABusBItemAudioDataWord(device, f"{self._cmd_syntax}:WORD")

    @property
    def hitdmvalue(self) -> TriggerABusBItemAudioDataHitdmvalue:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the high data word to be used
              when triggering on an TDM audio bus signal. The trigger condition must be set to DATa
              using TRIGger:{A|B}``:BUS:B<x>:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue <QString>
            - TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the high data word to be used when
              triggering on an TDM audio bus signal.
        """
        return self._hitdmvalue

    @property
    def hivalue(self) -> TriggerABusBItemAudioDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue`` command.

        **Description:**
            - This command sets the upper word value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATA using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the upper word value to be used when triggering on an audio bus
              signal.
        """
        return self._hivalue

    @property
    def offset(self) -> TriggerABusBItemAudioDataOffset:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet`` command.

        **Description:**
            - This command sets the data offset value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATa using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet <NR1>
            - TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is the data offset value.
        """
        return self._offset

    @property
    def qualifier(self) -> TriggerABusBItemAudioDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on an audio bus signal. The
              trigger condition must be set to DATa using . The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier {LESSthan| MOREthan|EQual|UNEQual|LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def tdmvalue(self) -> TriggerABusBItemAudioDataTdmvalue:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the single or low data word to
              be used when triggering on an TDM audio bus signal. The trigger condition must be set
              to DATa using TRIGger:{A|B}``:BUS:B``{x}``:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue <QString>
            - TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the single or low data word to be used
              when triggering on an TDM audio bus signal.
        """
        return self._tdmvalue

    @property
    def value(self) -> TriggerABusBItemAudioDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue`` command.

        **Description:**
            - This command sets the lower word value to be used when triggering on an audio bus
              signal. The trigger condition must be set to DATa using . The bus number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:AUDio:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the trigger data lower word.
        """
        return self._value

    @property
    def word(self) -> TriggerABusBItemAudioDataWord:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD`` command.

        **Description:**
            - This command sets the alignment of the data (left, right or either) to be used to
              trigger on an audio bus signal. The trigger condition must be set to DATa using . The
              bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD {EITher|LEFt|RIGht}
            - TRIGger:A:BUS:B<x>:AUDio:DATa:WORD?

        **Info:**
            - ``EITher`` aligns the trigger data to either left or right.
            - ``LEFt`` aligns the trigger data to the left.
            - ``RIGht`` aligns the trigger data to the right.
        """
        return self._word


class TriggerABusBItemAudioCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio:CONDition`` command.

    **Description:**
        - This command sets the condition (word select, start of frame, or matching data) to be used
          when triggering on an audio bus signal. The bus number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:CONDition?``
          query and raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:AUDio:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:AUDio:CONDition {SOF|DATa}
        - TRIGger:A:BUS:B<x>:AUDio:CONDition?

    **Info:**
        - ``SOF`` enables triggering on a word select or start of frame (depending on Audio Type).
        - ``DATa`` enables triggering on matching data.
    """


class TriggerABusBItemAudio(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:AUDio`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:AUDio:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemAudioCondition(device, f"{self._cmd_syntax}:CONDition")
        self._data = TriggerABusBItemAudioData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> TriggerABusBItemAudioCondition:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:CONDition`` command.

        **Description:**
            - This command sets the condition (word select, start of frame, or matching data) to be
              used when triggering on an audio bus signal. The bus number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:CONDition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:AUDio:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:AUDio:CONDition {SOF|DATa}
            - TRIGger:A:BUS:B<x>:AUDio:CONDition?

        **Info:**
            - ``SOF`` enables triggering on a word select or start of frame (depending on Audio
              Type).
            - ``DATa`` enables triggering on matching data.
        """
        return self._condition

    @property
    def data(self) -> TriggerABusBItemAudioData:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio:DATa?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hitdmvalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HITDMVALue`` command.
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:HIVALue`` command.
            - ``.offset``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:OFFSet`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:QUALifier`` command.
            - ``.tdmvalue``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:TDMVALue`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:VALue`` command.
            - ``.word``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa:WORD`` command.
        """
        return self._data


class TriggerABusBItemArinc429aSsmValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue`` command.

    **Description:**
        - This command sets or queries the label value when triggering on an ARINC429 SSM field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA,
          and the data format must be set to DATA or SDIDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aSsm(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemArinc429aSsmValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemArinc429aSsmValue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue`` command.

        **Description:**
            - This command sets or queries the label value when triggering on an ARINC429 SSM field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA or SDIDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerABusBItemArinc429aSdiValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue`` command.

    **Description:**
        - This command sets or queries the label when triggering on an ARINC429 SDI field. The bus
          number is specified by x. The trigger condition must be set to DATa or LABELANDDATA, and
          the data format must be set to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aSdi(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = TriggerABusBItemArinc429aSdiValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> TriggerABusBItemArinc429aSdiValue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue`` command.

        **Description:**
            - This command sets or queries the label when triggering on an ARINC429 SDI field. The
              bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerABusBItemArinc429aLabelValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on an ARINC429 label field. The
          bus number is specified by x. The trigger condition must be set to LABel or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aLabelQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on label data for an
          ARINC429 bus signal. The bus number is specified by x. The trigger condition must be set
          to LABel or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemArinc429aLabelHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when triggering on an ARINC429 label field.
          The bus number is specified by x. The trigger condition must be set to LABel, and the
          label qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aLabel(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemArinc429aLabelHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemArinc429aLabelQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemArinc429aLabelValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemArinc429aLabelHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when triggering on an ARINC429 label
              field. The bus number is specified by x. The trigger condition must be set to LABel,
              and the label qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemArinc429aLabelQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on label data
              for an ARINC429 bus signal. The bus number is specified by x. The trigger condition
              must be set to LABel or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemArinc429aLabelValue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on an ARINC429 label field.
              The bus number is specified by x. The trigger condition must be set to LABel or
              LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerABusBItemArinc429aErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the error type when triggering on an ARINC429 bus signal. The
          bus number is specified by x. The trigger condition must be set to ERRor.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
        - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?

    **Info:**
        - ``ANY`` sets the error type to match any of the other available error types.
        - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
          data).
        - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time between
          two packets on the bus).
    """


class TriggerABusBItemArinc429aDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the low value when triggering on an ARINC429 data field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when triggering on data in the DATA
          field for an ARINC429 bus signal. The bus number is specified by x. The trigger condition
          must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class TriggerABusBItemArinc429aDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when trigger on an ARINC429 data field. The
          bus number is specified by x. The trigger condition must be set to DATa or LABELANDDATA,
          and the data qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
        - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class TriggerABusBItemArinc429aData(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.
        - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.
        - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = TriggerABusBItemArinc429aDataHivalue(device, f"{self._cmd_syntax}:HIVALue")
        self._qualifier = TriggerABusBItemArinc429aDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = TriggerABusBItemArinc429aDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> TriggerABusBItemArinc429aDataHivalue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when trigger on an ARINC429 data field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA, and the data qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> TriggerABusBItemArinc429aDataQualifier:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when triggering on data in the
              DATA field for an ARINC429 bus signal. The bus number is specified by x. The trigger
              condition must be set to DATa or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> TriggerABusBItemArinc429aDataValue:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the low value when triggering on an ARINC429 data field.
              The bus number is specified by x. The trigger condition must be set to DATa or
              LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue <QString>
            - TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class TriggerABusBItemArinc429aCondition(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition`` command.

    **Description:**
        - This command specifies a field or condition for an ARINC429 bus to trigger on. The bus
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - TRIGger:A:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
        - TRIGger:A:BUS:B<x>:ARINC429A:CONDition?

    **Info:**
        - ``SOW`` specifies triggering on the first bit of a word.
        - ``LABel`` specifies triggering on a matching label.
        - ``DATa`` specifies triggering on matching packet data field(s).
        - ``LABELANDDATA`` specifies triggering on a matching label and matching packet data
          field(s).
        - ``EOW`` specifies triggering on the 32nd bit of a word.
        - ``ERRor`` specifies triggering on a specified error condition.
    """


class TriggerABusBItemArinc429a(SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>:ARINC429A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A?`` query.
        - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition`` command.
        - ``.data``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa`` command tree.
        - ``.errtype``: The ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe`` command.
        - ``.label``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel`` command tree.
        - ``.sdi``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI`` command tree.
        - ``.ssm``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = TriggerABusBItemArinc429aCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = TriggerABusBItemArinc429aData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = TriggerABusBItemArinc429aErrtype(device, f"{self._cmd_syntax}:ERRTYPe")
        self._label = TriggerABusBItemArinc429aLabel(device, f"{self._cmd_syntax}:LABel")
        self._sdi = TriggerABusBItemArinc429aSdi(device, f"{self._cmd_syntax}:SDI")
        self._ssm = TriggerABusBItemArinc429aSsm(device, f"{self._cmd_syntax}:SSM")

    @property
    def condition(self) -> TriggerABusBItemArinc429aCondition:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition`` command.

        **Description:**
            - This command specifies a field or condition for an ARINC429 bus to trigger on. The bus
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA |EOW|ERRor}
            - TRIGger:A:BUS:B<x>:ARINC429A:CONDition?

        **Info:**
            - ``SOW`` specifies triggering on the first bit of a word.
            - ``LABel`` specifies triggering on a matching label.
            - ``DATa`` specifies triggering on matching packet data field(s).
            - ``LABELANDDATA`` specifies triggering on a matching label and matching packet data
              field(s).
            - ``EOW`` specifies triggering on the 32nd bit of a word.
            - ``ERRor`` specifies triggering on a specified error condition.
        """
        return self._condition

    @property
    def data(self) -> TriggerABusBItemArinc429aData:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:DATa?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> TriggerABusBItemArinc429aErrtype:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe`` command.

        **Description:**
            - This command sets or queries the error type when triggering on an ARINC429 bus signal.
              The bus number is specified by x. The trigger condition must be set to ERRor.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe value`` command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
            - TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe?

        **Info:**
            - ``ANY`` sets the error type to match any of the other available error types.
            - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
              data).
            - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time
              between two packets on the bus).
        """
        return self._errtype

    @property
    def label(self) -> TriggerABusBItemArinc429aLabel:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:LABel?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:LABel?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:HIVALue`` command.
            - ``.qualifier``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:QUALifier`` command.
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel:VALue`` command.
        """
        return self._label

    @property
    def sdi(self) -> TriggerABusBItemArinc429aSdi:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SDI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SDI?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI:VALue`` command.
        """
        return self._sdi

    @property
    def ssm(self) -> TriggerABusBItemArinc429aSsm:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A:SSM?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``TRIGger:A:BUS:B<x>:ARINC429A:SSM?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM:VALue`` command.
        """
        return self._ssm


#  pylint: disable=too-many-instance-attributes
class TriggerABusBItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``TRIGger:A:BUS:B<x>`` command tree.

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

    Properties:
        - ``.arinc429a``: The ``TRIGger:A:BUS:B<x>:ARINC429A`` command tree.
        - ``.audio``: The ``TRIGger:A:BUS:B<x>:AUDio`` command tree.
        - ``.can``: The ``TRIGger:A:BUS:B<x>:CAN`` command tree.
        - ``.ethernet``: The ``TRIGger:A:BUS:B<x>:ETHERnet`` command tree.
        - ``.flexray``: The ``TRIGger:A:BUS:B<x>:FLEXray`` command tree.
        - ``.i2c``: The ``TRIGger:A:BUS:B<x>:I2C`` command tree.
        - ``.i3c``: The ``TRIGger:A:BUS:B<x>:I3C`` command tree.
        - ``.lin``: The ``TRIGger:A:BUS:B<x>:LIN`` command tree.
        - ``.mil1553b``: The ``TRIGger:A:BUS:B<x>:MIL1553B`` command tree.
        - ``.parallel``: The ``TRIGger:A:BUS:B<x>:PARallel`` command tree.
        - ``.rs232c``: The ``TRIGger:A:BUS:B<x>:RS232C`` command tree.
        - ``.sent``: The ``TRIGger:A:BUS:B<x>:SENT`` command tree.
        - ``.spi``: The ``TRIGger:A:BUS:B<x>:SPI`` command tree.
        - ``.spmi``: The ``TRIGger:A:BUS:B<x>:SPMI`` command tree.
        - ``.svid``: The ``TRIGger:A:BUS:B<x>:SVID`` command tree.
        - ``.usb``: The ``TRIGger:A:BUS:B<x>:USB`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._arinc429a = TriggerABusBItemArinc429a(device, f"{self._cmd_syntax}:ARINC429A")
        self._audio = TriggerABusBItemAudio(device, f"{self._cmd_syntax}:AUDio")
        self._can = TriggerABusBItemCan(device, f"{self._cmd_syntax}:CAN")
        self._ethernet = TriggerABusBItemEthernet(device, f"{self._cmd_syntax}:ETHERnet")
        self._flexray = TriggerABusBItemFlexray(device, f"{self._cmd_syntax}:FLEXray")
        self._i2c = TriggerABusBItemI2c(device, f"{self._cmd_syntax}:I2C")
        self._i3c = TriggerABusBItemI3c(device, f"{self._cmd_syntax}:I3C")
        self._lin = TriggerABusBItemLin(device, f"{self._cmd_syntax}:LIN")
        self._mil1553b = TriggerABusBItemMil1553b(device, f"{self._cmd_syntax}:MIL1553B")
        self._parallel = TriggerABusBItemParallel(device, f"{self._cmd_syntax}:PARallel")
        self._rs232c = TriggerABusBItemRs232c(device, f"{self._cmd_syntax}:RS232C")
        self._sent = TriggerABusBItemSent(device, f"{self._cmd_syntax}:SENT")
        self._spi = TriggerABusBItemSpi(device, f"{self._cmd_syntax}:SPI")
        self._spmi = TriggerABusBItemSpmi(device, f"{self._cmd_syntax}:SPMI")
        self._svid = TriggerABusBItemSvid(device, f"{self._cmd_syntax}:SVID")
        self._usb = TriggerABusBItemUsb(device, f"{self._cmd_syntax}:USB")

    @property
    def arinc429a(self) -> TriggerABusBItemArinc429a:
        """Return the ``TRIGger:A:BUS:B<x>:ARINC429A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ARINC429A?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:ARINC429A:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:ARINC429A:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:ARINC429A:ERRTYPe`` command.
            - ``.label``: The ``TRIGger:A:BUS:B<x>:ARINC429A:LABel`` command tree.
            - ``.sdi``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SDI`` command tree.
            - ``.ssm``: The ``TRIGger:A:BUS:B<x>:ARINC429A:SSM`` command tree.
        """
        return self._arinc429a

    @property
    def audio(self) -> TriggerABusBItemAudio:
        """Return the ``TRIGger:A:BUS:B<x>:AUDio`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:AUDio?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:AUDio?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:AUDio:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:AUDio:DATa`` command tree.
        """
        return self._audio

    @property
    def can(self) -> TriggerABusBItemCan:
        """Return the ``TRIGger:A:BUS:B<x>:CAN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:CAN?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:CAN?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:CAN:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:CAN:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:CAN:ERRType`` command.
            - ``.fd``: The ``TRIGger:A:BUS:B<x>:CAN:FD`` command tree.
            - ``.frametype``: The ``TRIGger:A:BUS:B<x>:CAN:FRAMEtype`` command.
            - ``.identifier``: The ``TRIGger:A:BUS:B<x>:CAN:IDentifier`` command tree.
        """
        return self._can

    @property
    def ethernet(self) -> TriggerABusBItemEthernet:
        """Return the ``TRIGger:A:BUS:B<x>:ETHERnet`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:ETHERnet?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:ETHERnet:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:ETHERnet:DATa`` command tree.
            - ``.ipheader``: The ``TRIGger:A:BUS:B<x>:ETHERnet:IPHeader`` command tree.
            - ``.mac``: The ``TRIGger:A:BUS:B<x>:ETHERnet:MAC`` command tree.
            - ``.qtag``: The ``TRIGger:A:BUS:B<x>:ETHERnet:QTAG`` command tree.
            - ``.tcpheader``: The ``TRIGger:A:BUS:B<x>:ETHERnet:TCPHeader`` command tree.
        """
        return self._ethernet

    @property
    def flexray(self) -> TriggerABusBItemFlexray:
        """Return the ``TRIGger:A:BUS:B<x>:FLEXray`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:FLEXray?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:FLEXray:CONDition`` command.
            - ``.cyclecount``: The ``TRIGger:A:BUS:B<x>:FLEXray:CYCLEcount`` command tree.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:FLEXray:DATa`` command tree.
            - ``.eoftype``: The ``TRIGger:A:BUS:B<x>:FLEXray:EOFTYPE`` command.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:FLEXray:ERRTYPE`` command.
            - ``.frameid``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEID`` command tree.
            - ``.frametype``: The ``TRIGger:A:BUS:B<x>:FLEXray:FRAMEType`` command.
            - ``.header``: The ``TRIGger:A:BUS:B<x>:FLEXray:HEADER`` command tree.
        """
        return self._flexray

    @property
    def i2c(self) -> TriggerABusBItemI2c:
        """Return the ``TRIGger:A:BUS:B<x>:I2C`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I2C?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I2C?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:I2C:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:I2C:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:I2C:DATa`` command tree.
        """
        return self._i2c

    @property
    def i3c(self) -> TriggerABusBItemI3c:
        """Return the ``TRIGger:A:BUS:B<x>:I3C`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:I3C?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:I3C?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:I3C:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:I3C:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:I3C:DATa`` command tree.
            - ``.errortype``: The ``TRIGger:A:BUS:B<x>:I3C:ERRORTYPe`` command.
            - ``.sdr``: The ``TRIGger:A:BUS:B<x>:I3C:SDR`` command tree.
            - ``.tbit``: The ``TRIGger:A:BUS:B<x>:I3C:TBIT`` command tree.
        """
        return self._i3c

    @property
    def lin(self) -> TriggerABusBItemLin:
        """Return the ``TRIGger:A:BUS:B<x>:LIN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:LIN?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:LIN?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:LIN:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:LIN:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:LIN:ERRTYPE`` command.
            - ``.identifier``: The ``TRIGger:A:BUS:B<x>:LIN:IDentifier`` command tree.
        """
        return self._lin

    @property
    def mil1553b(self) -> TriggerABusBItemMil1553b:
        """Return the ``TRIGger:A:BUS:B<x>:MIL1553B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:MIL1553B?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``TRIGger:A:BUS:B<x>:MIL1553B:COMMAND`` command tree.
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:MIL1553B:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:MIL1553B:DATa`` command tree.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:MIL1553B:ERRTYPe`` command.
            - ``.status``: The ``TRIGger:A:BUS:B<x>:MIL1553B:STATus`` command tree.
            - ``.time``: The ``TRIGger:A:BUS:B<x>:MIL1553B:TIMe`` command tree.
        """
        return self._mil1553b

    @property
    def parallel(self) -> TriggerABusBItemParallel:
        """Return the ``TRIGger:A:BUS:B<x>:PARallel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:PARallel?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:PARallel?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``TRIGger:A:BUS:B<x>:PARallel:DATa`` command tree.
        """
        return self._parallel

    @property
    def rs232c(self) -> TriggerABusBItemRs232c:
        """Return the ``TRIGger:A:BUS:B<x>:RS232C`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:RS232C?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:RS232C?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:RS232C:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:RS232C:DATa`` command tree.
        """
        return self._rs232c

    @property
    def sent(self) -> TriggerABusBItemSent:
        """Return the ``TRIGger:A:BUS:B<x>:SENT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SENT?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SENT?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the number of the bus waveform.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:SENT:CONDition`` command.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:SENT:ERRType`` command.
            - ``.fast``: The ``TRIGger:A:BUS:B<x>:SENT:FAST`` command tree.
            - ``.pause``: The ``TRIGger:A:BUS:B<x>:SENT:PAUSE`` command tree.
            - ``.slow``: The ``TRIGger:A:BUS:B<x>:SENT:SLOW`` command tree.
        """
        return self._sent

    @property
    def spi(self) -> TriggerABusBItemSpi:
        """Return the ``TRIGger:A:BUS:B<x>:SPI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPI?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPI?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:SPI:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:SPI:DATa`` command tree.
        """
        return self._spi

    @property
    def spmi(self) -> TriggerABusBItemSpmi:
        """Return the ``TRIGger:A:BUS:B<x>:SPMI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SPMI?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SPMI?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:SPMI:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:SPMI:DATa`` command tree.
            - ``.masteraddress``: The ``TRIGger:A:BUS:B<x>:SPMI:MASTERADDRess`` command tree.
            - ``.noresponse``: The ``TRIGger:A:BUS:B<x>:SPMI:NORESPonse`` command.
            - ``.registeraddress``: The ``TRIGger:A:BUS:B<x>:SPMI:REGISTERADDRess`` command tree.
            - ``.slaveaddress``: The ``TRIGger:A:BUS:B<x>:SPMI:SLAVEADDRess`` command tree.
        """
        return self._spmi

    @property
    def svid(self) -> TriggerABusBItemSvid:
        """Return the ``TRIGger:A:BUS:B<x>:SVID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:SVID?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:SVID?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``TRIGger:A:BUS:B<x>:SVID:COMMand`` command tree.
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:SVID:CONDition`` command.
            - ``.error``: The ``TRIGger:A:BUS:B<x>:SVID:ERRor`` command tree.
            - ``.parity``: The ``TRIGger:A:BUS:B<x>:SVID:PARity`` command tree.
            - ``.payload``: The ``TRIGger:A:BUS:B<x>:SVID:PAYLoad`` command tree.
            - ``.slave``: The ``TRIGger:A:BUS:B<x>:SVID:SLAVe`` command tree.
        """
        return self._svid

    @property
    def usb(self) -> TriggerABusBItemUsb:
        """Return the ``TRIGger:A:BUS:B<x>:USB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:B<x>:USB?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:B<x>:USB?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        **Info:**
            - ``B<x>`` is the bus identifier number.

        Sub-properties:
            - ``.address``: The ``TRIGger:A:BUS:B<x>:USB:ADDRess`` command tree.
            - ``.condition``: The ``TRIGger:A:BUS:B<x>:USB:CONDition`` command.
            - ``.data``: The ``TRIGger:A:BUS:B<x>:USB:DATa`` command tree.
            - ``.endpoint``: The ``TRIGger:A:BUS:B<x>:USB:ENDPoint`` command tree.
            - ``.errtype``: The ``TRIGger:A:BUS:B<x>:USB:ERRType`` command.
            - ``.handshaketype``: The ``TRIGger:A:BUS:B<x>:USB:HANDSHAKEType`` command.
            - ``.sofframenumber``: The ``TRIGger:A:BUS:B<x>:USB:SOFFRAMENUMber`` command.
            - ``.specialtype``: The ``TRIGger:A:BUS:B<x>:USB:SPECIALType`` command.
            - ``.split``: The ``TRIGger:A:BUS:B<x>:USB:SPLit`` command tree.
            - ``.tokentype``: The ``TRIGger:A:BUS:B<x>:USB:TOKENType`` command.
        """
        return self._usb


class TriggerABus(SCPICmdRead):
    """The ``TRIGger:A:BUS`` command tree.

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

    Properties:
        - ``.b``: The ``TRIGger:A:BUS:B<x>`` command tree.
        - ``.source``: The ``TRIGger:A:BUS:SOUrce`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._b: Dict[int, TriggerABusBItem] = DefaultDictPassKeyToFactory(
            lambda x: TriggerABusBItem(device, f"{self._cmd_syntax}:B{x}")
        )
        self._source = TriggerABusSource(device, f"{self._cmd_syntax}:SOUrce")

    @property
    def b(self) -> Dict[int, TriggerABusBItem]:
        """Return the ``TRIGger:A:BUS:B<x>`` command tree.

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

        Sub-properties:
            - ``.arinc429a``: The ``TRIGger:A:BUS:B<x>:ARINC429A`` command tree.
            - ``.audio``: The ``TRIGger:A:BUS:B<x>:AUDio`` command tree.
            - ``.can``: The ``TRIGger:A:BUS:B<x>:CAN`` command tree.
            - ``.ethernet``: The ``TRIGger:A:BUS:B<x>:ETHERnet`` command tree.
            - ``.flexray``: The ``TRIGger:A:BUS:B<x>:FLEXray`` command tree.
            - ``.i2c``: The ``TRIGger:A:BUS:B<x>:I2C`` command tree.
            - ``.i3c``: The ``TRIGger:A:BUS:B<x>:I3C`` command tree.
            - ``.lin``: The ``TRIGger:A:BUS:B<x>:LIN`` command tree.
            - ``.mil1553b``: The ``TRIGger:A:BUS:B<x>:MIL1553B`` command tree.
            - ``.parallel``: The ``TRIGger:A:BUS:B<x>:PARallel`` command tree.
            - ``.rs232c``: The ``TRIGger:A:BUS:B<x>:RS232C`` command tree.
            - ``.sent``: The ``TRIGger:A:BUS:B<x>:SENT`` command tree.
            - ``.spi``: The ``TRIGger:A:BUS:B<x>:SPI`` command tree.
            - ``.spmi``: The ``TRIGger:A:BUS:B<x>:SPMI`` command tree.
            - ``.svid``: The ``TRIGger:A:BUS:B<x>:SVID`` command tree.
            - ``.usb``: The ``TRIGger:A:BUS:B<x>:USB`` command tree.
        """
        return self._b

    @property
    def source(self) -> TriggerABusSource:
        """Return the ``TRIGger:A:BUS:SOUrce`` command.

        **Description:**
            - This command sets or queries the source bus for a bus trigger.

        **Usage:**
            - Using the ``.query()`` method will send the ``TRIGger:A:BUS:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the ``TRIGger:A:BUS:SOUrce?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``TRIGger:A:BUS:SOUrce value``
              command.

        **SCPI Syntax:**

        ::

            - TRIGger:A:BUS:SOUrce B<x>
            - TRIGger:A:BUS:SOUrce?

        **Info:**
            - ``B<x>`` sets the selected source to the bus.
        """
        return self._source


#  pylint: disable=too-many-instance-attributes
class TriggerA(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger:A`` command tree.

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

    Properties:
        - ``.holdoff``: The ``TRIGger:A:HOLDoff`` command tree.
        - ``.logicqualification``: The ``TRIGger:A:LOGICQUALification`` command.
        - ``.mode``: The ``TRIGger:A:MODe`` command.
        - ``.bus``: The ``TRIGger:A:BUS`` command tree.
        - ``.edge``: The ``TRIGger:A:EDGE`` command tree.
        - ``.level``: The ``TRIGger:A:LEVel`` command tree.
        - ``.logicpattern``: The ``TRIGger:A:LOGICPattern`` command tree.
        - ``.logic``: The ``TRIGger:A:LOGIc`` command tree.
        - ``.lowerthreshold``: The ``TRIGger:A:LOWerthreshold`` command tree.
        - ``.pulsewidth``: The ``TRIGger:A:PULSEWidth`` command tree.
        - ``.runt``: The ``TRIGger:A:RUNT`` command tree.
        - ``.setholdlogicval``: The ``TRIGger:A:SETHOLDLogicval`` command tree.
        - ``.sethold``: The ``TRIGger:A:SETHold`` command tree.
        - ``.timeout``: The ``TRIGger:A:TIMEOut`` command tree.
        - ``.transition``: The ``TRIGger:A:TRANsition`` command tree.
        - ``.type``: The ``TRIGger:A:TYPe`` command.
        - ``.upperthreshold``: The ``TRIGger:A:UPPerthreshold`` command tree.
        - ``.window``: The ``TRIGger:A:WINdow`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._holdoff = TriggerAHoldoff(device, f"{self._cmd_syntax}:HOLDoff")
        self._logicqualification = TriggerALogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._mode = TriggerAMode(device, f"{self._cmd_syntax}:MODe")
        self._bus = TriggerABus(device, f"{self._cmd_syntax}:BUS")
        self._edge = TriggerAEdge(device, f"{self._cmd_syntax}:EDGE")
        self._level = TriggerALevel(device, f"{self._cmd_syntax}:LEVel")
        self._logicpattern = TriggerALogicpattern(device, f"{self._cmd_syntax}:LOGICPattern")
        self._logic = TriggerALogic(device, f"{self._cmd_syntax}:LOGIc")
        self._lowerthreshold = TriggerALowerthreshold(device, f"{self._cmd_syntax}:LOWerthreshold")
        self._pulsewidth = TriggerAPulsewidth(device, f"{self._cmd_syntax}:PULSEWidth")
        self._runt = TriggerARunt(device, f"{self._cmd_syntax}:RUNT")
        self._setholdlogicval = TriggerASetholdlogicval(
            device, f"{self._cmd_syntax}:SETHOLDLogicval"
        )
        self._sethold = TriggerASethold(device, f"{self._cmd_syntax}:SETHold")
        self._timeout = TriggerATimeout(device, f"{self._cmd_syntax}:TIMEOut")
        self._transition = TriggerATransition(device, f"{self._cmd_syntax}:TRANsition")
        self._type = TriggerAType(device, f"{self._cmd_syntax}:TYPe")
        self._upperthreshold = TriggerAUpperthreshold(device, f"{self._cmd_syntax}:UPPerthreshold")
        self._window = TriggerAWindow(device, f"{self._cmd_syntax}:WINdow")

    @property
    def holdoff(self) -> TriggerAHoldoff:
        """Return the ``TRIGger:A:HOLDoff`` command tree.

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

        Sub-properties:
            - ``.by``: The ``TRIGger:A:HOLDoff:BY`` command.
            - ``.time``: The ``TRIGger:A:HOLDoff:TIMe`` command.
        """
        return self._holdoff

    @property
    def logicqualification(self) -> TriggerALogicqualification:
        """Return the ``TRIGger:A:LOGICQUALification`` command.

        **Description:**
            - This command sets or queries the type of logic qualification to perform.

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

        **SCPI Syntax:**

        ::

            - TRIGger:A:LOGICQUALification {AND|OR|NAND|NOR}
            - TRIGger:A:LOGICQUALification?

        **Info:**
            - ``AND`` specifies to trigger if all conditions are true.
            - ``NANd`` specifies to trigger if any of the conditions are false.
            - ``NOR`` specifies to trigger if all conditions are false.
            - ``OR`` specifies to trigger if any of the conditions are true.
        """
        return self._logicqualification

    @property
    def mode(self) -> TriggerAMode:
        """Return the ``TRIGger:A:MODe`` command.

        **Description:**
            - This command sets or queries the A trigger mode. This command is equivalent to pushing
              the Mode button on the front panel.

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

        **SCPI Syntax:**

        ::

            - TRIGger:A:MODe {AUTO|NORMal}
            - TRIGger:A:MODe?

        **Info:**
            - ``AUTO`` generates a trigger if one is not detected within a specified time period.
            - ``NORMal`` waits for a valid trigger event.
        """
        return self._mode

    @property
    def bus(self) -> TriggerABus:
        """Return the ``TRIGger:A:BUS`` command tree.

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

        Sub-properties:
            - ``.b``: The ``TRIGger:A:BUS:B<x>`` command tree.
            - ``.source``: The ``TRIGger:A:BUS:SOUrce`` command.
        """
        return self._bus

    @property
    def edge(self) -> TriggerAEdge:
        """Return the ``TRIGger:A:EDGE`` command tree.

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

        Sub-properties:
            - ``.coupling``: The ``TRIGger:A:EDGE:COUPling`` command.
            - ``.slope``: The ``TRIGger:A:EDGE:SLOpe`` command.
            - ``.source``: The ``TRIGger:A:EDGE:SOUrce`` command.
        """
        return self._edge

    @property
    def level(self) -> TriggerALevel:
        """Return the ``TRIGger:A:LEVel`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:A:LEVel:CH<x>`` command.
        """
        return self._level

    @property
    def logicpattern(self) -> TriggerALogicpattern:
        """Return the ``TRIGger:A:LOGICPattern`` command tree.

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

        Sub-properties:
            - ``.a``: The ``TRIGger:A:LOGICPattern:A`` command.
        """
        return self._logicpattern

    @property
    def logic(self) -> TriggerALogic:
        """Return the ``TRIGger:A:LOGIc`` command tree.

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

        Sub-properties:
            - ``.deltatime``: The ``TRIGger:A:LOGIc:DELTatime`` command.
            - ``.function``: The ``TRIGger:A:LOGIc:FUNCtion`` command.
            - ``.input``: The ``TRIGger:A:LOGIc:INPut`` command tree.
            - ``.polarity``: The ``TRIGger:A:LOGIc:POLarity`` command.
            - ``.useclockedge``: The ``TRIGger:A:LOGIc:USECLockedge`` command.
            - ``.when``: The ``TRIGger:A:LOGIc:WHEn`` command.
        """
        return self._logic

    @property
    def lowerthreshold(self) -> TriggerALowerthreshold:
        """Return the ``TRIGger:A:LOWerthreshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:A:LOWerthreshold:CH<x>`` command.
        """
        return self._lowerthreshold

    @property
    def pulsewidth(self) -> TriggerAPulsewidth:
        """Return the ``TRIGger:A:PULSEWidth`` command tree.

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

        Sub-properties:
            - ``.highlimit``: The ``TRIGger:A:PULSEWidth:HIGHLimit`` command.
            - ``.logicqualification``: The ``TRIGger:A:PULSEWidth:LOGICQUALification`` command.
            - ``.lowlimit``: The ``TRIGger:A:PULSEWidth:LOWLimit`` command.
            - ``.polarity``: The ``TRIGger:A:PULSEWidth:POLarity`` command.
            - ``.source``: The ``TRIGger:A:PULSEWidth:SOUrce`` command.
            - ``.when``: The ``TRIGger:A:PULSEWidth:WHEn`` command.
        """
        return self._pulsewidth

    @property
    def runt(self) -> TriggerARunt:
        """Return the ``TRIGger:A:RUNT`` command tree.

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

        Sub-properties:
            - ``.logicqualification``: The ``TRIGger:A:RUNT:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:A:RUNT:POLarity`` command.
            - ``.source``: The ``TRIGger:A:RUNT:SOUrce`` command.
            - ``.when``: The ``TRIGger:A:RUNT:WHEn`` command.
            - ``.width``: The ``TRIGger:A:RUNT:WIDth`` command.
        """
        return self._runt

    @property
    def setholdlogicval(self) -> TriggerASetholdlogicval:
        """Return the ``TRIGger:A:SETHOLDLogicval`` command tree.

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

        Sub-properties:
            - ``.a``: The ``TRIGger:A:SETHOLDLogicval:A`` command.
        """
        return self._setholdlogicval

    @property
    def sethold(self) -> TriggerASethold:
        """Return the ``TRIGger:A:SETHold`` command tree.

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

        Sub-properties:
            - ``.clock``: The ``TRIGger:A:SETHold:CLOCk`` command tree.
            - ``.holdtime``: The ``TRIGger:A:SETHold:HOLDTime`` command.
            - ``.settime``: The ``TRIGger:A:SETHold:SETTime`` command.
        """
        return self._sethold

    @property
    def timeout(self) -> TriggerATimeout:
        """Return the ``TRIGger:A:TIMEOut`` command tree.

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

        Sub-properties:
            - ``.logicqualification``: The ``TRIGger:A:TIMEOut:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:A:TIMEOut:POLarity`` command.
            - ``.source``: The ``TRIGger:A:TIMEOut:SOUrce`` command.
            - ``.time``: The ``TRIGger:A:TIMEOut:TIMe`` command.
        """
        return self._timeout

    @property
    def transition(self) -> TriggerATransition:
        """Return the ``TRIGger:A:TRANsition`` command tree.

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

        Sub-properties:
            - ``.deltatime``: The ``TRIGger:A:TRANsition:DELTatime`` command.
            - ``.logicqualification``: The ``TRIGger:A:TRANsition:LOGICQUALification`` command.
            - ``.polarity``: The ``TRIGger:A:TRANsition:POLarity`` command.
            - ``.source``: The ``TRIGger:A:TRANsition:SOUrce`` command.
            - ``.when``: The ``TRIGger:A:TRANsition:WHEn`` command.
        """
        return self._transition

    @property
    def type(self) -> TriggerAType:
        r"""Return the ``TRIGger:A:TYPe`` command.

        **Description:**
            - This command sets or queries the type of A or B trigger.

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

        **SCPI Syntax:**

        ::

            - TRIGger:A:TYPe {EDGE|WIDth|TIMEOut|RUNt|WINdow|LOGIc| SETHold|TRANsition|BUS}
            - TRIGger:A:TYPe?

        **Info:**
            - ``EDGE`` is a normal trigger. A trigger event occurs when a signal passes through a
              specified voltage level in a specified direction and is controlled by the
              ``TRIGger:A:EDGE`` commands.
            - ``WIDth`` specifies that the trigger occurs when a pulse with a specified with is
              found.
            - ``TIMEOut`` specifies that a trigger occurs when a pulse with the specified timeout is
              found.
            - ``RUNt`` specifies that a trigger occurs when a pulse with the specified parameters is
              found.
            - ``WINdow`` specifies that a trigger occurs when a signal with the specified window
              parameters is found.
            - ``LOGIc`` specifies that a trigger occurs when specified conditions are met and is
              controlled by the TRIGger:{A\|B}``:LOGIc`` commands.
            - ``SETHold`` specifies that a trigger occurs when a signal is found that meets the
              setup and hold parameters.
            - ``BUS`` specifies that a trigger occurs when a signal is found that meets the
              specified bus setup parameters.
        """
        return self._type

    @property
    def upperthreshold(self) -> TriggerAUpperthreshold:
        """Return the ``TRIGger:A:UPPerthreshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``TRIGger:A:UPPerthreshold:CH<x>`` command.
        """
        return self._upperthreshold

    @property
    def window(self) -> TriggerAWindow:
        """Return the ``TRIGger:A:WINdow`` command tree.

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

        Sub-properties:
            - ``.crossing``: The ``TRIGger:A:WINdow:CROSSIng`` command.
            - ``.logicqualification``: The ``TRIGger:A:WINdow:LOGICQUALification`` command.
            - ``.source``: The ``TRIGger:A:WINdow:SOUrce`` command.
            - ``.when``: The ``TRIGger:A:WINdow:WHEn`` command.
            - ``.width``: The ``TRIGger:A:WINdow:WIDth`` command.
        """
        return self._window


class Trigger(SCPICmdWrite, SCPICmdRead):
    """The ``TRIGger`` command.

    **Description:**
        - This command forces a trigger event to occur. The query returns the current trigger
          parameters for the instrument.

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

    **SCPI Syntax:**

    ::

        - TRIGger FORCe
        - TRIGger?

    **Info:**
        - ``FORCe`` creates a trigger event. If ``TRIGger:STATE`` is set to READy, the acquisition
          will complete. Otherwise, this command will be ignored. This is equivalent to pressing the
          Force button on the front panel.

    Properties:
        - ``.a``: The ``TRIGger:A`` command tree.
        - ``.auxlevel``: The ``TRIGger:AUXLevel`` command.
        - ``.b``: The ``TRIGger:B`` command tree.
        - ``.hysteresis``: The ``TRIGger:HYSTeresis`` command tree.
        - ``.state``: The ``TRIGger:STATE`` command.
    """

    def __init__(self, device: Optional["PIDevice"] = None, cmd_syntax: str = "TRIGger") -> None:
        super().__init__(device, cmd_syntax)
        self._auxlevel = TriggerAuxlevel(device, f"{self._cmd_syntax}:AUXLevel")
        self._hysteresis = TriggerHysteresis(device, f"{self._cmd_syntax}:HYSTeresis")
        self._state = TriggerState(device, f"{self._cmd_syntax}:STATE")
        self._a = TriggerA(device, f"{self._cmd_syntax}:A")
        self._b = TriggerB(device, f"{self._cmd_syntax}:B")

    @property
    def auxlevel(self) -> TriggerAuxlevel:
        """Return the ``TRIGger:AUXLevel`` command.

        **Description:**
            - For those instruments that have an Auxiliary Input (such as an MSO58LP), this command
              sets or queries the Auxiliary Input voltage level to use for an edge trigger.

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

        **SCPI Syntax:**

        ::

            - TRIGger:AUXLevel {<NR3>|ECL|TTL}
            - TRIGger:AUXLevel?

        **Info:**
            - ``<NR3>`` is trigger level in Volts.
            - ``ECL`` sets trigger level to -1.3 Volts.
            - ``TTL`` sets trigger level to 1.4 Volts.
        """
        return self._auxlevel

    @property
    def hysteresis(self) -> TriggerHysteresis:
        """Return the ``TRIGger:HYSTeresis`` command tree.

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

        Sub-properties:
            - ``.user``: The ``TRIGger:HYSTeresis:USER`` command tree.
        """
        return self._hysteresis

    @property
    def state(self) -> TriggerState:
        """Return the ``TRIGger:STATE`` command.

        **Description:**
            - This query-only command returns the current state of the triggering system.

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

        **SCPI Syntax:**

        ::

            - TRIGger:STATE?
        """
        return self._state

    @property
    def a(self) -> TriggerA:
        """Return the ``TRIGger:A`` command tree.

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

        Sub-properties:
            - ``.holdoff``: The ``TRIGger:A:HOLDoff`` command tree.
            - ``.logicqualification``: The ``TRIGger:A:LOGICQUALification`` command.
            - ``.mode``: The ``TRIGger:A:MODe`` command.
            - ``.bus``: The ``TRIGger:A:BUS`` command tree.
            - ``.edge``: The ``TRIGger:A:EDGE`` command tree.
            - ``.level``: The ``TRIGger:A:LEVel`` command tree.
            - ``.logicpattern``: The ``TRIGger:A:LOGICPattern`` command tree.
            - ``.logic``: The ``TRIGger:A:LOGIc`` command tree.
            - ``.lowerthreshold``: The ``TRIGger:A:LOWerthreshold`` command tree.
            - ``.pulsewidth``: The ``TRIGger:A:PULSEWidth`` command tree.
            - ``.runt``: The ``TRIGger:A:RUNT`` command tree.
            - ``.setholdlogicval``: The ``TRIGger:A:SETHOLDLogicval`` command tree.
            - ``.sethold``: The ``TRIGger:A:SETHold`` command tree.
            - ``.timeout``: The ``TRIGger:A:TIMEOut`` command tree.
            - ``.transition``: The ``TRIGger:A:TRANsition`` command tree.
            - ``.type``: The ``TRIGger:A:TYPe`` command.
            - ``.upperthreshold``: The ``TRIGger:A:UPPerthreshold`` command tree.
            - ``.window``: The ``TRIGger:A:WINdow`` command tree.
        """
        return self._a

    @property
    def b(self) -> TriggerB:
        """Return the ``TRIGger:B`` command tree.

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

        Sub-properties:
            - ``.by``: The ``TRIGger:B:BY`` command.
            - ``.events``: The ``TRIGger:B:EVENTS`` command tree.
            - ``.reset``: The ``TRIGger:B:RESET`` command.
            - ``.state``: The ``TRIGger:B:STATE`` command.
            - ``.time``: The ``TRIGger:B:TIMe`` command.
            - ``.bus``: The ``TRIGger:B:BUS`` command tree.
            - ``.edge``: The ``TRIGger:B:EDGE`` command tree.
            - ``.level``: The ``TRIGger:B:LEVel`` command tree.
            - ``.logicpattern``: The ``TRIGger:B:LOGICPattern`` command tree.
            - ``.logic``: The ``TRIGger:B:LOGIc`` command tree.
            - ``.lowerthreshold``: The ``TRIGger:B:LOWerthreshold`` command tree.
            - ``.pulsewidth``: The ``TRIGger:B:PULSEWidth`` command tree.
            - ``.runt``: The ``TRIGger:B:RUNT`` command tree.
            - ``.setholdlogicval``: The ``TRIGger:B:SETHOLDLogicval`` command tree.
            - ``.sethold``: The ``TRIGger:B:SETHold`` command tree.
            - ``.timeout``: The ``TRIGger:B:TIMEOut`` command tree.
            - ``.transition``: The ``TRIGger:B:TRANsition`` command tree.
            - ``.type``: The ``TRIGger:B:TYPe`` command.
            - ``.upperthreshold``: The ``TRIGger:B:UPPerthreshold`` command tree.
            - ``.window``: The ``TRIGger:B:WINdow`` command tree.
        """
        return self._b
