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

These commands are used in the following models:
DPO5KB, DPO70KC, DPO70KD, DPO70KDX, DPO70KSX, DPO7KC, DSA70KC, DSA70KD, MSO5KB, MSO70KC, MSO70KDX

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

Please report an issue if one is found.

Commands and Queries:

::

    - SEARCH:MARKALLevents {<NR1>|OFF|ON}
    - SEARCH:MARKALLevents?
    - SEARCH:SEARCH<x> <QString>
    - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch|FROMSearch<x>}
    - SEARCH:SEARCH<x>:STATE {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:STATE?
    - SEARCH:SEARCH<x>:TOTAL?
    - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader
    - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition {ERRor|DATA|IDANDDATA|EOF|IDentifier|ACKMISS|SOF|FRAMEtype}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier {EQUal|LESSEQual|MOREEQua|UNEQual|LESSthan|MOREthan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe <nr3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype {DATa|ERRor|OVERLoad|REMote}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection {DONTCare|READ|WRITE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe {EXTENDed|STandard}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition {STARTFRAME|MACADDRess|MACTYPE|IPV4Header|TCPHeader|DATa |ENDPACKET|FCSError|QTAG|TCPDATA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat {BINary|HEX|DECImal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat {BINary|HEX|DECImal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat {BINary|HEX|DECImal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition {SOF|FRAMEtype|IDentifier|CYCLEcount|HEADer|DATA|IDANDDATA| EOF|ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet <nr3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE {ALL|STATIC|DYNAMIC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE {CRCHEADer|CRCTRAILer|NULLFRSTATIC|NULLFRDYNAMIC |SYNCFRAME|STARTUPNOSYNC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType {NORMal|PAYload|NULL|SYNC|STARTup}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe {ADDR10|ADDR7}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe {CBUS|EEPROm|GENeralcall|HSMODe|NONe|STARtbyte}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition {ADDress|ADDRANDDATA|DATa|ACKMISS|REPEATstart|STARt|STOP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection {DONTCare|READ|WRITE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition {DATA|IDANDDATA|ERROR|IDentifier|SLEEP|SYNC|WAKEup}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe <nr3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE {CHecksum|PARity|SYNC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier {LESSthan|MOREthan|EQual |UNEQual|LESSEQual|MOREEQual}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit {RX|TX|X|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA|TIMe|ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE {PARity|SYNC|MANCHester|DATA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat {BINary|HEX}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity {0|1|X|ZERo|ONE|NOCARE|DONTCare|ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition {ESCMode|EOT|ERROR|LONG|SHORT|SOT|STOP|WARNing}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong {ANY|BLANK|EMBEDded|NULL|RAW10|RAW12|RAW14|RAW<x>|RGB444|RGB555|RGB565|RGB666|RGB888|USER8B1|USER8B2|USER8B3|USER8B4|USER8B5|USER8B6|USER8B7|USER8B8|YUV420B10|YUV420C10|YUV420B8|YUV420C8|YUV420L8|YUV422B10|YUV422B8}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort {ANY|FRAMEEnd|FRAMEStart|GSP1|GSP2|GSP3|GSP4|GSP5| GSP6|GSP7|GSP8|LINEEnd|LINEStart}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor {ANY|CHECKsumerror|ECCError}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape {ANY|LPDATA|RESET|ULTRALP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing {ANY|ECCWarn}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport {ANY|CHKSUMError|CONTention|DSINR|DSIViolation|DSIVC| ECCMBError|ECCSBError|EOTSync|ESCMODEError|FCE|HSRTError| INVALID|LPTSError|SOTError|SOTSync}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition {ESCMode|BTA|EOT|ERROR|LONG|SHORT|SOT|STOP|WA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection {FORWard|REVErse|ANY}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong {ANY|BLANK|DCSLONGRead|DCSLONGWrite|GLONGRead|GLONGWrite| LPS666|NULL|PPS565|PPS666|PPS888|PPS101010|PPS121212|YCBCR12|YCBCR16|YCBCR20|YCBCR24}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort {ACKErrorreport|ANY|COLOROFF|COLORON|DCSR|DCSSRR1| DCSRR2|DCSSW<x>|EOT|GR<x>|GSRR<x>| GSW<x>|HSYNCEnd|HSYNCStart|MAXRETsize|SHUTDown| TURNON|VSYNCEnd|VSYNCStart}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor {ANY|CHECKsumerror|ECCError}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape {ACK|LPDATA|RESET|ANY|TEAR|ULTRALP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing {ANY|ECCWarn}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue {<nr3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue {<nr3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier {EQUal|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue {<nr3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat {BINary|HEXadecimal|SYMBolic}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR <STRING>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition {ANYControl|CHARacter|ERROR|PATtern|LONGORDERedset|SYNCHeader}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat {ORDERedset|SYMbol|CHAR}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset {CTRLSKP|EI|EIE|FTS|SDS|SKP|TS<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset {COMPAT|EI|FTS|SKP|INVALID}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition {DATa|EOp|PARItyerror|STARt}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE { SYNC | INVSYNC | BLOCKtype | PATtern }
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType { NONe | X1E | X2D | X33 | X66 | X55 | X78 | X4B | X87 | X99 | XB4 | XCC | XD2 | XE1 | XFF }
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat { Binary | HEX }
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat { Binary | HEX }
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition { BLOCK | BLOCK1THEN2 }
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition {ANYControl|CHARacter|ERROR| PATtern}?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity {NEGAtive|POSITIVe|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR {<NR1>|ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity {<NR1>|ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat {CHAR|SYMbol}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce {B0|B1|B2|B3|B4|B5|B6|B7|B8|B9|B10| B11|B12|B13|B14|B15|B16}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition {DATA|SS}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat {BINary|HEX|SYMBolic}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition {DATAPacket|EOP|ERROR|HANDSHAKEPacket|RESET|RESUME| SPECIALPacket|SUSPEND|SYNC|TOKENPacket}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat {BINary|HEX|SYMBolic}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet {<NR3>|DONTCare}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:TYPe {ANY|DATA<x>|MDATA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity {NEGAtive|POSITIVe|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat {BINary|HEXadecimal|SYMBolic}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue <string>}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset {|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE {BITSTUFFing|CRC5|CRC16|PID}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat {CHAR|SYMbol}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType {ACK|ANY|NAK|NYET|STALL}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset {EIE|TS<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets {LMP | TP | DP | ITP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets {ANY | LMPLink | LMPUtwo | LMPDevice | LMPConfig | LMPResponse}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets {ANY | TPACK | TPNRDY | TPERDY | TPStatus | TPSTall | TPNotify | TPPing | TPResponse}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset {OFF|ON|0|1}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x> <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier {EQUal|INrange|LESSEQual|MOREEQual|OUTrange|UNEQual|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat {BINary|HEXadecimal|SYMBolic}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType {ANY|ERR|PING|PRE|RESERVED|SPLIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue {BULK|CONTROL|DONTCare|INTERRUPT|ISOchronous}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat {BINary|HEXadecimal}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue <string>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue {CSPLIT|DONTCare|SSPLIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue {DONTCare|FULLSPeed|ISOALL|ISOEND|ISOMID|ISOSTART|LOWSPeed}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType {ANY|IN|OUT|SETUP|SOF}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate {AUTO|CUSTom|DDR200|DDR266|DDR333|DDR370| DDR400|DDR533|DDR667|DDR800|DDR1066|DDR1200|DDR1333|DDR1466| DDR1600|DDR1866|DDR2133|DDR2400|DDR2666|DDR3200|DDR4000| DDR4800|DDR5000|DDR5500}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel {AUTO|CUSTom}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive {HIGH|LOW}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode {AUTO|MANual}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource {CH<x>|MATH<x>|REF<x>|NONe}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID <NRF>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard {DDR|DDR2|DDR3|GDDR3|LPDDR|DDR3L|DDR4|LPDDR3}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x> {RISe|FALL|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x> {RISe|FALL|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x> {RISe|FALL|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF {ACCept|REJect}
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF?
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth?
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x> {<NR3>|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x> {<NR3>|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x> {<NR3>|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x> {HIGH|LOW|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x> {HIGH|LOW|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x> {HIGH|LOW|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn {TRUe|FALSe|LESSThan|MOREThan}
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit?
    - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn {OCCurs|WIDERthan}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x> {NR3|ECL|TTL}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE {FALL|RISe}
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE?
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn {TRUe|FALSe}
    - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x> {STAYSHigh|STAYSLow|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x> {STAYSHigh|STAYSLow|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x> {STAYSHigh|STAYSLow|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn {FASTERthan|SLOWERthan}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:TYPe {EDGE|RUNT|TRANsition|PATtern|GLItch|SETHold|UNDEFINED| WIDth|TIMEOut|WINdow|STATE|DDRRead|DDRWrite|DDRREADWrite}
    - SEARCH:SEARCH<x>:TRIGger:A:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x> {NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x> {NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x> {NEGAtive|POSITIVe}
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn {OUTside|WIThin}
    - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT {OUTSIDEGreater|INSIDEGreater|ENTERSWindow|EXITSWindow}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth?
    - SEARCH:SEARCH<x>?
    - SEARCH:STOP {<NR1>|OFF|ON|1|0}
    - SEARCH:STOP?
"""  # noqa: E501
from typing import Dict, Optional, TYPE_CHECKING

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

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


class SearchStop(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:STOP`` command.

    **Description:**
        - This command sets or queries the stop of acquisitions when a search finds an event.

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

    **SCPI Syntax:**

    ::

        - SEARCH:STOP {<NR1>|OFF|ON|1|0}
        - SEARCH:STOP?

    **Info:**
        - ``<NR1>`` any numerical nonzero, stops the acquisition.
        - ``OFF`` continues the acquisition.
        - ``ON`` stops the acquisition.
        - ``1`` stops the acquisition.
        - ``0`` continues the acquisition.
    """


class SearchSearchItemTriggerAWindowWidth(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth`` command.

    **Description:**
        - This command sets or queries the width setting for a window trigger search to determine
          where to place a mark. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth?

    **Info:**
        - ``<NR3>`` specifies the minimum width in seconds.
    """


class SearchSearchItemTriggerAWindowThresholdLowRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>`` command.

    **Description:**
        - This command sets or queries the reference waveform threshold LOW level for a window
          trigger search to determine where to place a mark. <x> is the search number or reference
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdLowMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>`` command.

    **Description:**
        - This command sets or queries the math waveform threshold LOW level for a window trigger
          search to determine where to place a mark. <x> is the search number or math waveform
          number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdLowChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>`` command.

    **Description:**
        - This command sets or queries the channel waveform threshold LOW level for a window trigger
          search to determine where to place a mark. <x> is the search number or channel waveform
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdLow(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdLowChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>`` command.

        **Description:**
            - This command sets or queries the channel waveform threshold LOW level for a window
              trigger search to determine where to place a mark. <x> is the search number or channel
              waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold level.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdLowMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>`` command.

        **Description:**
            - This command sets or queries the math waveform threshold LOW level for a window
              trigger search to determine where to place a mark. <x> is the search number or math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold level.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdLowRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>`` command.

        **Description:**
            - This command sets or queries the reference waveform threshold LOW level for a window
              trigger search to determine where to place a mark. <x> is the search number or
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold level.
        """
        return self._ref


class SearchSearchItemTriggerAWindowThresholdHighRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>`` command.

    **Description:**
        - This command sets or queries the reference waveform threshold HIGH level for a window
          trigger search to determine where to place a mark. <x> is the search number or reference
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdHighMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>`` command.

    **Description:**
        - This command sets or queries the math waveform threshold HIGH level for a window trigger
          search to determine where to place a mark. <x> is the search number or math waveform
          number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdHighChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>`` command.

    **Description:**
        - This command sets or queries the channel threshold HIGH level for a window trigger search
          to determine where to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold level.
    """


class SearchSearchItemTriggerAWindowThresholdHigh(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdHighChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>`` command.

        **Description:**
            - This command sets or queries the channel threshold HIGH level for a window trigger
              search to determine where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold level.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdHighMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>`` command.

        **Description:**
            - This command sets or queries the math waveform threshold HIGH level for a window
              trigger search to determine where to place a mark. <x> is the search number or math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold level.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerAWindowThresholdHighRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>`` command.

        **Description:**
            - This command sets or queries the reference waveform threshold HIGH level for a window
              trigger search to determine where to place a mark. <x> is the search number or
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold level.
        """
        return self._ref


class SearchSearchItemTriggerAWindowThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH`` command tree.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._high = SearchSearchItemTriggerAWindowThresholdHigh(device, f"{self._cmd_syntax}:HIGH")
        self._low = SearchSearchItemTriggerAWindowThresholdLow(device, f"{self._cmd_syntax}:LOW")

    @property
    def high(self) -> SearchSearchItemTriggerAWindowThresholdHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH:REF<x>`` command.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerAWindowThresholdLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW:REF<x>`` command.
        """
        return self._low


class SearchSearchItemTriggerAWindowEvent(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT`` command.

    **Description:**
        - This command sets or queries the window trigger search to determine where to place a mark.
          <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT {OUTSIDEGreater|INSIDEGreater|ENTERSWindow|EXITSWindow}
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT?

    **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.
    """  # noqa: E501


class SearchSearchItemTriggerAWindow(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow`` command tree.

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

    Properties:
        - ``.event``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.
        - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._event = SearchSearchItemTriggerAWindowEvent(device, f"{self._cmd_syntax}:EVENT")
        self._threshold = SearchSearchItemTriggerAWindowThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._width = SearchSearchItemTriggerAWindowWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def event(self) -> SearchSearchItemTriggerAWindowEvent:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT`` command.

        **Description:**
            - This command sets or queries the window trigger search to determine where to place a
              mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT {OUTSIDEGreater|INSIDEGreater|ENTERSWindow|EXITSWindow}
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT?

        **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.
        """  # noqa: E501
        return self._event

    @property
    def threshold(self) -> SearchSearchItemTriggerAWindowThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH`` command tree.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command tree.
        """
        return self._threshold

    @property
    def width(self) -> SearchSearchItemTriggerAWindowWidth:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth`` command.

        **Description:**
            - This command sets or queries the width setting for a window trigger search to
              determine where to place a mark. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth?

        **Info:**
            - ``<NR3>`` specifies the minimum width in seconds.
        """
        return self._width


class SearchSearchItemTriggerAWidthWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn`` command.

    **Description:**
        - This command sets or queries the width trigger search to determine where to place a mark.
          <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn {OUTside|WIThin}
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn?

    **Info:**
        - ``OUTside`` specifies the outside limits.
        - ``WIThin`` specifies the inside limits.
    """


class SearchSearchItemTriggerAWidthPolarityRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a width trigger search to determine where to
          place a mark. <x> is the search number or reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x> {NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>?

    **Info:**
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive polarity.
    """


class SearchSearchItemTriggerAWidthPolarityMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a width trigger search to determine where to
          place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x> {NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>?

    **Info:**
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive polarity.
    """


class SearchSearchItemTriggerAWidthPolarityChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a width trigger search to determine where to
          place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x> {NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>?

    **Info:**
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive polarity.
    """


class SearchSearchItemTriggerAWidthPolarity(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerAWidthPolarityChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a width trigger search to determine
              where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x> {NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>?

        **Info:**
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive polarity.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerAWidthPolarityMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a width trigger search to determine
              where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x> {NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>?

        **Info:**
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive polarity.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerAWidthPolarityRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a width trigger search to determine
              where to place a mark. <x> is the search number or reference waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x> {NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>?

        **Info:**
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive polarity.
        """
        return self._ref


class SearchSearchItemTriggerAWidthLowlimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit`` command.

    **Description:**
        - This command sets or queries the lower time limit setting for a width trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit?

    **Info:**
        - ``<NR3>`` specifies the lower time limit in seconds.
    """


class SearchSearchItemTriggerAWidthHighlimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit`` command.

    **Description:**
        - This command sets or queries the upper time limit setting for a width trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit?

    **Info:**
        - ``<NR3>`` specifies the upper time limit in seconds.
    """


class SearchSearchItemTriggerAWidth(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth`` command tree.

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

    Properties:
        - ``.highlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit`` command.
        - ``.lowlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit`` command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity`` command tree.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._highlimit = SearchSearchItemTriggerAWidthHighlimit(
            device, f"{self._cmd_syntax}:HIGHLimit"
        )
        self._lowlimit = SearchSearchItemTriggerAWidthLowlimit(
            device, f"{self._cmd_syntax}:LOWLimit"
        )
        self._polarity = SearchSearchItemTriggerAWidthPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._when = SearchSearchItemTriggerAWidthWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def highlimit(self) -> SearchSearchItemTriggerAWidthHighlimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit`` command.

        **Description:**
            - This command sets or queries the upper time limit setting for a width trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit?

        **Info:**
            - ``<NR3>`` specifies the upper time limit in seconds.
        """
        return self._highlimit

    @property
    def lowlimit(self) -> SearchSearchItemTriggerAWidthLowlimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit`` command.

        **Description:**
            - This command sets or queries the lower time limit setting for a width trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit?

        **Info:**
            - ``<NR3>`` specifies the lower time limit in seconds.
        """
        return self._lowlimit

    @property
    def polarity(self) -> SearchSearchItemTriggerAWidthPolarity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity:REF<x>`` command.
        """
        return self._polarity

    @property
    def when(self) -> SearchSearchItemTriggerAWidthWhen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn`` command.

        **Description:**
            - This command sets or queries the width trigger search to determine where to place a
              mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn {OUTside|WIThin}
            - SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn?

        **Info:**
            - ``OUTside`` specifies the outside limits.
            - ``WIThin`` specifies the inside limits.
        """
        return self._when


class SearchSearchItemTriggerAType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TYPe`` command.

    **Description:**
        - This command sets or queries the trigger type setting for a search to determine where to
          place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TYPe {EDGE|RUNT|TRANsition|PATtern|GLItch|SETHold|UNDEFINED| WIDth|TIMEOut|WINdow|STATE|DDRRead|DDRWrite|DDRREADWrite}
        - SEARCH:SEARCH<x>:TRIGger:A:TYPe?

    **Info:**
        - ``EDGE`` triggers when the source input signal amplitude crosses the specified level in
          the direction given by the slope.
        - ``RUNT`` triggers when a pulse crosses the first preset voltage threshold but does not
          cross the second preset threshold before recrossing the first. The thresholds are set with
          the ``SEARCH:SEARCH<x>:TRIGger:A:RUNt:HIGH`` and
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNt:LOW THRESHOLD`` commands.
        - ``TRANsition`` triggers when a pulse crosses both thresholds in the same direction as the
          specified polarity and the transition time between the two threshold crossings is greater
          or less than the specified time delta.
        - ``PATtern`` trigger on a functional pattern combination of one to four input signal
          sources.
        - ``GLItch`` triggers at the trailing edge of the glitch pulse where the signal crosses the
          trigger level.
        - ``SETHold`` triggers on the data input signal transitions relative to the clock input
          signal transitions within the setup and hold time violation zone.
        - ``UNDEFINED`` is the default. To perform a search, select a different argument.
        - ``WIDth`` triggers on input signal source pulses that are inside or outside of the given
          time range.
        - ``TIMEOut`` triggers on an input signal source that stays above, stays below, or stays
          either above or beow the trigger level for a given time.
        - ``WINdow`` triggers on an input signal source that enters or exits the horizontal band
          defined by the two trigger levels.
        - ``STATE`` triggers on a functional pattern combination of one to three data sources at the
          time of the clock transition.
        - ``DDRRead`` triggers at the start and end of the read bus.
        - ``DDRWrite`` triggers at the start and end of the write bus.
        - ``DDRREADWrite`` triggers at the start and end of both the read and write bus.
    """  # noqa: E501


class SearchSearchItemTriggerATransitionWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn`` command.

    **Description:**
        - This command sets or queries the condition setting for a transition trigger search to
          determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn {FASTERthan|SLOWERthan}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?

    **Info:**
        - ``FASTERthan`` sets the trigger to occur when the transitioning signal is faster than the
          set volts/second rate.
        - ``SLOWERthan`` sets the trigger to occur when the transitioning signal is slower than the
          set volts/second rate.
    """


class SearchSearchItemTriggerATransitionThresholdLowRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>`` command.

    **Description:**
        - This command sets or queries the threshold low voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or reference
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdLowMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>`` command.

    **Description:**
        - This command sets or queries the threshold low voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or math
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdLowChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>`` command.

    **Description:**
        - This command sets or queries the threshold low voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or channel
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdLow(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdLowChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>`` command.

        **Description:**
            - This command sets or queries the threshold low voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or channel
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold in volts.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdLowMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>`` command.

        **Description:**
            - This command sets or queries the threshold low voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold in volts.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdLowRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>`` command.

        **Description:**
            - This command sets or queries the threshold low voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold in volts.
        """
        return self._ref


class SearchSearchItemTriggerATransitionThresholdHighRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>`` command.

    **Description:**
        - This command sets or queries the threshold high voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or reference
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdHighMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>`` command.

    **Description:**
        - This command sets or queries the threshold high voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or math
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdHighChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>`` command.

    **Description:**
        - This command sets or queries the threshold high voltage level setting for a transition
          trigger search to determine where to place a mark. <x> is the search number or channel
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold in volts.
    """


class SearchSearchItemTriggerATransitionThresholdHigh(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdHighChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>`` command.

        **Description:**
            - This command sets or queries the threshold high voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or channel
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold in volts.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdHighMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>`` command.

        **Description:**
            - This command sets or queries the threshold high voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold in volts.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerATransitionThresholdHighRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>`` command.

        **Description:**
            - This command sets or queries the threshold high voltage level setting for a transition
              trigger search to determine where to place a mark. <x> is the search number or
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold in volts.
        """
        return self._ref


class SearchSearchItemTriggerATransitionThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH`` command tree.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._high = SearchSearchItemTriggerATransitionThresholdHigh(
            device, f"{self._cmd_syntax}:HIGH"
        )
        self._low = SearchSearchItemTriggerATransitionThresholdLow(
            device, f"{self._cmd_syntax}:LOW"
        )

    @property
    def high(self) -> SearchSearchItemTriggerATransitionThresholdHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:MATH<x>``
              command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH:REF<x>`` command.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerATransitionThresholdLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:MATH<x>``
              command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW:REF<x>`` command.
        """
        return self._low


class SearchSearchItemTriggerATransitionPolarityRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a transition trigger search to
          determine where to place a mark. <x> is the search number or reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>?

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


class SearchSearchItemTriggerATransitionPolarityMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a transition trigger search to
          determine where to place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>?

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


class SearchSearchItemTriggerATransitionPolarityChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a transition trigger search to
          determine where to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>?

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


class SearchSearchItemTriggerATransitionPolarity(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerATransitionPolarityChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a transition trigger search to
              determine where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>?

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

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerATransitionPolarityMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a transition trigger search to
              determine where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>?

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

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerATransitionPolarityRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a transition trigger search to
              determine where to place a mark. <x> is the search number or reference waveform
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>?

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


class SearchSearchItemTriggerATransitionDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime`` command.

    **Description:**
        - This command sets or queries the transition time setting for a transition trigger search
          to determine where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime?

    **Info:**
        - ``<NR3>`` specifies the transition time in seconds.
    """


class SearchSearchItemTriggerATransition(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition`` command tree.

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

    Properties:
        - ``.deltatime``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime`` command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command tree.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold`` command tree.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._deltatime = SearchSearchItemTriggerATransitionDeltatime(
            device, f"{self._cmd_syntax}:DELTATime"
        )
        self._polarity = SearchSearchItemTriggerATransitionPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._threshold = SearchSearchItemTriggerATransitionThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._when = SearchSearchItemTriggerATransitionWhen(device, f"{self._cmd_syntax}:WHEn")

    @property
    def deltatime(self) -> SearchSearchItemTriggerATransitionDeltatime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime`` command.

        **Description:**
            - This command sets or queries the transition time setting for a transition trigger
              search to determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime?

        **Info:**
            - ``<NR3>`` specifies the transition time in seconds.
        """
        return self._deltatime

    @property
    def polarity(self) -> SearchSearchItemTriggerATransitionPolarity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity:REF<x>`` command.
        """
        return self._polarity

    @property
    def threshold(self) -> SearchSearchItemTriggerATransitionThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH`` command tree.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command tree.
        """
        return self._threshold

    @property
    def when(self) -> SearchSearchItemTriggerATransitionWhen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn`` command.

        **Description:**
            - This command sets or queries the condition setting for a transition trigger search to
              determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn {FASTERthan|SLOWERthan}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?

        **Info:**
            - ``FASTERthan`` sets the trigger to occur when the transitioning signal is faster than
              the set volts/second rate.
            - ``SLOWERthan`` sets the trigger to occur when the transitioning signal is slower than
              the set volts/second rate.
        """
        return self._when


class SearchSearchItemTriggerATimeoutTime(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe`` command.

    **Description:**
        - This command sets or queries the time setting for a timeout trigger search to determine
          where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe?

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


class SearchSearchItemTriggerATimeoutPolarityRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a timeout trigger search to determine where
          to place a mark. <x> is the search number or reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x> {STAYSHigh|STAYSLow|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>?

    **Info:**
        - ``STAYSHigh`` specifies the polarity stays HIGH.
        - ``STAYSLow`` specifies the polarity stays LOW.
        - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
    """


class SearchSearchItemTriggerATimeoutPolarityMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a timeout trigger search to determine where
          to place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x> {STAYSHigh|STAYSLow|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>?

    **Info:**
        - ``STAYSHigh`` specifies the polarity stays HIGH.
        - ``STAYSLow`` specifies the polarity stays LOW.
        - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
    """


class SearchSearchItemTriggerATimeoutPolarityChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a timeout trigger search to determine where
          to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x> {STAYSHigh|STAYSLow|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>?

    **Info:**
        - ``STAYSHigh`` specifies the polarity stays HIGH.
        - ``STAYSLow`` specifies the polarity stays LOW.
        - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
    """


class SearchSearchItemTriggerATimeoutPolarity(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerATimeoutPolarityChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a timeout trigger search to determine
              where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x> {STAYSHigh|STAYSLow|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>?

        **Info:**
            - ``STAYSHigh`` specifies the polarity stays HIGH.
            - ``STAYSLow`` specifies the polarity stays LOW.
            - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerATimeoutPolarityMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a timeout trigger search to determine
              where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x> {STAYSHigh|STAYSLow|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>?

        **Info:**
            - ``STAYSHigh`` specifies the polarity stays HIGH.
            - ``STAYSLow`` specifies the polarity stays LOW.
            - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerATimeoutPolarityRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a timeout trigger search to determine
              where to place a mark. <x> is the search number or reference waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x> {STAYSHigh|STAYSLow|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>?

        **Info:**
            - ``STAYSHigh`` specifies the polarity stays HIGH.
            - ``STAYSLow`` specifies the polarity stays LOW.
            - ``EITher`` specifies the polarity either stays HIGH or stays LOW.
        """
        return self._ref


class SearchSearchItemTriggerATimeout(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut`` command tree.

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

    Properties:
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command tree.
        - ``.time``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe`` command.
    """

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

    @property
    def polarity(self) -> SearchSearchItemTriggerATimeoutPolarity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity:REF<x>`` command.
        """
        return self._polarity

    @property
    def time(self) -> SearchSearchItemTriggerATimeoutTime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe`` command.

        **Description:**
            - This command sets or queries the time setting for a timeout trigger search to
              determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe?

        **Info:**
            - ``<NR3>`` is the time in seconds.
        """
        return self._time


class SearchSearchItemTriggerAStateWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn`` command.

    **Description:**
        - This command sets or queries the state trigger search to determine where to place a mark.
          <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn {TRUe|FALSe}
        - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn?

    **Info:**
        - ``TRUe`` specifies a TRUE logic level.
        - ``FALSe`` specifies a FALSE logic level.
    """


class SearchSearchItemTriggerAStateClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce`` command.

    **Description:**
        - This command sets or queries the clock source of the twelve waveforms for a state trigger
          search to determine where to place a mark. <x> is the search number. The hardware trigger
          is always on the channel 4.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerAStateClockEdge(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE`` command.

    **Description:**
        - This command sets or queries the clock slope setting for a state trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE {FALL|RISe}
        - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE?

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


class SearchSearchItemTriggerAStateClock(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk`` command tree.

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

    Properties:
        - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce`` command.
    """

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

    @property
    def edge(self) -> SearchSearchItemTriggerAStateClockEdge:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE`` command.

        **Description:**
            - This command sets or queries the clock slope setting for a state trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE {FALL|RISe}
            - SEARCH:SEARCH<x>:TRIGger:A:STATE: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) -> SearchSearchItemTriggerAStateClockSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce`` command.

        **Description:**
            - This command sets or queries the clock source of the twelve waveforms for a state
              trigger search to determine where to place a mark. <x> is the search number. The
              hardware trigger is always on the channel 4.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._source


class SearchSearchItemTriggerAState(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STATE`` command tree.

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

    Properties:
        - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk`` command tree.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn`` command.
    """

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

    @property
    def clock(self) -> SearchSearchItemTriggerAStateClock:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk`` command tree.

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

        Sub-properties:
            - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:EDGE`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk:SOUrce`` command.
        """
        return self._clock

    @property
    def when(self) -> SearchSearchItemTriggerAStateWhen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn`` command.

        **Description:**
            - This command sets or queries the state trigger search to determine where to place a
              mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn {TRUe|FALSe}
            - SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn?

        **Info:**
            - ``TRUe`` specifies a TRUE logic level.
            - ``FALSe`` specifies a FALSE logic level.
        """
        return self._when


class SearchSearchItemTriggerASetholdSettime(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime`` command.

    **Description:**
        - This command sets or queries the setup time setting for a setup/hold trigger search to
          determine where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?

    **Info:**
        - ``<NR3>`` specifies the setup time for setup and hold violation triggering.
    """


class SearchSearchItemTriggerASetholdHoldtime(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.

    **Description:**
        - This command sets or queries the hold time setting for a setup/hold trigger search to
          determine where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?

    **Info:**
        - ``<NR3>`` 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 SearchSearchItemTriggerASetholdDataThresholdRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>`` command.

    **Description:**
        - This command sets or queries the data threshold setting for a setup/hold trigger search to
          determine where to place a mark. <x> is the search number or reference waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdDataThresholdMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>`` command.

    **Description:**
        - This command sets or queries the data threshold setting for a setup/hold trigger search to
          determine where to place a mark. <x> is the search number or math waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdDataThresholdChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the data threshold setting for a setup/hold trigger search to
          determine where to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdDataThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerASetholdDataThresholdChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the data threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerASetholdDataThresholdMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>`` command.

        **Description:**
            - This command sets or queries the data threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or math waveform
              number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerASetholdDataThresholdRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>`` command.

        **Description:**
            - This command sets or queries the data threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or reference
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._ref


class SearchSearchItemTriggerASetholdDataSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce`` command.

    **Description:**
        - This command sets or queries the data source setting for a setup/hold trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerASetholdData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa`` command tree.

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

    **Info:**
        - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.

    Properties:
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold`` command tree.
    """

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

    @property
    def source(self) -> SearchSearchItemTriggerASetholdDataSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce`` command.

        **Description:**
            - This command sets or queries the data source setting for a setup/hold trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._source

    @property
    def threshold(self) -> SearchSearchItemTriggerASetholdDataThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold:REF<x>`` command.
        """
        return self._threshold


class SearchSearchItemTriggerASetholdClockThresholdRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>`` command.

    **Description:**
        - This command sets or queries the clock threshold setting for a setup/hold trigger search
          to determine where to place a mark. <x> is the search number or reference waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdClockThresholdMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>`` command.

    **Description:**
        - This command sets or queries the clock threshold setting for a setup/hold trigger search
          to determine where to place a mark. <x> is the search number or math waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdClockThresholdChannel(
    ValidatedChannel, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the clock threshold setting for a setup/hold trigger search
          to determine where to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x> {NR3|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>?

    **Info:**
        - ``<NR3>`` is the clock level in volts.
        - ``ECL`` specifies a preset ECL high level of -1.3 V.
        - ``TTL`` specifies a preset TTL high level of 1.4 V.
    """


class SearchSearchItemTriggerASetholdClockThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerASetholdClockThresholdChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the clock threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerASetholdClockThresholdMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>`` command.

        **Description:**
            - This command sets or queries the clock threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or math waveform
              number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerASetholdClockThresholdRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>`` command.

        **Description:**
            - This command sets or queries the clock threshold setting for a setup/hold trigger
              search to determine where to place a mark. <x> is the search number or reference
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x> {NR3|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>?

        **Info:**
            - ``<NR3>`` is the clock level in volts.
            - ``ECL`` specifies a preset ECL high level of -1.3 V.
            - ``TTL`` specifies a preset TTL high level of 1.4 V.
        """
        return self._ref


class SearchSearchItemTriggerASetholdClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce`` command.

    **Description:**
        - This command sets or queries the clock source setting for a setup/hold trigger search to
          determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an input channel as the edge source, where <x> = 1, 2, 3 or 4.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerASetholdClockEdge(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE`` command.

    **Description:**
        - This command sets or queries the clock slope setting for a setup/hold trigger search to
          determine where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE?

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


class SearchSearchItemTriggerASetholdClock(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk`` command tree.

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

    Properties:
        - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold`` command tree.
    """

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

    @property
    def edge(self) -> SearchSearchItemTriggerASetholdClockEdge:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE`` command.

        **Description:**
            - This command sets or queries the clock slope setting for a setup/hold trigger search
              to determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE {FALL|RISe}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE?

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

    @property
    def source(self) -> SearchSearchItemTriggerASetholdClockSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce`` command.

        **Description:**
            - This command sets or queries the clock source setting for a setup/hold trigger search
              to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an input channel as the edge source, where <x> = 1, 2, 3 or 4.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._source

    @property
    def threshold(self) -> SearchSearchItemTriggerASetholdClockThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold:REF<x>`` command.
        """
        return self._threshold


class SearchSearchItemTriggerASethold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold`` command tree.

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

    Properties:
        - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk`` command tree.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa`` command tree.
        - ``.holdtime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.
        - ``.settime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = SearchSearchItemTriggerASetholdClock(device, f"{self._cmd_syntax}:CLOCk")
        self._data = SearchSearchItemTriggerASetholdData(device, f"{self._cmd_syntax}:DATa")
        self._holdtime = SearchSearchItemTriggerASetholdHoldtime(
            device, f"{self._cmd_syntax}:HOLDTime"
        )
        self._settime = SearchSearchItemTriggerASetholdSettime(
            device, f"{self._cmd_syntax}:SETTime"
        )

    @property
    def clock(self) -> SearchSearchItemTriggerASetholdClock:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk`` command tree.

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

        Sub-properties:
            - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:EDGE`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold`` command
              tree.
        """
        return self._clock

    @property
    def data(self) -> SearchSearchItemTriggerASetholdData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa`` command tree.

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

        **Info:**
            - ``CH<x>`` specifies an input channel as the search source, where <x> = 1, 2, 3 or 4.

        Sub-properties:
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa:THReshold`` command
              tree.
        """
        return self._data

    @property
    def holdtime(self) -> SearchSearchItemTriggerASetholdHoldtime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.

        **Description:**
            - This command sets or queries the hold time setting for a setup/hold trigger search to
              determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?

        **Info:**
            - ``<NR3>`` 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) -> SearchSearchItemTriggerASetholdSettime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime`` command.

        **Description:**
            - This command sets or queries the setup time setting for a setup/hold trigger search to
              determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?

        **Info:**
            - ``<NR3>`` specifies the setup time for setup and hold violation triggering.
        """
        return self._settime


class SearchSearchItemTriggerARuntWidth(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.

    **Description:**
        - This command sets or queries the width setting for a runt trigger search to determine
          where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth?

    **Info:**
        - ``<NR3>`` specifies the minimum width in seconds.
    """


class SearchSearchItemTriggerARuntWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn`` command.

    **Description:**
        - This command sets or returns the condition setting for a runt trigger search to determine
          where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn {OCCurs|WIDERthan}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?

    **Info:**
        - ``OCCurs`` argument specifies a trigger event if a runt of any detectable width occurs.
        - ``WIDERthan`` argument sets the oscilloscope to trigger if a runt pulse is detected with
          width wider than the time set by the ``SEARCH:SEARCHX:TRIGGER:A:RUNT:WIDTH`` command.
    """


class SearchSearchItemTriggerARuntThresholdLowRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>`` command.

    **Description:**
        - This command sets or returns the reference waveform threshold LOW level for a runt trigger
          search to determine where to place a mark. <x> is the search number or the reference
          waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold in volts.
    """


class SearchSearchItemTriggerARuntThresholdLowMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>`` command.

    **Description:**
        - This command sets or queries the math waveform threshold LOW level for a runt trigger
          search to determine where to place a mark. <x> is the search number or the math waveform
          number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold level.
    """


class SearchSearchItemTriggerARuntThresholdLowChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>`` command.

    **Description:**
        - This command sets or queries the channel waveform threshold LOW level for a runt trigger
          search to determine where to place a mark. <x> is the search number or the channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the LOW threshold in volts.
    """


class SearchSearchItemTriggerARuntThresholdLow(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdLowChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>`` command.

        **Description:**
            - This command sets or queries the channel waveform threshold LOW level for a runt
              trigger search to determine where to place a mark. <x> is the search number or the
              channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold in volts.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdLowMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>`` command.

        **Description:**
            - This command sets or queries the math waveform threshold LOW level for a runt trigger
              search to determine where to place a mark. <x> is the search number or the math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold level.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdLowRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>`` command.

        **Description:**
            - This command sets or returns the reference waveform threshold LOW level for a runt
              trigger search to determine where to place a mark. <x> is the search number or the
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the LOW threshold in volts.
        """
        return self._ref


class SearchSearchItemTriggerARuntThresholdHighRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>`` command.

    **Description:**
        - This command sets or returns the reference waveform threshold HIGH level for a runt
          trigger search to determine where to place a mark. <x> is the search number or the
          reference waveform number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold in volts.
    """


class SearchSearchItemTriggerARuntThresholdHighMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>`` command.

    **Description:**
        - This command sets or returns the math waveform threshold HIGH level for a runt trigger
          search to determine where to place a mark. <x> is the search number or the math waveform
          number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold level.
    """


class SearchSearchItemTriggerARuntThresholdHighChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>`` command.

    **Description:**
        - This command sets or queries the channel threshold HIGH level for a runt trigger search to
          determine where to place a mark. <x> is the search number or the channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the HIGH threshold in volts.
    """


class SearchSearchItemTriggerARuntThresholdHigh(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdHighChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>`` command.

        **Description:**
            - This command sets or queries the channel threshold HIGH level for a runt trigger
              search to determine where to place a mark. <x> is the search number or the channel
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold in volts.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdHighMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>`` command.

        **Description:**
            - This command sets or returns the math waveform threshold HIGH level for a runt trigger
              search to determine where to place a mark. <x> is the search number or the math
              waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold level.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerARuntThresholdHighRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>`` command.

        **Description:**
            - This command sets or returns the reference waveform threshold HIGH level for a runt
              trigger search to determine where to place a mark. <x> is the search number or the
              reference waveform number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the HIGH threshold in volts.
        """
        return self._ref


class SearchSearchItemTriggerARuntThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH`` command tree.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._high = SearchSearchItemTriggerARuntThresholdHigh(device, f"{self._cmd_syntax}:HIGH")
        self._low = SearchSearchItemTriggerARuntThresholdLow(device, f"{self._cmd_syntax}:LOW")

    @property
    def high(self) -> SearchSearchItemTriggerARuntThresholdHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH:REF<x>`` command.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerARuntThresholdLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW:REF<x>`` command.
        """
        return self._low


class SearchSearchItemTriggerARuntPolarityRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a runt trigger search to determine
          where to place a mark. <x> is the search number or reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>?

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


class SearchSearchItemTriggerARuntPolarityMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a runt trigger search to determine
          where to place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>?

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


class SearchSearchItemTriggerARuntPolarityChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>`` command.

    **Description:**
        - This command sets or queries the polarity setting for a runt trigger search to determine
          where to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>?

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


class SearchSearchItemTriggerARuntPolarity(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerARuntPolarityChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a runt trigger search to
              determine where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>?

        **Info:**
            - ``EITher`` places a mark on a runt of either polarity.
            - ``NEGative`` places a mark when the falling edge crosses the high threshold and the
              rising edge recrosses the high threshold without either edge ever crossing the low
              threshold.
            - ``POSitive`` places a mark when the rising edge crosses the low threshold and the
              falling edge recrosses the low threshold without either edge ever crossing the high
              threshold.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerARuntPolarityMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a runt trigger search to
              determine where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>?

        **Info:**
            - ``EITher`` places a mark on a runt of either polarity.
            - ``NEGative`` places a mark when the falling edge crosses the high threshold and the
              rising edge recrosses the high threshold without either edge ever crossing the low
              threshold.
            - ``POSitive`` places a mark when the rising edge crosses the low threshold and the
              falling edge recrosses the low threshold without either edge ever crossing the high
              threshold.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerARuntPolarityRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>`` command.

        **Description:**
            - This command sets or queries the polarity setting for a runt trigger search to
              determine where to place a mark. <x> is the search number or reference waveform
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>?

        **Info:**
            - ``EITher`` places a mark on a runt of either polarity.
            - ``NEGative`` places a mark when the falling edge crosses the high threshold and the
              rising edge recrosses the high threshold without either edge ever crossing the low
              threshold.
            - ``POSitive`` places a mark when the rising edge crosses the low threshold and the
              falling edge recrosses the low threshold without either edge ever crossing the high
              threshold.
        """
        return self._ref


class SearchSearchItemTriggerARunt(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT`` command tree.

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

    Properties:
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command tree.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold`` command tree.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn`` command.
        - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._polarity = SearchSearchItemTriggerARuntPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._threshold = SearchSearchItemTriggerARuntThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._when = SearchSearchItemTriggerARuntWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = SearchSearchItemTriggerARuntWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def polarity(self) -> SearchSearchItemTriggerARuntPolarity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity:REF<x>`` command.
        """
        return self._polarity

    @property
    def threshold(self) -> SearchSearchItemTriggerARuntThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH`` command tree.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command tree.
        """
        return self._threshold

    @property
    def when(self) -> SearchSearchItemTriggerARuntWhen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn`` command.

        **Description:**
            - This command sets or returns the condition setting for a runt trigger search to
              determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn {OCCurs|WIDERthan}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?

        **Info:**
            - ``OCCurs`` argument specifies a trigger event if a runt of any detectable width
              occurs.
            - ``WIDERthan`` argument sets the oscilloscope to trigger if a runt pulse is detected
              with width wider than the time set by the ``SEARCH:SEARCHX:TRIGGER:A:RUNT:WIDTH``
              command.
        """
        return self._when

    @property
    def width(self) -> SearchSearchItemTriggerARuntWidth:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.

        **Description:**
            - This command sets or queries the width setting for a runt trigger search to determine
              where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth?

        **Info:**
            - ``<NR3>`` specifies the minimum width in seconds.
        """
        return self._width


class SearchSearchItemTriggerAPulseSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce`` command.

    **Description:**
        - This command sets or queries the source waveform for a pulse trigger search to determine
          where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce?

    **Info:**
        - ``CH<x>`` specifies one input channel as the edge source, where <x> = 1, 2, 3 or 4.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerAPulse(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULse`` command tree.

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

    **Info:**
        - ``CH<x>`` specifies one input channel as the edge source, where <x> = 1, 2, 3 or 4.

    Properties:
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce`` command.
    """

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

    @property
    def source(self) -> SearchSearchItemTriggerAPulseSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce`` command.

        **Description:**
            - This command sets or queries the source waveform for a pulse trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce?

        **Info:**
            - ``CH<x>`` specifies one input channel as the edge source, where <x> = 1, 2, 3 or 4.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._source


class SearchSearchItemTriggerAPatternWhenMorelimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit`` command.

    **Description:**
        - This command sets or queries the time the pattern trigger morelimit test uses to
          determines where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit?

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


class SearchSearchItemTriggerAPatternWhenLesslimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit`` command.

    **Description:**
        - This command sets or queries the time the pattern trigger lesslimit test uses to
          determines where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit?

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


class SearchSearchItemTriggerAPatternWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn`` command.

    **Description:**
        - This command sets or queries the pattern trigger pattern test that determines where to
          place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn {TRUe|FALSe|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn?

    **Info:**
        - ``TRUe`` specifies a TRUE logic level.
        - ``FALSe`` specifies a FALSE logic level.
        - ``LESSThan`` specifies the pattern must be TRUE less than the time limit.
        - ``MOREThan`` specifies the pattern must be TRUE more than the time limit.

    Properties:
        - ``.lesslimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit`` command.
        - ``.morelimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lesslimit = SearchSearchItemTriggerAPatternWhenLesslimit(
            device, f"{self._cmd_syntax}:LESSLimit"
        )
        self._morelimit = SearchSearchItemTriggerAPatternWhenMorelimit(
            device, f"{self._cmd_syntax}:MORELimit"
        )

    @property
    def lesslimit(self) -> SearchSearchItemTriggerAPatternWhenLesslimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit`` command.

        **Description:**
            - This command sets or queries the time the pattern trigger lesslimit test uses to
              determines where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit?

        **Info:**
            - ``<NR3>`` is the time in seconds.
        """
        return self._lesslimit

    @property
    def morelimit(self) -> SearchSearchItemTriggerAPatternWhenMorelimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit`` command.

        **Description:**
            - This command sets or queries the time the pattern trigger morelimit test uses to
              determines where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit?

        **Info:**
            - ``<NR3>`` is the time in seconds.
        """
        return self._morelimit


class SearchSearchItemTriggerAPattern(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern`` command tree.

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

    Properties:
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn`` command.
    """

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

    @property
    def when(self) -> SearchSearchItemTriggerAPatternWhen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn`` command.

        **Description:**
            - This command sets or queries the pattern trigger pattern test that determines where to
              place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn {TRUe|FALSe|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn?

        **Info:**
            - ``TRUe`` specifies a TRUE logic level.
            - ``FALSe`` specifies a FALSE logic level.
            - ``LESSThan`` specifies the pattern must be TRUE less than the time limit.
            - ``MOREThan`` specifies the pattern must be TRUE more than the time limit.

        Sub-properties:
            - ``.lesslimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:LESSLimit`` command.
            - ``.morelimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn:MORELimit`` command.
        """
        return self._when


class SearchSearchItemTriggerALogicThresholdRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>`` command.

    **Description:**
        - This command sets or queries the reference waveform threshold level for a pattern or state
          trigger search to determine where to place a mark. <x> is the search number or the
          reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>?

    **Info:**
        - ``<NR3>`` specifies the threshold level in volts.
    """


class SearchSearchItemTriggerALogicThresholdMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>`` command.

    **Description:**
        - This command sets or queries the math waveform threshold level for a pattern or state
          trigger search to determine where to place a mark. <x> is the search number or channel
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the threshold level in volts.
    """


class SearchSearchItemTriggerALogicThresholdChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>`` command.

    **Description:**
        - This command sets or queries the channel threshold level for a pattern or state trigger
          search to determine where to place a mark. SEARCH<x> is the search number and CH<x> is the
          channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>?

    **Info:**
        - ``<NR3>`` specifies the threshold level in volts.
    """


class SearchSearchItemTriggerALogicThreshold(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerALogicThresholdChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>`` command.

        **Description:**
            - This command sets or queries the channel threshold level for a pattern or state
              trigger search to determine where to place a mark. SEARCH<x> is the search number and
              CH<x> is the channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>?

        **Info:**
            - ``<NR3>`` specifies the threshold level in volts.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerALogicThresholdMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>`` command.

        **Description:**
            - This command sets or queries the math waveform threshold level for a pattern or state
              trigger search to determine where to place a mark. <x> is the search number or channel
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the threshold level in volts.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerALogicThresholdRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>`` command.

        **Description:**
            - This command sets or queries the reference waveform threshold level for a pattern or
              state trigger search to determine where to place a mark. <x> is the search number or
              the reference waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>?

        **Info:**
            - ``<NR3>`` specifies the threshold level in volts.
        """
        return self._ref


class SearchSearchItemTriggerALogicInputRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>`` command.

    **Description:**
        - This command specifies the logic condition of the reference waveform to be used in a logic
          search. SEARCH<x> is the search number, which is always 1, and REF<x> is the reference
          channel number, which can be 1-4.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x> {HIGH|LOW|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>?

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


class SearchSearchItemTriggerALogicInputMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>`` command.

    **Description:**
        - This command sets or queries the Boolean logic criteria for a pattern or state trigger
          search to determine where to place a mark. <x> is the search number or the math waveform
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x> {HIGH|LOW|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>?

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


class SearchSearchItemTriggerALogicInputChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>`` command.

    **Description:**
        - This command specifies the logic condition to be used in a logic search when the input is
          an analog channel. SEARCH<x> is the search number, which is always 1, and CH<x> is the
          channel number, which can be 1-4.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x> {HIGH|LOW|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>?

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


class SearchSearchItemTriggerALogicInput(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerALogicInputChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>`` command.

        **Description:**
            - This command specifies the logic condition to be used in a logic search when the input
              is an analog channel. SEARCH<x> is the search number, which is always 1, and CH<x> is
              the channel number, which can be 1-4.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x> {HIGH|LOW|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>?

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

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerALogicInputMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>`` command.

        **Description:**
            - This command sets or queries the Boolean logic criteria for a pattern or state trigger
              search to determine where to place a mark. <x> is the search number or the math
              waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x> {HIGH|LOW|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>?

        **Info:**
            - ``HIGH`` specifies a high logic level.
            - ``LOW`` specifies a low logic level.
            - ``X`` specifies a 'don't care' condition.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerALogicInputRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>`` command.

        **Description:**
            - This command specifies the logic condition of the reference waveform to be used in a
              logic search. SEARCH<x> is the search number, which is always 1, and REF<x> is the
              reference channel number, which can be 1-4.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x> {HIGH|LOW|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>?

        **Info:**
            - ``HIGH`` specifies a high logic level.
            - ``LOW`` specifies a low logic level.
            - ``X`` specifies a 'don't care' condition.
        """
        return self._ref


class SearchSearchItemTriggerALogicFunction(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.

    **Description:**
        - This command sets or queries the logic operator for a pattern or state trigger search to
          determine where to place a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion?

    **Info:**
        - ``AND`` places a mark if all conditions are true.
        - ``NANd`` places a mark if any of the conditions are false.
        - ``NOR`` places a mark if all conditions are false.
        - ``OR`` places a mark if any of the conditions are true.
    """


class SearchSearchItemTriggerALogic(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.

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

    Properties:
        - ``.function``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.
        - ``.input``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut`` command tree.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._function = SearchSearchItemTriggerALogicFunction(
            device, f"{self._cmd_syntax}:FUNCtion"
        )
        self._input = SearchSearchItemTriggerALogicInput(device, f"{self._cmd_syntax}:INPut")
        self._threshold = SearchSearchItemTriggerALogicThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )

    @property
    def function(self) -> SearchSearchItemTriggerALogicFunction:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.

        **Description:**
            - This command sets or queries the logic operator for a pattern or state trigger search
              to determine where to place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion {AND|NANd|NOR|OR}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion?

        **Info:**
            - ``AND`` places a mark if all conditions are true.
            - ``NANd`` places a mark if any of the conditions are false.
            - ``NOR`` places a mark if all conditions are false.
            - ``OR`` places a mark if any of the conditions are true.
        """
        return self._function

    @property
    def input(self) -> SearchSearchItemTriggerALogicInput:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut:REF<x>`` command.
        """
        return self._input

    @property
    def threshold(self) -> SearchSearchItemTriggerALogicThreshold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold:REF<x>`` command.
        """
        return self._threshold


class SearchSearchItemTriggerALevelRefItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>`` command.

    **Description:**
        - This command sets the threshold level to use when searching on a reference waveform.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x> {<NR3>|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>?

    **Info:**
        - ``<NR3>`` is a floating point number that sets the threshold level to search for, in
          Volts, when searching on a reference waveform.
        - ``ECL`` sets the threshold level to a preset ECL high level of -1.3V.
        - ``TTL`` sets the threshold level to a preset TTL high level of 1.4V.
    """


class SearchSearchItemTriggerALevelMathItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>`` command.

    **Description:**
        - This command sets or queries the math waveform level for an edge trigger search to
          determine where to place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x> {<NR3>|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>?

    **Info:**
        - ``<NR3>`` specifies the trigger level in volts.
        - ``ECL`` specifies a -1.3 V trigger level.
        - ``TTL`` specifies a 1.4 V trigger level.
    """


class SearchSearchItemTriggerALevelChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>`` command.

    **Description:**
        - This command sets the threshold level to use when searching on an analog waveform. x can
          be 1 - 4.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x> {<NR3>|ECL|TTL}
        - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>?

    **Info:**
        - ``<NR3>`` is a floating point number that sets the threshold level to search for, in
          Volts, when searching on channel <x>.
        - ``ECL`` sets the threshold level to a preset ECL high level of -1.3V.
        - ``TTL`` sets the threshold level to a preset TTL high level of 1.4V.
    """


class SearchSearchItemTriggerALevel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>`` command.
    """

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

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

        **Description:**
            - This command sets the threshold level to use when searching on an analog waveform. x
              can be 1 - 4.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x> {<NR3>|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>?

        **Info:**
            - ``<NR3>`` is a floating point number that sets the threshold level to search for, in
              Volts, when searching on channel <x>.
            - ``ECL`` sets the threshold level to a preset ECL high level of -1.3V.
            - ``TTL`` sets the threshold level to a preset TTL high level of 1.4V.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerALevelMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>`` command.

        **Description:**
            - This command sets or queries the math waveform level for an edge trigger search to
              determine where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x> {<NR3>|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>?

        **Info:**
            - ``<NR3>`` specifies the trigger level in volts.
            - ``ECL`` specifies a -1.3 V trigger level.
            - ``TTL`` specifies a 1.4 V trigger level.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerALevelRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>`` command.

        **Description:**
            - This command sets the threshold level to use when searching on a reference waveform.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x> {<NR3>|ECL|TTL}
            - SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>?

        **Info:**
            - ``<NR3>`` is a floating point number that sets the threshold level to search for, in
              Volts, when searching on a reference waveform.
            - ``ECL`` sets the threshold level to a preset ECL high level of -1.3V.
            - ``TTL`` sets the threshold level to a preset TTL high level of 1.4V.
        """
        return self._ref


class SearchSearchItemTriggerAGlitchWidth(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth`` command.

    **Description:**
        - This command sets or queries the glitch width for a glitch trigger search to determine
          where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth?

    **Info:**
        - ``<NR3>`` specifies the glitch width in seconds.
    """


class SearchSearchItemTriggerAGlitchTrigif(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF`` command.

    **Description:**
        - This command sets or queries the accept or reject state for a glitch trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF {ACCept|REJect}
        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF?

    **Info:**
        - ``ACCept`` specifies that a glitch occurs.
        - ``REJect`` specifies that a glitch does not occur.
    """


class SearchSearchItemTriggerAGlitchPolarityRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a glitch trigger search to determine where
          to place a mark. <x> is the search number or reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>?

    **Info:**
        - ``EITher`` specifies positive or negative polarity.
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive glitch polarity.
    """


class SearchSearchItemTriggerAGlitchPolarityMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a glitch trigger search to determine where
          to place a mark. <x> is the search number or math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>?

    **Info:**
        - ``EITher`` specifies positive or negative polarity.
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive glitch polarity.
    """


class SearchSearchItemTriggerAGlitchPolarityChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>`` command.

    **Description:**
        - This command sets or queries the polarity for a glitch trigger search to determine where
          to place a mark. <x> is the search number or channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>?

    **Info:**
        - ``EITher`` specifies positive or negative polarity.
        - ``NEGAtive`` specifies a negative polarity.
        - ``POSITIVe`` specifies a positive glitch polarity.
    """


class SearchSearchItemTriggerAGlitchPolarity(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerAGlitchPolarityChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a glitch trigger search to determine
              where to place a mark. <x> is the search number or channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>?

        **Info:**
            - ``EITher`` specifies positive or negative polarity.
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive glitch polarity.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerAGlitchPolarityMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a glitch trigger search to determine
              where to place a mark. <x> is the search number or math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>?

        **Info:**
            - ``EITher`` specifies positive or negative polarity.
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive glitch polarity.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerAGlitchPolarityRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>`` command.

        **Description:**
            - This command sets or queries the polarity for a glitch trigger search to determine
              where to place a mark. <x> is the search number or reference waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x> {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>?

        **Info:**
            - ``EITher`` specifies positive or negative polarity.
            - ``NEGAtive`` specifies a negative polarity.
            - ``POSITIVe`` specifies a positive glitch polarity.
        """
        return self._ref


class SearchSearchItemTriggerAGlitch(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch`` command tree.

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

    Properties:
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity`` command tree.
        - ``.trigif``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF`` command.
        - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._polarity = SearchSearchItemTriggerAGlitchPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._trigif = SearchSearchItemTriggerAGlitchTrigif(device, f"{self._cmd_syntax}:TRIGIF")
        self._width = SearchSearchItemTriggerAGlitchWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def polarity(self) -> SearchSearchItemTriggerAGlitchPolarity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity:REF<x>`` command.
        """
        return self._polarity

    @property
    def trigif(self) -> SearchSearchItemTriggerAGlitchTrigif:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF`` command.

        **Description:**
            - This command sets or queries the accept or reject state for a glitch trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF {ACCept|REJect}
            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF?

        **Info:**
            - ``ACCept`` specifies that a glitch occurs.
            - ``REJect`` specifies that a glitch does not occur.
        """
        return self._trigif

    @property
    def width(self) -> SearchSearchItemTriggerAGlitchWidth:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth`` command.

        **Description:**
            - This command sets or queries the glitch width for a glitch trigger search to determine
              where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth?

        **Info:**
            - ``<NR3>`` specifies the glitch width in seconds.
        """
        return self._width


class SearchSearchItemTriggerAEdgeSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.

    **Description:**
        - This command sets or queries the source waveform for an edge trigger search to determine
          where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?

    **Info:**
        - ``CH<x>`` specifies one input channel as the edge source, where <x> is the channel number.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerAEdgeSlopeRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>`` command.

    **Description:**
        - This command sets or queries the slope for an edge trigger search to determine where to
          place a mark. <x> is the search number or the reference waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x> {RISe|FALL|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>?

    **Info:**
        - ``RISe`` specifies a rising edge.
        - ``FALL`` specifies a falling edge.
        - ``EITHER`` specifies either rising or falling edge.
    """


class SearchSearchItemTriggerAEdgeSlopeMathItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>`` command.

    **Description:**
        - This command sets or queries the slope for an edge trigger search to determine where to
          place a mark. <x> is the search number or the math waveform number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x> {RISe|FALL|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>?

    **Info:**
        - ``RISe`` specifies a rising edge.
        - ``FALL`` specifies a falling edge.
        - ``EITHER`` specifies either rising or falling edge.
    """


class SearchSearchItemTriggerAEdgeSlopeChannel(ValidatedChannel, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>`` command.

    **Description:**
        - This command sets or queries the slope for an edge trigger search to determine where to
          place a mark. <x> is the search number or the channel number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x> {RISe|FALL|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>?

    **Info:**
        - ``RISe`` specifies a rising edge.
        - ``FALL`` specifies a falling edge.
        - ``EITher`` specifies either rising or falling edge.
    """


class SearchSearchItemTriggerAEdgeSlope(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command tree.

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

    Properties:
        - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>`` command.
        - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>`` command.
        - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>`` command.
    """

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

    @property
    def ch(self) -> Dict[int, SearchSearchItemTriggerAEdgeSlopeChannel]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>`` command.

        **Description:**
            - This command sets or queries the slope for an edge trigger search to determine where
              to place a mark. <x> is the search number or the channel number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x> {RISe|FALL|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>?

        **Info:**
            - ``RISe`` specifies a rising edge.
            - ``FALL`` specifies a falling edge.
            - ``EITher`` specifies either rising or falling edge.
        """
        return self._ch

    @property
    def math(self) -> Dict[int, SearchSearchItemTriggerAEdgeSlopeMathItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>`` command.

        **Description:**
            - This command sets or queries the slope for an edge trigger search to determine where
              to place a mark. <x> is the search number or the math waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x> {RISe|FALL|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>?

        **Info:**
            - ``RISe`` specifies a rising edge.
            - ``FALL`` specifies a falling edge.
            - ``EITHER`` specifies either rising or falling edge.
        """
        return self._math

    @property
    def ref(self) -> Dict[int, SearchSearchItemTriggerAEdgeSlopeRefItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>`` command.

        **Description:**
            - This command sets or queries the slope for an edge trigger search to determine where
              to place a mark. <x> is the search number or the reference waveform number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x> {RISe|FALL|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>?

        **Info:**
            - ``RISe`` specifies a rising edge.
            - ``FALL`` specifies a falling edge.
            - ``EITHER`` specifies either rising or falling edge.
        """
        return self._ref


class SearchSearchItemTriggerAEdge(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.

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

    Properties:
        - ``.slope``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command tree.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.
    """

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

    @property
    def slope(self) -> SearchSearchItemTriggerAEdgeSlope:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe:REF<x>`` command.
        """
        return self._slope

    @property
    def source(self) -> SearchSearchItemTriggerAEdgeSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.

        **Description:**
            - This command sets or queries the source waveform for an edge trigger search to
              determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?

        **Info:**
            - ``CH<x>`` specifies one input channel as the edge source, where <x> is the channel
              number.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._source


class SearchSearchItemTriggerADdrmemoryStrobesource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource`` command.

    **Description:**
        - This command sets or queries the strobe source for a DDR Memory analysis search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource?

    **Info:**
        - ``CH<x>`` specifies the input channel as the search source, where <x> is the channel
          number.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerADdrmemoryStandard(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard`` command.

    **Description:**
        - This command sets or queries the DDR standard for a DDR Memory analysis search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard {DDR|DDR2|DDR3|GDDR3|LPDDR|DDR3L|DDR4|LPDDR3}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard?

    **Info:**
        - ``<DDR>`` sets the DDR standard type to DDR.
        - ``<DDR2>`` sets the DDR standard type to DDR2.
        - ``<DDR3>`` sets the DDR standard type to DDR3.
        - ``<GDDR3>`` sets the DDR standard type to GDDR3.
        - ``<LPDDR>`` sets the DDR standard type to LPDDR.
        - ``<DDR3L>`` sets the DDR standard type to DDR3L.
        - ``<DDR4>`` sets the DDR standard type to DDR4.
        - ``<LPDDR3>`` sets the DDR standard type to LPDDR3.
    """  # noqa: E501


class SearchSearchItemTriggerADdrmemoryReflevelStrobeMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID`` command.

    **Description:**
        - This command sets or queries the value of the strobe MID reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?

    **Info:**
        - ``<NRF>`` specifies the value of the strobe MID reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelStrobeLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW`` command.

    **Description:**
        - This command sets or queries the value of the strobe LOW reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?

    **Info:**
        - ``<NRF>`` specifies the value of the strobe LOW reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelStrobeHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH`` command.

    **Description:**
        - This command sets or queries the value of the strobe HIGH reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?

    **Info:**
        - ``<NRF>`` specifies the value of the strobe HIGH reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelStrobe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._high = SearchSearchItemTriggerADdrmemoryReflevelStrobeHigh(
            device, f"{self._cmd_syntax}:HIGH"
        )
        self._low = SearchSearchItemTriggerADdrmemoryReflevelStrobeLow(
            device, f"{self._cmd_syntax}:LOW"
        )
        self._mid = SearchSearchItemTriggerADdrmemoryReflevelStrobeMid(
            device, f"{self._cmd_syntax}:MID"
        )

    @property
    def high(self) -> SearchSearchItemTriggerADdrmemoryReflevelStrobeHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH`` command.

        **Description:**
            - This command sets or queries the value of the strobe HIGH reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH?

        **Info:**
            - ``<NRF>`` specifies the value of the strobe HIGH reference level in volts.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrmemoryReflevelStrobeLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW`` command.

        **Description:**
            - This command sets or queries the value of the strobe LOW reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW?

        **Info:**
            - ``<NRF>`` specifies the value of the strobe LOW reference level in volts.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrmemoryReflevelStrobeMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID`` command.

        **Description:**
            - This command sets or queries the value of the strobe MID reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID?

        **Info:**
            - ``<NRF>`` specifies the value of the strobe MID reference level in volts.
        """
        return self._mid


class SearchSearchItemTriggerADdrmemoryReflevelDataMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID`` command.

    **Description:**
        - This command sets or queries the value of the data MID reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?

    **Info:**
        - ``<NRF>`` specifies the value of the data MID reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelDataLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW`` command.

    **Description:**
        - This command sets or queries the value of the data LOW reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?

    **Info:**
        - ``<NRF>`` specifies the value of the data LOW reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelDataHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH`` command.

    **Description:**
        - This command sets or queries the value of the data HIGH reference level for a DDR Memory
          analysis search to determine where to place a mark. You can set the value only when
          AUTOREFLEVEL is Custom. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH <NRF>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?

    **Info:**
        - ``<NRF>`` specifies the value of the data HIGH reference level in volts.
    """


class SearchSearchItemTriggerADdrmemoryReflevelData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._high = SearchSearchItemTriggerADdrmemoryReflevelDataHigh(
            device, f"{self._cmd_syntax}:HIGH"
        )
        self._low = SearchSearchItemTriggerADdrmemoryReflevelDataLow(
            device, f"{self._cmd_syntax}:LOW"
        )
        self._mid = SearchSearchItemTriggerADdrmemoryReflevelDataMid(
            device, f"{self._cmd_syntax}:MID"
        )

    @property
    def high(self) -> SearchSearchItemTriggerADdrmemoryReflevelDataHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH`` command.

        **Description:**
            - This command sets or queries the value of the data HIGH reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH?

        **Info:**
            - ``<NRF>`` specifies the value of the data HIGH reference level in volts.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrmemoryReflevelDataLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW`` command.

        **Description:**
            - This command sets or queries the value of the data LOW reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW?

        **Info:**
            - ``<NRF>`` specifies the value of the data LOW reference level in volts.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrmemoryReflevelDataMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID`` command.

        **Description:**
            - This command sets or queries the value of the data MID reference level for a DDR
              Memory analysis search to determine where to place a mark. You can set the value only
              when AUTOREFLEVEL is Custom. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID <NRF>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID?

        **Info:**
            - ``<NRF>`` specifies the value of the data MID reference level in volts.
        """
        return self._mid


class SearchSearchItemTriggerADdrmemoryReflevel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa`` command tree.
        - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerADdrmemoryReflevelData(
            device, f"{self._cmd_syntax}:DATa"
        )
        self._strobe = SearchSearchItemTriggerADdrmemoryReflevelStrobe(
            device, f"{self._cmd_syntax}:STROBE"
        )

    @property
    def data(self) -> SearchSearchItemTriggerADdrmemoryReflevelData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa:MID`` command.
        """
        return self._data

    @property
    def strobe(self) -> SearchSearchItemTriggerADdrmemoryReflevelStrobe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE:MID`` command.
        """
        return self._strobe


class SearchSearchItemTriggerADdrmemoryMincas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas`` command.

    **Description:**
        - This command sets or queries the minimum distance in clock periods, to the left of the
          start of the mark where the instrument looks for the chip-select pulse.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas?

    **Info:**
        - ``<NR3>`` is the minimum distance in clock periods, to the left of the start of the mark
          where the instrument looks for the chip-select pulse.
    """


class SearchSearchItemTriggerADdrmemoryMaxcas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas`` command.

    **Description:**
        - This command sets or queries the maximum distance in clock periods, to the left of the
          start of the mark where the instrument looks for the chip-select pulse.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas?

    **Info:**
        - ``<NR3>`` is the maximum distance in clock periods, to the left of the start of the mark
          where the instrument looks for the chip-select pulse.
    """


class SearchSearchItemTriggerADdrmemoryMargin(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin`` command.

    **Description:**
        - This command sets or queries the termination logic margin for back-to-back writes.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin?

    **Info:**
        - ``<NR3>`` is the termination logic margin in percent.
    """


class SearchSearchItemTriggerADdrmemoryHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis`` command.

    **Description:**
        - This command sets or queries the hysteresis percent for DDR memory searches.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis?

    **Info:**
        - ``<NR3>`` is the hysteresis amount in percent.
    """


class SearchSearchItemTriggerADdrmemoryDatasource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource`` command.

    **Description:**
        - This command sets or queries the data source for a DDR Memory analysis search to determine
          where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource {CH<x>|MATH<x>|REF<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource?

    **Info:**
        - ``CH<x>`` specifies one input channel as the search source, where <x> is the channel
          number.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
    """


class SearchSearchItemTriggerADdrmemoryCssource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource`` command.

    **Description:**
        - This command sets or queries the chip select source for DDR memory searches.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource {CH<x>|MATH<x>|REF<x>|NONe}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource?

    **Info:**
        - ``CH<x>`` specifies one input channel as the search source, where <x> is the channel
          number and can be 1, 2, 3, or 4.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or 4.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3 or
          4.
        - ``NONe`` specifies no CSSource.
    """


class SearchSearchItemTriggerADdrmemoryCsmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode`` command.

    **Description:**
        - This command sets or queries the chip-select mode for DDR memory searches.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode {AUTO|MANual}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode?

    **Info:**
        - ``AUTO`` mode calculates the chip-select level for you.
        - ``MANUAL`` lets you manually set the chip-select level.
    """


class SearchSearchItemTriggerADdrmemoryCslevel(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel`` command.

    **Description:**
        - This command sets or queries the DDR memory search chip-select level.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel?

    **Info:**
        - ``<NR3>`` is the amount of chip-select level in volts.
    """


class SearchSearchItemTriggerADdrmemoryCsactive(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive`` command.

    **Description:**
        - This command sets or queries whether the expected chip-select will be an active HIGH or
          LOW.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive {HIGH|LOW}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive?

    **Info:**
        - ``HIGH`` sets the search to look for an active HIGH.
        - ``LOW`` sets the search to look for an active HIGH.
    """


class SearchSearchItemTriggerADdrmemoryBitrate(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate`` command.

    **Description:**
        - This command sets or queries the data rate value for a DDR Memory analysis search to
          determine where to place a mark. You can set the bit rate only when AUTOBITRATE is Custom.
          <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate?

    **Info:**
        - ``<NR3>`` specifies the DDR data rate in bits per second.
    """


class SearchSearchItemTriggerADdrmemoryAutoreflevel(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel`` command.

    **Description:**
        - This command sets or queries the reference levels for a DDR Memory analysis search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel {AUTO|CUSTom}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel?

    **Info:**
        - ``AUTO`` sets the reference levels to auto. When auto is selected, the instrument
          determines the reference level from the applied signal.
        - ``CUSTom`` sets the reference levels to custom. When custom is selected, you set the
          reference level.
    """


class SearchSearchItemTriggerADdrmemoryAutobitrate(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate`` command.

    **Description:**
        - This command sets or queries the auto bit rate value for a DDR Memory analysis search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate {AUTO|CUSTom|DDR200|DDR266|DDR333|DDR370| DDR400|DDR533|DDR667|DDR800|DDR1066|DDR1200|DDR1333|DDR1466| DDR1600|DDR1866|DDR2133|DDR2400|DDR2666|DDR3200|DDR4000| DDR4800|DDR5000|DDR5500}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate?

    **Info:**
        - ``AUTO`` sets the auto bit rate to auto. When auto is selected, the instrument determines
          the bit rate from the applied signal.
        - ``CUSTom`` sets the auto bit rate to custom. When custom is selected, you set the bit rate
          value.
        - ``DDR200 - DDR5500`` sets the bit rate appropriate for the specified standard.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerADdrmemory(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory`` command tree.

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

    Properties:
        - ``.autobitrate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate`` command.
        - ``.autoreflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel`` command.
        - ``.bitrate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate`` command.
        - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive`` command.
        - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel`` command.
        - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode`` command.
        - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource`` command.
        - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource`` command.
        - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis`` command.
        - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin`` command.
        - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas`` command.
        - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas`` command.
        - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel`` command tree.
        - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard`` command.
        - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._autobitrate = SearchSearchItemTriggerADdrmemoryAutobitrate(
            device, f"{self._cmd_syntax}:AUTOBitrate"
        )
        self._autoreflevel = SearchSearchItemTriggerADdrmemoryAutoreflevel(
            device, f"{self._cmd_syntax}:AUTOReflevel"
        )
        self._bitrate = SearchSearchItemTriggerADdrmemoryBitrate(
            device, f"{self._cmd_syntax}:BITRate"
        )
        self._csactive = SearchSearchItemTriggerADdrmemoryCsactive(
            device, f"{self._cmd_syntax}:CSActive"
        )
        self._cslevel = SearchSearchItemTriggerADdrmemoryCslevel(
            device, f"{self._cmd_syntax}:CSLevel"
        )
        self._csmode = SearchSearchItemTriggerADdrmemoryCsmode(device, f"{self._cmd_syntax}:CSMode")
        self._cssource = SearchSearchItemTriggerADdrmemoryCssource(
            device, f"{self._cmd_syntax}:CSSource"
        )
        self._datasource = SearchSearchItemTriggerADdrmemoryDatasource(
            device, f"{self._cmd_syntax}:DATASource"
        )
        self._hysteresis = SearchSearchItemTriggerADdrmemoryHysteresis(
            device, f"{self._cmd_syntax}:HYSteresis"
        )
        self._margin = SearchSearchItemTriggerADdrmemoryMargin(device, f"{self._cmd_syntax}:MARgin")
        self._maxcas = SearchSearchItemTriggerADdrmemoryMaxcas(device, f"{self._cmd_syntax}:MAXCas")
        self._mincas = SearchSearchItemTriggerADdrmemoryMincas(device, f"{self._cmd_syntax}:MINCas")
        self._reflevel = SearchSearchItemTriggerADdrmemoryReflevel(
            device, f"{self._cmd_syntax}:REFLevel"
        )
        self._standard = SearchSearchItemTriggerADdrmemoryStandard(
            device, f"{self._cmd_syntax}:STANdard"
        )
        self._strobesource = SearchSearchItemTriggerADdrmemoryStrobesource(
            device, f"{self._cmd_syntax}:STROBEsource"
        )

    @property
    def autobitrate(self) -> SearchSearchItemTriggerADdrmemoryAutobitrate:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate`` command.

        **Description:**
            - This command sets or queries the auto bit rate value for a DDR Memory analysis search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate {AUTO|CUSTom|DDR200|DDR266|DDR333|DDR370| DDR400|DDR533|DDR667|DDR800|DDR1066|DDR1200|DDR1333|DDR1466| DDR1600|DDR1866|DDR2133|DDR2400|DDR2666|DDR3200|DDR4000| DDR4800|DDR5000|DDR5500}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate?

        **Info:**
            - ``AUTO`` sets the auto bit rate to auto. When auto is selected, the instrument
              determines the bit rate from the applied signal.
            - ``CUSTom`` sets the auto bit rate to custom. When custom is selected, you set the bit
              rate value.
            - ``DDR200 - DDR5500`` sets the bit rate appropriate for the specified standard.
        """  # noqa: E501
        return self._autobitrate

    @property
    def autoreflevel(self) -> SearchSearchItemTriggerADdrmemoryAutoreflevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel`` command.

        **Description:**
            - This command sets or queries the reference levels for a DDR Memory analysis search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel {AUTO|CUSTom}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel?

        **Info:**
            - ``AUTO`` sets the reference levels to auto. When auto is selected, the instrument
              determines the reference level from the applied signal.
            - ``CUSTom`` sets the reference levels to custom. When custom is selected, you set the
              reference level.
        """
        return self._autoreflevel

    @property
    def bitrate(self) -> SearchSearchItemTriggerADdrmemoryBitrate:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate`` command.

        **Description:**
            - This command sets or queries the data rate value for a DDR Memory analysis search to
              determine where to place a mark. You can set the bit rate only when AUTOBITRATE is
              Custom. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate?

        **Info:**
            - ``<NR3>`` specifies the DDR data rate in bits per second.
        """
        return self._bitrate

    @property
    def csactive(self) -> SearchSearchItemTriggerADdrmemoryCsactive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive`` command.

        **Description:**
            - This command sets or queries whether the expected chip-select will be an active HIGH
              or LOW.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive {HIGH|LOW}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive?

        **Info:**
            - ``HIGH`` sets the search to look for an active HIGH.
            - ``LOW`` sets the search to look for an active HIGH.
        """
        return self._csactive

    @property
    def cslevel(self) -> SearchSearchItemTriggerADdrmemoryCslevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel`` command.

        **Description:**
            - This command sets or queries the DDR memory search chip-select level.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel?

        **Info:**
            - ``<NR3>`` is the amount of chip-select level in volts.
        """
        return self._cslevel

    @property
    def csmode(self) -> SearchSearchItemTriggerADdrmemoryCsmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode`` command.

        **Description:**
            - This command sets or queries the chip-select mode for DDR memory searches.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode {AUTO|MANual}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode?

        **Info:**
            - ``AUTO`` mode calculates the chip-select level for you.
            - ``MANUAL`` lets you manually set the chip-select level.
        """
        return self._csmode

    @property
    def cssource(self) -> SearchSearchItemTriggerADdrmemoryCssource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource`` command.

        **Description:**
            - This command sets or queries the chip select source for DDR memory searches.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource {CH<x>|MATH<x>|REF<x>|NONe}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource?

        **Info:**
            - ``CH<x>`` specifies one input channel as the search source, where <x> is the channel
              number and can be 1, 2, 3, or 4.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
            - ``NONe`` specifies no CSSource.
        """
        return self._cssource

    @property
    def datasource(self) -> SearchSearchItemTriggerADdrmemoryDatasource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource`` command.

        **Description:**
            - This command sets or queries the data source for a DDR Memory analysis search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource?

        **Info:**
            - ``CH<x>`` specifies one input channel as the search source, where <x> is the channel
              number.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._datasource

    @property
    def hysteresis(self) -> SearchSearchItemTriggerADdrmemoryHysteresis:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis`` command.

        **Description:**
            - This command sets or queries the hysteresis percent for DDR memory searches.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis?

        **Info:**
            - ``<NR3>`` is the hysteresis amount in percent.
        """
        return self._hysteresis

    @property
    def margin(self) -> SearchSearchItemTriggerADdrmemoryMargin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin`` command.

        **Description:**
            - This command sets or queries the termination logic margin for back-to-back writes.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin?

        **Info:**
            - ``<NR3>`` is the termination logic margin in percent.
        """
        return self._margin

    @property
    def maxcas(self) -> SearchSearchItemTriggerADdrmemoryMaxcas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas`` command.

        **Description:**
            - This command sets or queries the maximum distance in clock periods, to the left of the
              start of the mark where the instrument looks for the chip-select pulse.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas?

        **Info:**
            - ``<NR3>`` is the maximum distance in clock periods, to the left of the start of the
              mark where the instrument looks for the chip-select pulse.
        """
        return self._maxcas

    @property
    def mincas(self) -> SearchSearchItemTriggerADdrmemoryMincas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas`` command.

        **Description:**
            - This command sets or queries the minimum distance in clock periods, to the left of the
              start of the mark where the instrument looks for the chip-select pulse.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas?

        **Info:**
            - ``<NR3>`` is the minimum distance in clock periods, to the left of the start of the
              mark where the instrument looks for the chip-select pulse.
        """
        return self._mincas

    @property
    def reflevel(self) -> SearchSearchItemTriggerADdrmemoryReflevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:DATa`` command tree.
            - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel:STROBE`` command
              tree.
        """
        return self._reflevel

    @property
    def standard(self) -> SearchSearchItemTriggerADdrmemoryStandard:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard`` command.

        **Description:**
            - This command sets or queries the DDR standard for a DDR Memory analysis search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard {DDR|DDR2|DDR3|GDDR3|LPDDR|DDR3L|DDR4|LPDDR3}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard?

        **Info:**
            - ``<DDR>`` sets the DDR standard type to DDR.
            - ``<DDR2>`` sets the DDR standard type to DDR2.
            - ``<DDR3>`` sets the DDR standard type to DDR3.
            - ``<GDDR3>`` sets the DDR standard type to GDDR3.
            - ``<LPDDR>`` sets the DDR standard type to LPDDR.
            - ``<DDR3L>`` sets the DDR standard type to DDR3L.
            - ``<DDR4>`` sets the DDR standard type to DDR4.
            - ``<LPDDR3>`` sets the DDR standard type to LPDDR3.
        """  # noqa: E501
        return self._standard

    @property
    def strobesource(self) -> SearchSearchItemTriggerADdrmemoryStrobesource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource`` command.

        **Description:**
            - This command sets or queries the strobe source for a DDR Memory analysis search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource {CH<x>|MATH<x>|REF<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource?

        **Info:**
            - ``CH<x>`` specifies the input channel as the search source, where <x> is the channel
              number.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = 1, 2, 3 or
              4.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = 1, 2, 3
              or 4.
        """
        return self._strobesource


class SearchSearchItemTriggerABusUsbTokentype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType`` command.

    **Description:**
        - This command sets or queries the token type used to search a USB bus signal. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``ANY`` specifies the token type as Any (XX01).
        - ``IN`` specifies the token type as IN (1001).
        - ``OUT`` specifies the token type as OUT (0001).
        - ``SETUP`` specifies the token type as SETUP (1101).
        - ``SOF`` specifies the token type as Start Of Frame (0101).
    """


class SearchSearchItemTriggerABusUsbSplitSeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue`` command.

    **Description:**
        - This command sets or queries the Start/End value for the specified USB bus trigger on
          split token field search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue {DONTCare|FULLSPeed|ISOALL|ISOEND|ISOMID|ISOSTART|LOWSPeed}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?

    **Info:**
        - ``DONTCare`` specifies Don't Care (X) Start/End bit value.
        - ``FULLSPeed`` specifies Control/Bulk/Interrupt Full Speed device (0X) Start/End bit value.
        - ``ISOALL`` specifies Isochronous Data is All (11) Start/End bit value.
        - ``ISOEND`` specifies Isochronous Data is End (01) Start/End bit value.
        - ``ISOMID`` specifies Isochronous Data is Middle (00) Start/End bit value.
        - ``ISOSTART`` specifies Isochronous Data is Start (10) Start/End bit value.
        - ``LOWSPeed`` specifies Control/Bulk/Interrupt Low Speed device (1X) Start/End bit value.
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbSplitSe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbSplitSeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue`` command.

        **Description:**
            - This command sets or queries the Start/End value for the specified USB bus trigger on
              split token field search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue {DONTCare|FULLSPeed|ISOALL|ISOEND|ISOMID|ISOSTART|LOWSPeed}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?

        **Info:**
            - ``DONTCare`` specifies Don't Care (X) Start/End bit value.
            - ``FULLSPeed`` specifies Control/Bulk/Interrupt Full Speed device (0X) Start/End bit
              value.
            - ``ISOALL`` specifies Isochronous Data is All (11) Start/End bit value.
            - ``ISOEND`` specifies Isochronous Data is End (01) Start/End bit value.
            - ``ISOMID`` specifies Isochronous Data is Middle (00) Start/End bit value.
            - ``ISOSTART`` specifies Isochronous Data is Start (10) Start/End bit value.
            - ``LOWSPeed`` specifies Control/Bulk/Interrupt Low Speed device (1X) Start/End bit
              value.
        """  # noqa: E501
        return self._value


class SearchSearchItemTriggerABusUsbSplitScValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue`` command.

    **Description:**
        - This command sets or queries the Start/Complete value for the specified USB bus trigger on
          split token field search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue {CSPLIT|DONTCare|SSPLIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?

    **Info:**
        - ``CSPLIT`` specifies Complete (CSPLIT)(1) Start/Complete value.
        - ``DONTCare`` specifies the Start/Complete value as Don't Care (X).
        - ``SSPLIT`` specifies Start (SSPLIT) (0) Start/Complete value.
    """


class SearchSearchItemTriggerABusUsbSplitSc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbSplitScValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue`` command.

        **Description:**
            - This command sets or queries the Start/Complete value for the specified USB bus
              trigger on split token field search to determine where to place a mark. <x> is the
              search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue {CSPLIT|DONTCare|SSPLIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?

        **Info:**
            - ``CSPLIT`` specifies Complete (CSPLIT)(1) Start/Complete value.
            - ``DONTCare`` specifies the Start/Complete value as Don't Care (X).
            - ``SSPLIT`` specifies Start (SSPLIT) (0) Start/Complete value.
        """
        return self._value


class SearchSearchItemTriggerABusUsbSplitPortValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue`` command.

    **Description:**
        - This command sets or queries the port address for the specified USB bus trigger on split
          token field search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?

    **Info:**
        - ``<string>`` specifies the port address in the valid format. The valid characters are.
    """


class SearchSearchItemTriggerABusUsbSplitPortFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat`` command.

    **Description:**
        - This command sets or queries the port address format for the specified USB bus trigger on
          split token field search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat?

    **Info:**
        - ``BINary`` specifies the port address format as Binary.
        - ``HEXadecicmal`` specifies the port address format as Hexadecimal.
    """


class SearchSearchItemTriggerABusUsbSplitPort(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbSplitPortFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat`` command.

        **Description:**
            - This command sets or queries the port address format for the specified USB bus trigger
              on split token field search to determine where to place a mark. <x> is the search
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat?

        **Info:**
            - ``BINary`` specifies the port address format as Binary.
            - ``HEXadecicmal`` specifies the port address format as Hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbSplitPortValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue`` command.

        **Description:**
            - This command sets or queries the port address for the specified USB bus trigger on
              split token field search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?

        **Info:**
            - ``<string>`` specifies the port address in the valid format. The valid characters are.
        """
        return self._value


class SearchSearchItemTriggerABusUsbSplitHubValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue`` command.

    **Description:**
        - This command sets or queries the hub address of the specified USB bus trigger on split
          token field search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?

    **Info:**
        - ``<string>`` specifies the hub address. The valid characters are .
    """


class SearchSearchItemTriggerABusUsbSplitHubFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat`` command.

    **Description:**
        - This command sets or queries the format for the hub address of the specified USB bus
          trigger search on split token field to determine where to place a mark. <x> is the search
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat?

    **Info:**
        - ``BINary`` specifies the hub address format as Binary.
        - ``HEXadecimal`` specifies the hub address format as Hexadecimal.
    """


class SearchSearchItemTriggerABusUsbSplitHub(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbSplitHubFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat`` command.

        **Description:**
            - This command sets or queries the format for the hub address of the specified USB bus
              trigger search on split token field to determine where to place a mark. <x> is the
              search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat?

        **Info:**
            - ``BINary`` specifies the hub address format as Binary.
            - ``HEXadecimal`` specifies the hub address format as Hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbSplitHubValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue`` command.

        **Description:**
            - This command sets or queries the hub address of the specified USB bus trigger on split
              token field search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?

        **Info:**
            - ``<string>`` specifies the hub address. The valid characters are .
        """
        return self._value


class SearchSearchItemTriggerABusUsbSplitEtValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue`` command.

    **Description:**
        - This command sets or queries the Endpoint Type value for the specified USB bus trigger
          search on split token field to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue {BULK|CONTROL|DONTCare|INTERRUPT|ISOchronous}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?

    **Info:**
        - ``BULK`` specifies the Endpoint Type value as Bulk (10).
        - ``CONTROL`` specifies the Endpoint Type value as Control (00).
        - ``DONTCare`` specifies the Endpoint Type value as Don't Care.
        - ``INTERRUPT`` specifies the Endpoint Type value as Interrupt (11).
        - ``ISOchronous`` specifies the Endpoint Type value as Isochronous (01).
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbSplitEt(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbSplitEtValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue`` command.

        **Description:**
            - This command sets or queries the Endpoint Type value for the specified USB bus trigger
              search on split token field to determine where to place a mark. <x> is the search
              number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue {BULK|CONTROL|DONTCare|INTERRUPT|ISOchronous}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?

        **Info:**
            - ``BULK`` specifies the Endpoint Type value as Bulk (10).
            - ``CONTROL`` specifies the Endpoint Type value as Control (00).
            - ``DONTCare`` specifies the Endpoint Type value as Don't Care.
            - ``INTERRUPT`` specifies the Endpoint Type value as Interrupt (11).
            - ``ISOchronous`` specifies the Endpoint Type value as Isochronous (01).
        """  # noqa: E501
        return self._value


class SearchSearchItemTriggerABusUsbSplit(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT`` command tree.

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

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

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._et = SearchSearchItemTriggerABusUsbSplitEt(device, f"{self._cmd_syntax}:ET")
        self._hub = SearchSearchItemTriggerABusUsbSplitHub(device, f"{self._cmd_syntax}:HUB")
        self._port = SearchSearchItemTriggerABusUsbSplitPort(device, f"{self._cmd_syntax}:PORT")
        self._sc = SearchSearchItemTriggerABusUsbSplitSc(device, f"{self._cmd_syntax}:SC")
        self._se = SearchSearchItemTriggerABusUsbSplitSe(device, f"{self._cmd_syntax}:SE")

    @property
    def et(self) -> SearchSearchItemTriggerABusUsbSplitEt:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET`` command tree.

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

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

    @property
    def hub(self) -> SearchSearchItemTriggerABusUsbSplitHub:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue`` command.
        """
        return self._hub

    @property
    def port(self) -> SearchSearchItemTriggerABusUsbSplitPort:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue`` command.
        """
        return self._port

    @property
    def sc(self) -> SearchSearchItemTriggerABusUsbSplitSc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC`` command tree.

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

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

    @property
    def se(self) -> SearchSearchItemTriggerABusUsbSplitSe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE`` command tree.

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

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


class SearchSearchItemTriggerABusUsbSpecialtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType`` command.

    **Description:**
        - This command sets or queries the PID value for the specified USB bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType {ANY|ERR|PING|PRE|RESERVED|SPLIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?

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


class SearchSearchItemTriggerABusUsbSofFramenumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber`` command.

    **Description:**
        - This command sets or queries the frame number string to use for the Start of Frame for the
          specified USB bus trigger search to determine where to place a mark. <x> is the search
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber?

    **Info:**
        - ``<string>`` specifies the frame number string for the Start of Frame in a valid format
          (binary, hexadecimal, or symbolic).
    """


class SearchSearchItemTriggerABusUsbSofFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat`` command.

    **Description:**
        - This command sets or queries the format for the Start of Frame frame number for the
          specified USB bus trigger search to determine where to place a mark. <x> is the search
          number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat {BINary|HEXadecimal|SYMBolic}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat?

    **Info:**
        - ``BINary`` specifies the format as Binary.
        - ``HEXadecimal`` specifies the format as Hexadecimal.
        - ``SYMBolic`` specifies the format as Symbolic.
    """


class SearchSearchItemTriggerABusUsbSof(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat`` command.
        - ``.framenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusUsbSofFormat(device, f"{self._cmd_syntax}:FORMat")
        self._framenumber = SearchSearchItemTriggerABusUsbSofFramenumber(
            device, f"{self._cmd_syntax}:FRAMENUMber"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbSofFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat`` command.

        **Description:**
            - This command sets or queries the format for the Start of Frame frame number for the
              specified USB bus trigger search to determine where to place a mark. <x> is the search
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat {BINary|HEXadecimal|SYMBolic}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat?

        **Info:**
            - ``BINary`` specifies the format as Binary.
            - ``HEXadecimal`` specifies the format as Hexadecimal.
            - ``SYMBolic`` specifies the format as Symbolic.
        """
        return self._format

    @property
    def framenumber(self) -> SearchSearchItemTriggerABusUsbSofFramenumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber`` command.

        **Description:**
            - This command sets or queries the frame number string to use for the Start of Frame for
              the specified USB bus trigger search to determine where to place a mark. <x> is the
              search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber?

        **Info:**
            - ``<string>`` specifies the frame number string for the Start of Frame in a valid
              format (binary, hexadecimal, or symbolic).
        """
        return self._framenumber


class SearchSearchItemTriggerABusUsbQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier`` command.

    **Description:**
        - This command sets or queries the qualifier for address and data for the specified bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier {EQUal|INrange|LESSEQual|MOREEQual|OUTrange|UNEQual|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``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 Unequal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbPatternSymbolPlusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>`` command.

    **Description:**
        - Sets or queries the specified character bit pattern (positive disparity) for the specified
          search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>?
    """


class SearchSearchItemTriggerABusUsbPatternSymbolMinusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>`` command.

    **Description:**
        - Sets or queries the specified character bit pattern (negative disparity) for the specified
          search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>?

    **Info:**
        - ``<string>`` is the character bit pattern.
    """


class SearchSearchItemTriggerABusUsbPatternSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol`` command tree.

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

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus: Dict[
            int, SearchSearchItemTriggerABusUsbPatternSymbolMinusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusUsbPatternSymbolMinusItem(
                device, f"{self._cmd_syntax}:MINus{x}"
            )
        )
        self._plus: Dict[
            int, SearchSearchItemTriggerABusUsbPatternSymbolPlusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusUsbPatternSymbolPlusItem(
                device, f"{self._cmd_syntax}:PLUS{x}"
            )
        )

    @property
    def minus(self) -> Dict[int, SearchSearchItemTriggerABusUsbPatternSymbolMinusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>`` command.

        **Description:**
            - Sets or queries the specified character bit pattern (negative disparity) for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>?

        **Info:**
            - ``<string>`` is the character bit pattern.
        """
        return self._minus

    @property
    def plus(self) -> Dict[int, SearchSearchItemTriggerABusUsbPatternSymbolPlusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>`` command.

        **Description:**
            - Sets or queries the specified character bit pattern (positive disparity) for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>?
        """
        return self._plus


class SearchSearchItemTriggerABusUsbPatternOrderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset`` command.

    **Description:**
        - This command sets or queries the state of searching for an ordered set.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset {OFF|ON|0|1}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset?

    **Info:**
        - ``OFF`` disables searching for an ordered set.
        - ``ON`` enables searching for an ordered set.
        - ``0`` disables searching for an ordered set.
        - ``1`` enables searching for an ordered set.
    """


class SearchSearchItemTriggerABusUsbPatternNumsymbols(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols`` command.

    **Description:**
        - Sets or queries the number of symbols to search for when USB search type is in pattern
          mode. This setting is only available when the USB bitrate is set to SS.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols?
    """


class SearchSearchItemTriggerABusUsbPatternCharItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>`` command.

    **Description:**
        - Sets or queries the first, second, third or fourth character in the pattern for the
          specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>?

    **Info:**
        - ``<string>`` is the character.
    """


class SearchSearchItemTriggerABusUsbPattern(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>`` command.
        - ``.numsymbols``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols`` command.
        - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char: Dict[
            int, SearchSearchItemTriggerABusUsbPatternCharItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusUsbPatternCharItem(
                device, f"{self._cmd_syntax}:CHAR{x}"
            )
        )
        self._numsymbols = SearchSearchItemTriggerABusUsbPatternNumsymbols(
            device, f"{self._cmd_syntax}:NUMSymbols"
        )
        self._orderedset = SearchSearchItemTriggerABusUsbPatternOrderedset(
            device, f"{self._cmd_syntax}:ORDERedset"
        )
        self._symbol = SearchSearchItemTriggerABusUsbPatternSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> Dict[int, SearchSearchItemTriggerABusUsbPatternCharItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>`` command.

        **Description:**
            - Sets or queries the first, second, third or fourth character in the pattern for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>?

        **Info:**
            - ``<string>`` is the character.
        """
        return self._char

    @property
    def numsymbols(self) -> SearchSearchItemTriggerABusUsbPatternNumsymbols:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols`` command.

        **Description:**
            - Sets or queries the number of symbols to search for when USB search type is in pattern
              mode. This setting is only available when the USB bitrate is set to SS.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols?
        """
        return self._numsymbols

    @property
    def orderedset(self) -> SearchSearchItemTriggerABusUsbPatternOrderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset`` command.

        **Description:**
            - This command sets or queries the state of searching for an ordered set.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset {OFF|ON|0|1}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset?

        **Info:**
            - ``OFF`` disables searching for an ordered set.
            - ``ON`` enables searching for an ordered set.
            - ``0`` disables searching for an ordered set.
            - ``1`` enables searching for an ordered set.
        """
        return self._orderedset

    @property
    def symbol(self) -> SearchSearchItemTriggerABusUsbPatternSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol`` command tree.

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

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:MINus<x>``
              command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol:PLUS<x>`` command.
        """
        return self._symbol


class SearchSearchItemTriggerABusUsbPacketsTppackets(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets`` command.

    **Description:**
        - Sets or queries the TP packets to mark when the system is searching for TP packets. This
          setting is only available when the USB bitrate is set to SS.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets {ANY | TPACK | TPNRDY | TPERDY | TPStatus | TPSTall | TPNotify | TPPing | TPResponse}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets?

    **Info:**
        - ``ANY`` mark all TP packets.
        - ``TPACK`` mark all ACK packets.
        - ``TPNRDY`` mark al NRDY (not ready) packets.
        - ``TPERDY`` mark all ERDY packets.
        - ``TPStatus`` mark all status packets.
        - ``TPSTall`` mark all stall packets.
        - ``TPNotify`` mark all notify packets.
        - ``TPPing`` mark all ping packets.
        - ``TPResponse`` mark all response packets.
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbPacketsLmppackets(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets`` command.

    **Description:**
        - Sets or queries the LMP packets to mark when system is searching for LMP packets. This
          setting is only available when the USB bitrate is set to SS.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets {ANY | LMPLink | LMPUtwo | LMPDevice | LMPConfig | LMPResponse}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets?

    **Info:**
        - ``ANY`` mark all LMP packets.
        - ``LMPLink`` mark only link packets.
        - ``LMPUtwo`` mark only U2 packets.
        - ``LMPDevice`` mark only Device packets.
        - ``LMPConfig`` mark only Config Packets.
        - ``LMPResponse`` mark only response packets.
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbPackets(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets`` command.

    **Description:**
        - Sets or queries the USB bus search packets to mark. This setting only applies when search
          type is set to Packets. This setting is only available when the USB bitrate is set to SS.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets {LMP | TP | DP | ITP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets?

    **Info:**
        - ``LMP`` mark LMP packets.
        - ``TP`` mark TP packets.
        - ``DP`` mark DP packets.
        - ``ITP`` Mmark ITP packets.

    Properties:
        - ``.lmppackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets`` command.
        - ``.tppackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lmppackets = SearchSearchItemTriggerABusUsbPacketsLmppackets(
            device, f"{self._cmd_syntax}:LMPPACKets"
        )
        self._tppackets = SearchSearchItemTriggerABusUsbPacketsTppackets(
            device, f"{self._cmd_syntax}:TPPACKets"
        )

    @property
    def lmppackets(self) -> SearchSearchItemTriggerABusUsbPacketsLmppackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets`` command.

        **Description:**
            - Sets or queries the LMP packets to mark when system is searching for LMP packets. This
              setting is only available when the USB bitrate is set to SS.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets {ANY | LMPLink | LMPUtwo | LMPDevice | LMPConfig | LMPResponse}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets?

        **Info:**
            - ``ANY`` mark all LMP packets.
            - ``LMPLink`` mark only link packets.
            - ``LMPUtwo`` mark only U2 packets.
            - ``LMPDevice`` mark only Device packets.
            - ``LMPConfig`` mark only Config Packets.
            - ``LMPResponse`` mark only response packets.
        """  # noqa: E501
        return self._lmppackets

    @property
    def tppackets(self) -> SearchSearchItemTriggerABusUsbPacketsTppackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets`` command.

        **Description:**
            - Sets or queries the TP packets to mark when the system is searching for TP packets.
              This setting is only available when the USB bitrate is set to SS.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets {ANY | TPACK | TPNRDY | TPERDY | TPStatus | TPSTall | TPNotify | TPPing | TPResponse}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets?

        **Info:**
            - ``ANY`` mark all TP packets.
            - ``TPACK`` mark all ACK packets.
            - ``TPNRDY`` mark al NRDY (not ready) packets.
            - ``TPERDY`` mark all ERDY packets.
            - ``TPStatus`` mark all status packets.
            - ``TPSTall`` mark all stall packets.
            - ``TPNotify`` mark all notify packets.
            - ``TPPing`` mark all ping packets.
            - ``TPResponse`` mark all response packets.
        """  # noqa: E501
        return self._tppackets


class SearchSearchItemTriggerABusUsbLongorderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset`` command.

    **Description:**
        - This command sets or queries the USB bus search trigger long ordered set. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset {EIE|TS<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset?

    **Info:**
        - ``EIE`` is the Electrical Idle Exit ordered set.
        - ``TS1`` is the Training Sequence 1 ordered set.
        - ``TS2`` is the Training Sequence 2 ordered set.
    """


class SearchSearchItemTriggerABusUsbHandshaketype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.

    **Description:**
        - This command sets or queries the handshake type for the specified USB bus trigger search
          to determine where to place a mark. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``ACK`` specifies the handshake type as Acknowledgement (positive) (XX10).
        - ``ANY`` specifies the handshake type as Any (0010).
        - ``NAK`` specifies the handshake type as Negative Acknowledgment (1010).
        - ``NYET`` specifies the handshake type as No response Yet (0110).
        - ``STALL`` specifies the handshake type as Stall (endpoint is halted or control pipe
          request not supported) (1110).
    """


class SearchSearchItemTriggerABusUsbFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat`` command.

    **Description:**
        - Sets the format for the specified search to character or symbol, or queries the state of
          this feature. Applies to the search character and pattern commands.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat {CHAR|SYMbol}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat?

    **Info:**
        - ``CHARACTER`` allows you to edit the values using character format.
        - ``SYMBOL`` allows you to edit the values using symbol format (using the binary equivalent
          to the character value).
    """


class SearchSearchItemTriggerABusUsbErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.

    **Description:**
        - This command sets or queries the error type for a USB bus search to determine where to
          place a mark. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE {BITSTUFFing|CRC5|CRC16|PID}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE?

    **Info:**
        - ``BITSTUFFing`` specifies the error type as Bit Stuffing.
        - ``CRC5`` specifies the error type as Token CRC5 (Cyclic Redundancy Check 5).
        - ``CRC16`` specifies the error type as Data CRC16 (Cyclic Redundancy Check 16).
        - ``PID`` specifies the error type as PID Check Bits.
    """


class SearchSearchItemTriggerABusUsbErrorOrderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset`` command.

    **Description:**
        - This command sets or queries the state of searching for an ordered set in the specified
          search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset {|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset?

    **Info:**
        - ``OFF`` disables searching for an ordered set.
        - ``ON`` enables searching for an ordered set.
    """


class SearchSearchItemTriggerABusUsbErrorDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity`` command.

    **Description:**
        - Sets or queries the disparity error search (on or off).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity?

    **Info:**
        - ``<NR1>`` = 1 enables the disparity error search. Any other character disables the search.
        - ``ON`` enables the disparity error search.
        - ``OFF`` disables the disparity error search.
    """


class SearchSearchItemTriggerABusUsbErrorChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR`` command.

    **Description:**
        - Sets the character error search to on or off, or queries the status of the feature.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR?

    **Info:**
        - ``<NR1>`` = 1 enables the character error search. Any other character disables the search.
        - ``ON`` enables the character error search.
        - ``OFF`` disables the character error search.
    """


class SearchSearchItemTriggerABusUsbError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR`` command.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity`` command.
        - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusUsbErrorChar(device, f"{self._cmd_syntax}:CHAR")
        self._disparity = SearchSearchItemTriggerABusUsbErrorDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._orderedset = SearchSearchItemTriggerABusUsbErrorOrderedset(
            device, f"{self._cmd_syntax}:ORDERedset"
        )

    @property
    def char(self) -> SearchSearchItemTriggerABusUsbErrorChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR`` command.

        **Description:**
            - Sets the character error search to on or off, or queries the status of the feature.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR?

        **Info:**
            - ``<NR1>`` = 1 enables the character error search. Any other character disables the
              search.
            - ``ON`` enables the character error search.
            - ``OFF`` disables the character error search.
        """
        return self._char

    @property
    def disparity(self) -> SearchSearchItemTriggerABusUsbErrorDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity`` command.

        **Description:**
            - Sets or queries the disparity error search (on or off).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity?

        **Info:**
            - ``<NR1>`` = 1 enables the disparity error search. Any other character disables the
              search.
            - ``ON`` enables the disparity error search.
            - ``OFF`` disables the disparity error search.
        """
        return self._disparity

    @property
    def orderedset(self) -> SearchSearchItemTriggerABusUsbErrorOrderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset`` command.

        **Description:**
            - This command sets or queries the state of searching for an ordered set in the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset {|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset?

        **Info:**
            - ``OFF`` disables searching for an ordered set.
            - ``ON`` enables searching for an ordered set.
        """
        return self._orderedset


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

    **Description:**
        - This command sets or queries the endpoint value for normal token for the specified USB bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary format; A-F, 0-9 and X for hexadecimal format.
    """


class SearchSearchItemTriggerABusUsbEndpointHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue`` command.

    **Description:**
        - This command sets or queries the endpoint value for data token used with In Range and Out
          of Range qualifiers for the specified USB bus trigger search to determine where to place a
          mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue <string>}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format.
        - ``<No LRN>`` specifies do not return a list of instrument settings.
        - ``<No BQ>`` specifies do not.
    """


class SearchSearchItemTriggerABusUsbEndpointFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat`` command.

    **Description:**
        - This command sets or queries the endpoint format for data token (to be used with In Range
          and Out of Range qualifiers) for the specified USB bus trigger search to determine where
          to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat {BINary|HEXadecimal|SYMBolic}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat?

    **Info:**
        - ``BINary`` specifies the endpoint format as Binary.
        - ``HEXadecimal`` specifies the endpoint format as Hexadecimal.
        - ``SYMBolic`` specifies the endpoint format as Symbolic.
    """


class SearchSearchItemTriggerABusUsbEndpoint(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat`` command.
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusUsbEndpointFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._hivalue = SearchSearchItemTriggerABusUsbEndpointHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusUsbEndpointValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbEndpointFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat`` command.

        **Description:**
            - This command sets or queries the endpoint format for data token (to be used with In
              Range and Out of Range qualifiers) for the specified USB bus trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat {BINary|HEXadecimal|SYMBolic}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat?

        **Info:**
            - ``BINary`` specifies the endpoint format as Binary.
            - ``HEXadecimal`` specifies the endpoint format as Hexadecimal.
            - ``SYMBolic`` specifies the endpoint format as Symbolic.
        """
        return self._format

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusUsbEndpointHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue`` command.

        **Description:**
            - This command sets or queries the endpoint value for data token used with In Range and
              Out of Range qualifiers for the specified USB bus trigger search to determine where to
              place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue <string>}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format.
            - ``<No LRN>`` specifies do not return a list of instrument settings.
            - ``<No BQ>`` specifies do not.
        """
        return self._hivalue

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

        **Description:**
            - This command sets or queries the endpoint value for normal token for the specified USB
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary format; A-F, 0-9 and X for hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusUsbDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity`` command.

    **Description:**
        - Sets or queries the disparity (positive, negative, or either).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity {NEGAtive|POSITIVe|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity?

    **Info:**
        - ``POSITIVE`` only the positive values will be used in the search.
        - ``NEGATIVE`` only the negative values will be used in the search.
        - ``EITHER`` positive and negative values will be used in the search.
    """


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

    **Description:**
        - This command sets or queries the data value for data token for the specified bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the data value. The valid characters are 0, 1, and X for binary
          format; and A-F, 0-9, and X for hexadecimal format.
    """


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

    **Description:**
        - This command sets or queries the USB bus search type. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``ANY`` specifies the data packet type as Any.
        - ``DATA0`` specifies the data packet type as DATA0.
        - ``DATA1`` specifies the data packet type as DATA1.
        - ``DATA2`` specifies the data packet type as DATA2.
        - ``MDATA`` specifies the data packet type as MDATA.
    """


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

    **Description:**
        - This command sets or queries the length of the data string in bytes for the specified USB
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the data size in bytes.
    """


class SearchSearchItemTriggerABusUsbDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset for the specified USB bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?

    **Info:**
        - ``<NR3>`` specifies the data offset in bytes.
        - ``DONTCare`` specifies the data offset as Don't Care.
    """


class SearchSearchItemTriggerABusUsbDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the data value for data token used with In Range and Out of
          Range qualifiers for the specified USB bus trigger search to determine where to place a
          mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format (binary, hexadecimal,
          or symbolic). The valid characters for binary are 0, 1, and X;.
    """


class SearchSearchItemTriggerABusUsbDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the data format for the specified USB bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat {BINary|HEX|SYMBolic}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as Binary.
        - ``HEX`` specifies the data format as Hexadecimal.
        - ``SYMBolic`` specifies the data format as Symbolic.
    """


class SearchSearchItemTriggerABusUsbData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat`` command.
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:TYPe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusUsbDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._hivalue = SearchSearchItemTriggerABusUsbDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusUsbDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._size = SearchSearchItemTriggerABusUsbDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._type = SearchSearchItemTriggerABusUsbDataType(device, f"{self._cmd_syntax}:TYPe")
        self._value = SearchSearchItemTriggerABusUsbDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the data format for the specified USB bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat {BINary|HEX|SYMBolic}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as Binary.
            - ``HEX`` specifies the data format as Hexadecimal.
            - ``SYMBolic`` specifies the data format as Symbolic.
        """
        return self._format

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusUsbDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the data value for data token used with In Range and Out
              of Range qualifiers for the specified USB bus trigger search to determine where to
              place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format (binary,
              hexadecimal, or symbolic). The valid characters for binary are 0, 1, and X;.
        """
        return self._hivalue

    @property
    def offset(self) -> SearchSearchItemTriggerABusUsbDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset for the specified USB bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?

        **Info:**
            - ``<NR3>`` specifies the data offset in bytes.
            - ``DONTCare`` specifies the data offset as Don't Care.
        """
        return self._offset

    @property
    def size(self) -> SearchSearchItemTriggerABusUsbDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes for the specified
              USB bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the data size in bytes.
        """
        return self._size

    @property
    def type(self) -> SearchSearchItemTriggerABusUsbDataType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:TYPe`` command.

        **Description:**
            - This command sets or queries the USB bus search type. The search number is specified
              by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``ANY`` specifies the data packet type as Any.
            - ``DATA0`` specifies the data packet type as DATA0.
            - ``DATA1`` specifies the data packet type as DATA1.
            - ``DATA2`` specifies the data packet type as DATA2.
            - ``MDATA`` specifies the data packet type as MDATA.
        """
        return self._type

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data value for data token for the specified bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the data value. The valid characters are 0, 1, and X for binary
              format; and A-F, 0-9, and X for hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusUsbCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for the specified USB bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition {DATAPacket|EOP|ERROR|HANDSHAKEPacket|RESET|RESUME| SPECIALPacket|SUSPEND|SYNC|TOKENPacket}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition?

    **Info:**
        - ``DATAPacket`` specifies the search condition as Data Packet.
        - ``EOP`` specifies the search condition as End of Packet.
        - ``ERROR`` specifies the search condition as Error.
        - ``HANDSHAKEPacket`` specifies the search condition as Handshake Packet.
        - ``RESET`` specifies the search condition as Reset.
        - ``RESUME`` specifies the search condition as Resume.
        - ``SPECIALPacket`` specifies the search condition as Special Packet.
        - ``SUSPEND`` specifies the search condition as Suspend.
        - ``SYNC`` specifies the search condition as Sync.
        - ``TOKENPacket`` specifies the search condition as Token (Address) Packet.
    """  # noqa: E501


class SearchSearchItemTriggerABusUsbCharacterSymbolPlus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS`` command.

    **Description:**
        - Sets or queries the specified character bit pattern (positive disparity) for the specified
          search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS?

    **Info:**
        - ``<string>`` sets the character bit pattern.
    """


class SearchSearchItemTriggerABusUsbCharacterSymbolMinus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus`` command.

    **Description:**
        - Sets or queries the specified USB character bit pattern (negative disparity) for the
          specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus?

    **Info:**
        - ``<string>`` sets the character bit pattern.
    """


class SearchSearchItemTriggerABusUsbCharacterSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol`` command tree.

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

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus = SearchSearchItemTriggerABusUsbCharacterSymbolMinus(
            device, f"{self._cmd_syntax}:MINus"
        )
        self._plus = SearchSearchItemTriggerABusUsbCharacterSymbolPlus(
            device, f"{self._cmd_syntax}:PLUS"
        )

    @property
    def minus(self) -> SearchSearchItemTriggerABusUsbCharacterSymbolMinus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus`` command.

        **Description:**
            - Sets or queries the specified USB character bit pattern (negative disparity) for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus?

        **Info:**
            - ``<string>`` sets the character bit pattern.
        """
        return self._minus

    @property
    def plus(self) -> SearchSearchItemTriggerABusUsbCharacterSymbolPlus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS`` command.

        **Description:**
            - Sets or queries the specified character bit pattern (positive disparity) for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS?

        **Info:**
            - ``<string>`` sets the character bit pattern.
        """
        return self._plus


class SearchSearchItemTriggerABusUsbCharacterChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR`` command.

    **Description:**
        - Sets or queries the single USB character in the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR?

    **Info:**
        - ``<string>`` sets the character bit pattern.
    """


class SearchSearchItemTriggerABusUsbCharacter(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusUsbCharacterChar(device, f"{self._cmd_syntax}:CHAR")
        self._symbol = SearchSearchItemTriggerABusUsbCharacterSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> SearchSearchItemTriggerABusUsbCharacterChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR`` command.

        **Description:**
            - Sets or queries the single USB character in the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR?

        **Info:**
            - ``<string>`` sets the character bit pattern.
        """
        return self._char

    @property
    def symbol(self) -> SearchSearchItemTriggerABusUsbCharacterSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol`` command tree.

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

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:MINus`` command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol:PLUS`` command.
        """
        return self._symbol


class SearchSearchItemTriggerABusUsbAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue`` command.

    **Description:**
        - This command sets or queries the address value for normal token for the specified USB bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format. Valid characters are
          0, 1, and X for binary; A-F, 0-9 and X for hexadecimal; and for symbolic.
    """


class SearchSearchItemTriggerABusUsbAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.

    **Description:**
        - This command sets or queries the address value for normal token to be used with In Range
          and Out of Range qualifiers for the specified USB bus trigger search to determine where to
          place a mark. <x> is the search number. The VALue and HIVALue set a range that the INrange
          and OUTrange qualifiers use to decide when to trigger. For example, if the QUALIFER is set
          to INrange, and the address is within the range set by VALue and HIVALue, then a trigger
          can be generated.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary; for hexadecimal; and symbolic).
    """


class SearchSearchItemTriggerABusUsbAddressFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat`` command.

    **Description:**
        - This command sets or queries the address format for normal token for the specified USB bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat {BINary|HEX|SYMBolic}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat?

    **Info:**
        - ``BINary`` specifies the address format as Binary.
        - ``HEX`` specifies the address format as Hexadecimal.
        - ``SYMBolic`` specifies the address format as Symbolic.
    """


class SearchSearchItemTriggerABusUsbAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat`` command.
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusUsbAddressFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._hivalue = SearchSearchItemTriggerABusUsbAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusUsbAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbAddressFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat`` command.

        **Description:**
            - This command sets or queries the address format for normal token for the specified USB
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat {BINary|HEX|SYMBolic}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat?

        **Info:**
            - ``BINary`` specifies the address format as Binary.
            - ``HEX`` specifies the address format as Hexadecimal.
            - ``SYMBolic`` specifies the address format as Symbolic.
        """
        return self._format

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusUsbAddressHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.

        **Description:**
            - This command sets or queries the address value for normal token to be used with In
              Range and Out of Range qualifiers for the specified USB bus trigger search to
              determine where to place a mark. <x> is the search number. The VALue and HIVALue set a
              range that the INrange and OUTrange qualifiers use to decide when to trigger. For
              example, if the QUALIFER is set to INrange, and the address is within the range set by
              VALue and HIVALue, then a trigger can be generated.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary; for hexadecimal; and symbolic).
        """
        return self._hivalue

    @property
    def value(self) -> SearchSearchItemTriggerABusUsbAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue`` command.

        **Description:**
            - This command sets or queries the address value for normal token for the specified USB
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format. Valid characters
              are 0, 1, and X for binary; A-F, 0-9 and X for hexadecimal; and for symbolic.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusUsb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress`` command tree.
        - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity`` command.
        - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat`` command.
        - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.
        - ``.longorderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset`` command.
        - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets`` command.
        - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern`` command tree.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier`` command.
        - ``.sof``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF`` command tree.
        - ``.specialtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType`` command.
        - ``.split``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT`` command tree.
        - ``.tokentype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusUsbAddress(device, f"{self._cmd_syntax}:ADDress")
        self._character = SearchSearchItemTriggerABusUsbCharacter(
            device, f"{self._cmd_syntax}:CHARacter"
        )
        self._condition = SearchSearchItemTriggerABusUsbCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusUsbData(device, f"{self._cmd_syntax}:DATa")
        self._disparity = SearchSearchItemTriggerABusUsbDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._endpoint = SearchSearchItemTriggerABusUsbEndpoint(
            device, f"{self._cmd_syntax}:ENDPoint"
        )
        self._error = SearchSearchItemTriggerABusUsbError(device, f"{self._cmd_syntax}:ERROR")
        self._errtype = SearchSearchItemTriggerABusUsbErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._format = SearchSearchItemTriggerABusUsbFormat(device, f"{self._cmd_syntax}:FORMat")
        self._handshaketype = SearchSearchItemTriggerABusUsbHandshaketype(
            device, f"{self._cmd_syntax}:HANDSHAKEType"
        )
        self._longorderedset = SearchSearchItemTriggerABusUsbLongorderedset(
            device, f"{self._cmd_syntax}:LONGORDERedset"
        )
        self._packets = SearchSearchItemTriggerABusUsbPackets(device, f"{self._cmd_syntax}:PACKets")
        self._pattern = SearchSearchItemTriggerABusUsbPattern(device, f"{self._cmd_syntax}:PATtern")
        self._qualifier = SearchSearchItemTriggerABusUsbQualifier(
            device, f"{self._cmd_syntax}:QUAlifier"
        )
        self._sof = SearchSearchItemTriggerABusUsbSof(device, f"{self._cmd_syntax}:SOF")
        self._specialtype = SearchSearchItemTriggerABusUsbSpecialtype(
            device, f"{self._cmd_syntax}:SPECIALType"
        )
        self._split = SearchSearchItemTriggerABusUsbSplit(device, f"{self._cmd_syntax}:SPLIT")
        self._tokentype = SearchSearchItemTriggerABusUsbTokentype(
            device, f"{self._cmd_syntax}:TOKENType"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusUsbAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:FORMat`` command.
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue`` command.
        """
        return self._address

    @property
    def character(self) -> SearchSearchItemTriggerABusUsbCharacter:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:CHAR`` command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter:SYMbol`` command tree.
        """
        return self._character

    @property
    def condition(self) -> SearchSearchItemTriggerABusUsbCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for the specified USB bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition {DATAPacket|EOP|ERROR|HANDSHAKEPacket|RESET|RESUME| SPECIALPacket|SUSPEND|SYNC|TOKENPacket}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition?

        **Info:**
            - ``DATAPacket`` specifies the search condition as Data Packet.
            - ``EOP`` specifies the search condition as End of Packet.
            - ``ERROR`` specifies the search condition as Error.
            - ``HANDSHAKEPacket`` specifies the search condition as Handshake Packet.
            - ``RESET`` specifies the search condition as Reset.
            - ``RESUME`` specifies the search condition as Resume.
            - ``SPECIALPacket`` specifies the search condition as Special Packet.
            - ``SUSPEND`` specifies the search condition as Suspend.
            - ``SYNC`` specifies the search condition as Sync.
            - ``TOKENPacket`` specifies the search condition as Token (Address) Packet.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusUsbData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:FORMat`` command.
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:TYPe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue`` command.
        """
        return self._data

    @property
    def disparity(self) -> SearchSearchItemTriggerABusUsbDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity`` command.

        **Description:**
            - Sets or queries the disparity (positive, negative, or either).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity {NEGAtive|POSITIVe|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity?

        **Info:**
            - ``POSITIVE`` only the positive values will be used in the search.
            - ``NEGATIVE`` only the negative values will be used in the search.
            - ``EITHER`` positive and negative values will be used in the search.
        """
        return self._disparity

    @property
    def endpoint(self) -> SearchSearchItemTriggerABusUsbEndpoint:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:FORMat`` command.
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:HIVALue`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue`` command.
        """
        return self._endpoint

    @property
    def error(self) -> SearchSearchItemTriggerABusUsbError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:CHAR`` command.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:DISParity`` command.
            - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR:ORDERedset`` command.
        """
        return self._error

    @property
    def errtype(self) -> SearchSearchItemTriggerABusUsbErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.

        **Description:**
            - This command sets or queries the error type for a USB bus search to determine where to
              place a mark. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE {BITSTUFFing|CRC5|CRC16|PID}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE?

        **Info:**
            - ``BITSTUFFing`` specifies the error type as Bit Stuffing.
            - ``CRC5`` specifies the error type as Token CRC5 (Cyclic Redundancy Check 5).
            - ``CRC16`` specifies the error type as Data CRC16 (Cyclic Redundancy Check 16).
            - ``PID`` specifies the error type as PID Check Bits.
        """
        return self._errtype

    @property
    def format(self) -> SearchSearchItemTriggerABusUsbFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat`` command.

        **Description:**
            - Sets the format for the specified search to character or symbol, or queries the state
              of this feature. Applies to the search character and pattern commands.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat {CHAR|SYMbol}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat?

        **Info:**
            - ``CHARACTER`` allows you to edit the values using character format.
            - ``SYMBOL`` allows you to edit the values using symbol format (using the binary
              equivalent to the character value).
        """
        return self._format

    @property
    def handshaketype(self) -> SearchSearchItemTriggerABusUsbHandshaketype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.

        **Description:**
            - This command sets or queries the handshake type for the specified USB bus trigger
              search to determine where to place a mark. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``ACK`` specifies the handshake type as Acknowledgement (positive) (XX10).
            - ``ANY`` specifies the handshake type as Any (0010).
            - ``NAK`` specifies the handshake type as Negative Acknowledgment (1010).
            - ``NYET`` specifies the handshake type as No response Yet (0110).
            - ``STALL`` specifies the handshake type as Stall (endpoint is halted or control pipe
              request not supported) (1110).
        """
        return self._handshaketype

    @property
    def longorderedset(self) -> SearchSearchItemTriggerABusUsbLongorderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset`` command.

        **Description:**
            - This command sets or queries the USB bus search trigger long ordered set. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset {EIE|TS<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset?

        **Info:**
            - ``EIE`` is the Electrical Idle Exit ordered set.
            - ``TS1`` is the Training Sequence 1 ordered set.
            - ``TS2`` is the Training Sequence 2 ordered set.
        """
        return self._longorderedset

    @property
    def packets(self) -> SearchSearchItemTriggerABusUsbPackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets`` command.

        **Description:**
            - Sets or queries the USB bus search packets to mark. This setting only applies when
              search type is set to Packets. This setting is only available when the USB bitrate is
              set to SS.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets {LMP | TP | DP | ITP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets?

        **Info:**
            - ``LMP`` mark LMP packets.
            - ``TP`` mark TP packets.
            - ``DP`` mark DP packets.
            - ``ITP`` Mmark ITP packets.

        Sub-properties:
            - ``.lmppackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:LMPPACKets``
              command.
            - ``.tppackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets:TPPACKets`` command.
        """
        return self._packets

    @property
    def pattern(self) -> SearchSearchItemTriggerABusUsbPattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:CHAR<x>`` command.
            - ``.numsymbols``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:NUMSymbols``
              command.
            - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:ORDERedset``
              command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern:SYMbol`` command tree.
        """
        return self._pattern

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusUsbQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier`` command.

        **Description:**
            - This command sets or queries the qualifier for address and data for the specified bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier {EQUal|INrange|LESSEQual|MOREEQual|OUTrange|UNEQual|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``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 Unequal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """  # noqa: E501
        return self._qualifier

    @property
    def sof(self) -> SearchSearchItemTriggerABusUsbSof:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FORMat`` command.
            - ``.framenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF:FRAMENUMber`` command.
        """
        return self._sof

    @property
    def specialtype(self) -> SearchSearchItemTriggerABusUsbSpecialtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType`` command.

        **Description:**
            - This command sets or queries the PID value for the specified USB bus trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType {ANY|ERR|PING|PRE|RESERVED|SPLIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?

        **Info:**
            - ``ANY`` specifies the PID value as Any (XX00).
            - ``ERR`` specifies the PID value as ERR (1100).
            - ``PING`` specifies the PID value as PING (0100).
            - ``PRE`` 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) -> SearchSearchItemTriggerABusUsbSplit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT`` command tree.

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

        Sub-properties:
            - ``.et``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET`` command tree.
            - ``.hub``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB`` command tree.
            - ``.port``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT`` command tree.
            - ``.sc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC`` command tree.
            - ``.se``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE`` command tree.
        """
        return self._split

    @property
    def tokentype(self) -> SearchSearchItemTriggerABusUsbTokentype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType`` command.

        **Description:**
            - This command sets or queries the token type used to search a USB bus signal. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``ANY`` specifies the token type as Any (XX01).
            - ``IN`` specifies the token type as IN (1001).
            - ``OUT`` specifies the token type as OUT (0001).
            - ``SETUP`` specifies the token type as SETUP (1101).
            - ``SOF`` specifies the token type as Start Of Frame (0101).
        """
        return self._tokentype


class SearchSearchItemTriggerABusSpiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue`` command.

    **Description:**
        - The command sets or queries the data value of the data token for the specified SPI bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary format; and A-F, 0-9, and X for hexadecimal format.
    """


class SearchSearchItemTriggerABusSpiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes used for the specified
          SPI bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the number of contiguous data bytes.
    """


class SearchSearchItemTriggerABusSpiDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the data format for the specified SPI bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as Binary.
        - ``HEXadecimal`` specifies the data format as Hexadecimal.
    """


class SearchSearchItemTriggerABusSpiData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusSpiDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._size = SearchSearchItemTriggerABusSpiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusSpiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def format(self) -> SearchSearchItemTriggerABusSpiDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the data format for the specified SPI bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as Binary.
            - ``HEXadecimal`` specifies the data format as Hexadecimal.
        """
        return self._format

    @property
    def size(self) -> SearchSearchItemTriggerABusSpiDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes used for the
              specified SPI bus trigger search to determine where to place a mark. <x> is the search
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the number of contiguous data bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusSpiDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue`` command.

        **Description:**
            - The command sets or queries the data value of the data token for the specified SPI bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary format; and A-F, 0-9, and X for hexadecimal
              format.
        """
        return self._value


class SearchSearchItemTriggerABusSpiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified SPI bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition {DATA|SS}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?

    **Info:**
        - ``DATA`` specifies the trigger condition as Data.
        - ``SS`` specifies the trigger condition as Slave Selection.
    """


class SearchSearchItemTriggerABusSpi(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusSpiCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusSpiData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> SearchSearchItemTriggerABusSpiCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified SPI bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition {DATA|SS}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?

        **Info:**
            - ``DATA`` specifies the trigger condition as Data.
            - ``SS`` specifies the trigger condition as Slave Selection.
        """
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusSpiData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:FORMat`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.

    **Description:**
        - This command sets or queries the bus source for the bus search to determine where to place
          a mark. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce {B0|B1|B2|B3|B4|B5|B6|B7|B8|B9|B10| B11|B12|B13|B14|B15|B16}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce?

    **Info:**
        - ``B<x>`` specifies the bus source as a bus number from B01 to B16. x has a minimum of 0
          and a maximum of 16.
    """  # noqa: E501


class SearchSearchItemTriggerABusS8b10bPatternSymbolPlusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>`` command.

    **Description:**
        - Sets or queries the specified 8B10B character bit pattern (positive disparity) for the
          specified search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?

    **Info:**
        - ``<string>`` is the 8B10B character bit pattern.
    """


class SearchSearchItemTriggerABusS8b10bPatternSymbolMinusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>`` command.

    **Description:**
        - Sets or queries the specified character bit pattern (negative disparity) for the specified
          search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?

    **Info:**
        - ``<string>`` is the character bit pattern.
    """


class SearchSearchItemTriggerABusS8b10bPatternSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus: Dict[
            int, SearchSearchItemTriggerABusS8b10bPatternSymbolMinusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusS8b10bPatternSymbolMinusItem(
                device, f"{self._cmd_syntax}:MINus{x}"
            )
        )
        self._plus: Dict[
            int, SearchSearchItemTriggerABusS8b10bPatternSymbolPlusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusS8b10bPatternSymbolPlusItem(
                device, f"{self._cmd_syntax}:PLUS{x}"
            )
        )

    @property
    def minus(self) -> Dict[int, SearchSearchItemTriggerABusS8b10bPatternSymbolMinusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>`` command.

        **Description:**
            - Sets or queries the specified character bit pattern (negative disparity) for the
              specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>?

        **Info:**
            - ``<string>`` is the character bit pattern.
        """
        return self._minus

    @property
    def plus(self) -> Dict[int, SearchSearchItemTriggerABusS8b10bPatternSymbolPlusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>`` command.

        **Description:**
            - Sets or queries the specified 8B10B character bit pattern (positive disparity) for the
              specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>?

        **Info:**
            - ``<string>`` is the 8B10B character bit pattern.
        """
        return self._plus


class SearchSearchItemTriggerABusS8b10bPatternCharItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>`` command.

    **Description:**
        - Sets or queries the first, second, third or fourth character in the pattern for the
          specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>?

    **Info:**
        - ``<string>`` is the 8B10B character.
    """


class SearchSearchItemTriggerABusS8b10bPattern(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char: Dict[
            int, SearchSearchItemTriggerABusS8b10bPatternCharItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusS8b10bPatternCharItem(
                device, f"{self._cmd_syntax}:CHAR{x}"
            )
        )
        self._symbol = SearchSearchItemTriggerABusS8b10bPatternSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> Dict[int, SearchSearchItemTriggerABusS8b10bPatternCharItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>`` command.

        **Description:**
            - Sets or queries the first, second, third or fourth character in the pattern for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>?

        **Info:**
            - ``<string>`` is the 8B10B character.
        """
        return self._char

    @property
    def symbol(self) -> SearchSearchItemTriggerABusS8b10bPatternSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:MINus<x>``
              command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol:PLUS<x>``
              command.
        """
        return self._symbol


class SearchSearchItemTriggerABusS8b10bFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat`` command.

    **Description:**
        - Sets the format for the specified search to character or symbol, or queries the state of
          this feature. Applies to the search character and pattern commands.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat {CHAR|SYMbol}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat?

    **Info:**
        - ``CHARACTER`` allows you to edit the values using character format.
        - ``SYMBOL`` allows you to edit the values using symbol format (using the binary equivalent
          to the character value).
    """


class SearchSearchItemTriggerABusS8b10bErrorDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity`` command.

    **Description:**
        - Sets or queries the disparity error search (on or off).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity {<NR1>|ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity?

    **Info:**
        - ``<NR1>`` = 1 enables the disparity error search. Any other character disables the search.
        - ``ON`` enables the disparity error search.
        - ``OFF`` disables the disparity error search.
    """


class SearchSearchItemTriggerABusS8b10bErrorChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR`` command.

    **Description:**
        - Sets the character error search to on or off, or queries the status of the feature.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR {<NR1>|ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR?

    **Info:**
        - ``<NR1>`` = 1 enables the character error search. Any other character disables the search.
        - ``ON`` enables the character error search.
        - ``OFF`` disables the character error search.
    """


class SearchSearchItemTriggerABusS8b10bError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR`` command.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusS8b10bErrorChar(device, f"{self._cmd_syntax}:CHAR")
        self._disparity = SearchSearchItemTriggerABusS8b10bErrorDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )

    @property
    def char(self) -> SearchSearchItemTriggerABusS8b10bErrorChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR`` command.

        **Description:**
            - Sets the character error search to on or off, or queries the status of the feature.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR {<NR1>|ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR?

        **Info:**
            - ``<NR1>`` = 1 enables the character error search. Any other character disables the
              search.
            - ``ON`` enables the character error search.
            - ``OFF`` disables the character error search.
        """
        return self._char

    @property
    def disparity(self) -> SearchSearchItemTriggerABusS8b10bErrorDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity`` command.

        **Description:**
            - Sets or queries the disparity error search (on or off).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity {<NR1>|ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity?

        **Info:**
            - ``<NR1>`` = 1 enables the disparity error search. Any other character disables the
              search.
            - ``ON`` enables the disparity error search.
            - ``OFF`` disables the disparity error search.
        """
        return self._disparity


class SearchSearchItemTriggerABusS8b10bDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.

    **Description:**
        - Sets or queries the disparity (positive, negative, or either).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity {NEGAtive|POSITIVe|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?

    **Info:**
        - ``POSITIVE`` only the positive values will be used in the search.
        - ``NEGATIVE`` only the negative values will be used in the search.
        - ``EITHER`` positive and negative values will be used in the search.
    """


class SearchSearchItemTriggerABusS8b10bCondition(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified search to determine
          where to place a mark. The search number is represented by <x>. The selection (character,
          error, pattern, or any control) must be correct before you can use the corresponding 8B10B
          search commands (character, error, and pattern).

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition {ANYControl|CHARacter|ERROR| PATtern}?

    **Info:**
        - ``ANYCONTROL`` specifies that the oscilloscope will search for any control character.
        - ``CHARACTER`` specifies that the oscilloscope will search for a character, specified by
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:CHARACTER:CHAR``.
        - ``ERROR`` specifies that the oscilloscope will search for errors, specified by
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:ERROR:CHAR`` and
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:ERROR:DISPARITY``.
        - ``PATTERN`` specifies that the oscilloscope will search for a pattern, specified by
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:CHARX``,
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:SYMBOL:MINUSX``, or
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:SYMBOL:PLUSX``.
    """


class SearchSearchItemTriggerABusS8b10bCharacterSymbolPlus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS`` command.

    **Description:**
        - Sets or queries the specified 8B10B character bit pattern (positive disparity) for the
          specified search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?

    **Info:**
        - ``<string>`` sets the character bit pattern.
    """


class SearchSearchItemTriggerABusS8b10bCharacterSymbolMinus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus`` command.

    **Description:**
        - Sets or queries the specified 8B10B character bit pattern (negative disparity) for the
          specified search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?

    **Info:**
        - ``<string>`` sets the 8B10B character bit pattern.
    """


class SearchSearchItemTriggerABusS8b10bCharacterSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus = SearchSearchItemTriggerABusS8b10bCharacterSymbolMinus(
            device, f"{self._cmd_syntax}:MINus"
        )
        self._plus = SearchSearchItemTriggerABusS8b10bCharacterSymbolPlus(
            device, f"{self._cmd_syntax}:PLUS"
        )

    @property
    def minus(self) -> SearchSearchItemTriggerABusS8b10bCharacterSymbolMinus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus`` command.

        **Description:**
            - Sets or queries the specified 8B10B character bit pattern (negative disparity) for the
              specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus?

        **Info:**
            - ``<string>`` sets the 8B10B character bit pattern.
        """
        return self._minus

    @property
    def plus(self) -> SearchSearchItemTriggerABusS8b10bCharacterSymbolPlus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS`` command.

        **Description:**
            - Sets or queries the specified 8B10B character bit pattern (positive disparity) for the
              specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS?

        **Info:**
            - ``<string>`` sets the character bit pattern.
        """
        return self._plus


class SearchSearchItemTriggerABusS8b10bCharacterChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR`` command.

    **Description:**
        - Sets or queries the single 8B10B character in the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR?

    **Info:**
        - ``<string>`` sets the 8B10B character.
    """


class SearchSearchItemTriggerABusS8b10bCharacter(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusS8b10bCharacterChar(
            device, f"{self._cmd_syntax}:CHAR"
        )
        self._symbol = SearchSearchItemTriggerABusS8b10bCharacterSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> SearchSearchItemTriggerABusS8b10bCharacterChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR`` command.

        **Description:**
            - Sets or queries the single 8B10B character in the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR?

        **Info:**
            - ``<string>`` sets the 8B10B character.
        """
        return self._char

    @property
    def symbol(self) -> SearchSearchItemTriggerABusS8b10bCharacterSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:MINus``
              command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol:PLUS``
              command.
        """
        return self._symbol


class SearchSearchItemTriggerABusS8b10b(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.

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

    Properties:
        - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition`` command.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR`` command tree.
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat`` command.
        - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._character = SearchSearchItemTriggerABusS8b10bCharacter(
            device, f"{self._cmd_syntax}:CHARacter"
        )
        self._condition = SearchSearchItemTriggerABusS8b10bCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._disparity = SearchSearchItemTriggerABusS8b10bDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._error = SearchSearchItemTriggerABusS8b10bError(device, f"{self._cmd_syntax}:ERROR")
        self._format = SearchSearchItemTriggerABusS8b10bFormat(device, f"{self._cmd_syntax}:FORMat")
        self._pattern = SearchSearchItemTriggerABusS8b10bPattern(
            device, f"{self._cmd_syntax}:PATtern"
        )

    @property
    def character(self) -> SearchSearchItemTriggerABusS8b10bCharacter:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:CHAR`` command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter:SYMbol`` command
              tree.
        """
        return self._character

    @property
    def condition(self) -> SearchSearchItemTriggerABusS8b10bCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified search to
              determine where to place a mark. The search number is represented by <x>. The
              selection (character, error, pattern, or any control) must be correct before you can
              use the corresponding 8B10B search commands (character, error, and pattern).

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition {ANYControl|CHARacter|ERROR| PATtern}?

        **Info:**
            - ``ANYCONTROL`` specifies that the oscilloscope will search for any control character.
            - ``CHARACTER`` specifies that the oscilloscope will search for a character, specified
              by ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:CHARACTER:CHAR``.
            - ``ERROR`` specifies that the oscilloscope will search for errors, specified by
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:ERROR:CHAR`` and
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:ERROR:DISPARITY``.
            - ``PATTERN`` specifies that the oscilloscope will search for a pattern, specified by
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:CHARX``,
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:SYMBOL:MINUSX``, or
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:S8B10B:PATTERN:SYMBOL:PLUSX``.
        """
        return self._condition

    @property
    def disparity(self) -> SearchSearchItemTriggerABusS8b10bDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.

        **Description:**
            - Sets or queries the disparity (positive, negative, or either).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity {NEGAtive|POSITIVe|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?

        **Info:**
            - ``POSITIVE`` only the positive values will be used in the search.
            - ``NEGATIVE`` only the negative values will be used in the search.
            - ``EITHER`` positive and negative values will be used in the search.
        """
        return self._disparity

    @property
    def error(self) -> SearchSearchItemTriggerABusS8b10bError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:CHAR`` command.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR:DISParity`` command.
        """
        return self._error

    @property
    def format(self) -> SearchSearchItemTriggerABusS8b10bFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat`` command.

        **Description:**
            - Sets the format for the specified search to character or symbol, or queries the state
              of this feature. Applies to the search character and pattern commands.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat {CHAR|SYMbol}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat?

        **Info:**
            - ``CHARACTER`` allows you to edit the values using character format.
            - ``SYMBOL`` allows you to edit the values using symbol format (using the binary
              equivalent to the character value).
        """
        return self._format

    @property
    def pattern(self) -> SearchSearchItemTriggerABusS8b10bPattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:CHAR<x>`` command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern:SYMbol`` command
              tree.
        """
        return self._pattern


class SearchSearchItemTriggerABusS64b66bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition`` command.

    **Description:**
        - Set or query the search conditions for the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition { BLOCK | BLOCK1THEN2 }
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition?

    **Info:**
        - ``BLOCK`` sets the search condition to BLOCK.
        - ``BLOCK1THEN2`` sets the search condition to BLOCK1THEN2.
    """


class SearchSearchItemTriggerABusS64b66bBlockonethentwoFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat`` command.

    **Description:**
        - Set or query the pattern format for Block1Then2 for the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat { Binary | HEX }
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat?

    **Info:**
        - ``Binary`` indicates the binary pattern format.
        - ``HEX`` indicates the hex pattern format.
    """


class SearchSearchItemTriggerABusS64b66bBlockonethentwo(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusS64b66bBlockonethentwoFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat`` command.

        **Description:**
            - Set or query the pattern format for Block1Then2 for the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat { Binary | HEX }
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat?

        **Info:**
            - ``Binary`` indicates the binary pattern format.
            - ``HEX`` indicates the hex pattern format.
        """
        return self._format


class SearchSearchItemTriggerABusS64b66bBlockonePatternValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue`` command.

    **Description:**
        - Set or query the pattern for block when search on block is set to Pattern for the
          specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue?

    **Info:**
        - ``<string>`` is 64 bits wide.
    """


class SearchSearchItemTriggerABusS64b66bBlockonePatternSync(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC`` command.

    **Description:**
        - Set or query the sync value of the block for the specified search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?

    **Info:**
        - ``<string>`` is two bits wide.
    """


class SearchSearchItemTriggerABusS64b66bBlockonePatternFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat`` command.

    **Description:**
        - Set or query the pattern format for block when search on block is set to Pattern for the
          specified search.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat { Binary | HEX }
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?

    **Info:**
        - ``Binary`` indicates the binary pattern format.
        - ``HEX`` indicates the hex pattern format.
    """


class SearchSearchItemTriggerABusS64b66bBlockonePattern(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat``
          command.
        - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusS64b66bBlockonePatternFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._sync = SearchSearchItemTriggerABusS64b66bBlockonePatternSync(
            device, f"{self._cmd_syntax}:SYNC"
        )
        self._value = SearchSearchItemTriggerABusS64b66bBlockonePatternValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusS64b66bBlockonePatternFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat`` command.

        **Description:**
            - Set or query the pattern format for block when search on block is set to Pattern for
              the specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat { Binary | HEX }
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat?

        **Info:**
            - ``Binary`` indicates the binary pattern format.
            - ``HEX`` indicates the hex pattern format.
        """
        return self._format

    @property
    def sync(self) -> SearchSearchItemTriggerABusS64b66bBlockonePatternSync:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC`` command.

        **Description:**
            - Set or query the sync value of the block for the specified search.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC?

        **Info:**
            - ``<string>`` is two bits wide.
        """
        return self._sync

    @property
    def value(self) -> SearchSearchItemTriggerABusS64b66bBlockonePatternValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue`` command.

        **Description:**
            - Set or query the pattern for block when search on block is set to Pattern for the
              specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue?

        **Info:**
            - ``<string>`` is 64 bits wide.
        """
        return self._value


class SearchSearchItemTriggerABusS64b66bBlockoneBlocktype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType`` command.

    **Description:**
        - Set or query the control block type for the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType { NONe | X1E | X2D | X33 | X66 | X55 | X78 | X4B | X87 | X99 | XB4 | XCC | XD2 | XE1 | XFF }
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType?

    **Info:**
        - ``NONe``
        - ``X1E``
        - ``X2D``
        - ``X33``
        - ``X66``
        - ``X55``
        - ``X78``
        - ``X4B``
        - ``X87``
        - ``X99``
        - ``XB4``
        - ``XCC``
        - ``XD2``
        - ``XE1``
        - ``XFF``
    """  # noqa: E501


class SearchSearchItemTriggerABusS64b66bBlockone(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE`` command.

    **Description:**
        - Set or query the block trigger settings for the specified search.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE { SYNC | INVSYNC | BLOCKtype | PATtern }
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE?

    **Info:**
        - ``SYNC``
        - ``INVSYNC``
        - ``BLOCKtype``
        - ``PATtern``

    Properties:
        - ``.blocktype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType`` command.
        - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blocktype = SearchSearchItemTriggerABusS64b66bBlockoneBlocktype(
            device, f"{self._cmd_syntax}:BLOCKType"
        )
        self._pattern = SearchSearchItemTriggerABusS64b66bBlockonePattern(
            device, f"{self._cmd_syntax}:PATtern"
        )

    @property
    def blocktype(self) -> SearchSearchItemTriggerABusS64b66bBlockoneBlocktype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType`` command.

        **Description:**
            - Set or query the control block type for the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType { NONe | X1E | X2D | X33 | X66 | X55 | X78 | X4B | X87 | X99 | XB4 | XCC | XD2 | XE1 | XFF }
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType?

        **Info:**
            - ``NONe``
            - ``X1E``
            - ``X2D``
            - ``X33``
            - ``X66``
            - ``X55``
            - ``X78``
            - ``X4B``
            - ``X87``
            - ``X99``
            - ``XB4``
            - ``XCC``
            - ``XD2``
            - ``XE1``
            - ``XFF``
        """  # noqa: E501
        return self._blocktype

    @property
    def pattern(self) -> SearchSearchItemTriggerABusS64b66bBlockonePattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:FORMat``
              command.
            - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:SYNC``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern:VALue``
              command.
        """
        return self._pattern


class SearchSearchItemTriggerABusS64b66b(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B`` command tree.

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

    Properties:
        - ``.blockone``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE`` command.
        - ``.blockonethentwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO``
          command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blockone = SearchSearchItemTriggerABusS64b66bBlockone(
            device, f"{self._cmd_syntax}:BLOCKONE"
        )
        self._blockonethentwo = SearchSearchItemTriggerABusS64b66bBlockonethentwo(
            device, f"{self._cmd_syntax}:BLOCKONETHENTWO"
        )
        self._condition = SearchSearchItemTriggerABusS64b66bCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )

    @property
    def blockone(self) -> SearchSearchItemTriggerABusS64b66bBlockone:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE`` command.

        **Description:**
            - Set or query the block trigger settings for the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE { SYNC | INVSYNC | BLOCKtype | PATtern }
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE?

        **Info:**
            - ``SYNC``
            - ``INVSYNC``
            - ``BLOCKtype``
            - ``PATtern``

        Sub-properties:
            - ``.blocktype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:BLOCKType``
              command.
            - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE:PATtern`` command
              tree.
        """  # noqa: E501
        return self._blockone

    @property
    def blockonethentwo(self) -> SearchSearchItemTriggerABusS64b66bBlockonethentwo:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO:FORMat``
              command.
        """
        return self._blockonethentwo

    @property
    def condition(self) -> SearchSearchItemTriggerABusS64b66bCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition`` command.

        **Description:**
            - Set or query the search conditions for the specified search.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition { BLOCK | BLOCK1THEN2 }
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition?

        **Info:**
            - ``BLOCK`` sets the search condition to BLOCK.
            - ``BLOCK1THEN2`` sets the search condition to BLOCK1THEN2.
        """
        return self._condition


class SearchSearchItemTriggerABusRs232cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data string value for the specified RS232C bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the value of the data string. The valid characters are 0, 1, and X
          for values in binary format; and A-F, 0-9, and X for values in hexadecimal format.
    """


class SearchSearchItemTriggerABusRs232cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes to be used for an
          RS232 bus search to determine where to place a mark when the search condition is Data. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe?

    **Info:**
        - ``<NR3>`` is the number of bits per word in the data string, from 1 to 8.
    """


class SearchSearchItemTriggerABusRs232cDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the data format for the specified RS232C bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as Binary.
        - ``HEXadecimal`` specifies the data format as Hexadecimal.
    """


class SearchSearchItemTriggerABusRs232cData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusRs232cDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._size = SearchSearchItemTriggerABusRs232cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusRs232cDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusRs232cDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the data format for the specified RS232C bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as Binary.
            - ``HEXadecimal`` specifies the data format as Hexadecimal.
        """
        return self._format

    @property
    def size(self) -> SearchSearchItemTriggerABusRs232cDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes to be used for an
              RS232 bus search to determine where to place a mark when the search condition is Data.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe?

        **Info:**
            - ``<NR3>`` is the number of bits per word in the data string, from 1 to 8.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusRs232cDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data string value for the specified RS232C bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the value of the data string. The valid characters are 0, 1,
              and X for values in binary format; and A-F, 0-9, and X for values in hexadecimal
              format.
        """
        return self._value


class SearchSearchItemTriggerABusRs232cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition`` command.

    **Description:**
        - This command sets or queries the condition for an RS232C bus search to determine where to
          place a mark. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition {DATa|EOp|PARItyerror|STARt}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition?

    **Info:**
        - ``DATa`` specifies the search condition as Data.
        - ``EOp`` specifies the search condition as End of Packet.
        - ``PARItyerror`` specifies the search condition as Parity Error.
        - ``STARt`` specifies the search condition as Start.
    """


class SearchSearchItemTriggerABusRs232c(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusRs232cCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusRs232cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> SearchSearchItemTriggerABusRs232cCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition`` command.

        **Description:**
            - This command sets or queries the condition for an RS232C bus search to determine where
              to place a mark. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition {DATa|EOp|PARItyerror|STARt}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition?

        **Info:**
            - ``DATa`` specifies the search condition as Data.
            - ``EOp`` specifies the search condition as End of Packet.
            - ``PARItyerror`` specifies the search condition as Parity Error.
            - ``STARt`` specifies the search condition as Start.
        """
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusRs232cData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:FORMat`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusPciePatternSymbolPlusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>`` command.

    **Description:**
        - This command sets or queries the PCIE bus search pattern symbol plus. The search number is
          specified by x and can be 1 through 16. Plus is specified by x and can be 1 through 4.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?

    **Info:**
        - ``<string>`` specifies the plus pattern symbol.
    """


class SearchSearchItemTriggerABusPciePatternSymbolMinusItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger pattern symbol minus. The search
          number is specified by x and can be 1 through 16. Minus is specified by x and can be 1
          through 4.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?

    **Info:**
        - ``<string>`` specifies the minus pattern symbol.
    """


class SearchSearchItemTriggerABusPciePatternSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus: Dict[
            int, SearchSearchItemTriggerABusPciePatternSymbolMinusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusPciePatternSymbolMinusItem(
                device, f"{self._cmd_syntax}:MINus{x}"
            )
        )
        self._plus: Dict[
            int, SearchSearchItemTriggerABusPciePatternSymbolPlusItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusPciePatternSymbolPlusItem(
                device, f"{self._cmd_syntax}:PLUS{x}"
            )
        )

    @property
    def minus(self) -> Dict[int, SearchSearchItemTriggerABusPciePatternSymbolMinusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger pattern symbol minus. The
              search number is specified by x and can be 1 through 16. Minus is specified by x and
              can be 1 through 4.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>?

        **Info:**
            - ``<string>`` specifies the minus pattern symbol.
        """
        return self._minus

    @property
    def plus(self) -> Dict[int, SearchSearchItemTriggerABusPciePatternSymbolPlusItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>`` command.

        **Description:**
            - This command sets or queries the PCIE bus search pattern symbol plus. The search
              number is specified by x and can be 1 through 16. Plus is specified by x and can be 1
              through 4.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>?

        **Info:**
            - ``<string>`` specifies the plus pattern symbol.
        """
        return self._plus


class SearchSearchItemTriggerABusPciePatternOrderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger pattern ordered set. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset {COMPAT|EI|FTS|SKP|INVALID}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset?

    **Info:**
        - ``COMPAT`` is the compliance pattern ordered set COM D21.5 COM D10.2.
        - ``EI`` is the electrical idle ordered set COM IDL IDL IDL.
        - ``FTS`` is the fast training sequence ordered set COM FTS FTS FTS.
        - ``SKP`` is the skip ordered set COM SKP SKP SKP.
        - ``INVALID`` is an invalid set. Invalid can be returned, but it should never be sent.
    """


class SearchSearchItemTriggerABusPciePatternCharItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>`` command.

    **Description:**
        - This command sets or queries the PCIE bus search pattern character. The search number is
          specified by x and can be 1 through 16. The character number is specified by x and can be
          1 through 4.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x> <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>?

    **Info:**
        - ``<string>`` is the pattern character.
    """


class SearchSearchItemTriggerABusPciePattern(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>`` command.
        - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char: Dict[
            int, SearchSearchItemTriggerABusPciePatternCharItem
        ] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItemTriggerABusPciePatternCharItem(
                device, f"{self._cmd_syntax}:CHAR{x}"
            )
        )
        self._orderedset = SearchSearchItemTriggerABusPciePatternOrderedset(
            device, f"{self._cmd_syntax}:ORDERedset"
        )
        self._symbol = SearchSearchItemTriggerABusPciePatternSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> Dict[int, SearchSearchItemTriggerABusPciePatternCharItem]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>`` command.

        **Description:**
            - This command sets or queries the PCIE bus search pattern character. The search number
              is specified by x and can be 1 through 16. The character number is specified by x and
              can be 1 through 4.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x> <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>?

        **Info:**
            - ``<string>`` is the pattern character.
        """
        return self._char

    @property
    def orderedset(self) -> SearchSearchItemTriggerABusPciePatternOrderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger pattern ordered set. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset {COMPAT|EI|FTS|SKP|INVALID}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset?

        **Info:**
            - ``COMPAT`` is the compliance pattern ordered set COM D21.5 COM D10.2.
            - ``EI`` is the electrical idle ordered set COM IDL IDL IDL.
            - ``FTS`` is the fast training sequence ordered set COM FTS FTS FTS.
            - ``SKP`` is the skip ordered set COM SKP SKP SKP.
            - ``INVALID`` is an invalid set. Invalid can be returned, but it should never be sent.
        """
        return self._orderedset

    @property
    def symbol(self) -> SearchSearchItemTriggerABusPciePatternSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:MINus<x>``
              command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol:PLUS<x>`` command.
        """
        return self._symbol


class SearchSearchItemTriggerABusPcieLongorderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger long ordered set. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset {CTRLSKP|EI|EIE|FTS|SDS|SKP|TS<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset?

    **Info:**
        - ``CTRLSKP`` is the Control SKIP ordered set (Gen4).
        - ``EI`` is the Electrical Idle ordered set (Gen3).
        - ``EIE`` is the Electrical Idle Exit ordered set.
        - ``FTS`` is the Fast Training Sequence ordered set (Gen3).
        - ``SDS`` is the Start of Data Stream ordered set (Gen3).
        - ``SKP`` is the SKIP ordered set (Gen3).
        - ``TS1`` is the Training Sequence 1 ordered set.
        - ``TS2`` is the Training Sequence 2 ordered set.
    """


class SearchSearchItemTriggerABusPcieFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat`` command.

    **Description:**
        - This command sets or queries the PCIE search trigger format. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat {ORDERedset|SYMbol|CHAR}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat?
    """


class SearchSearchItemTriggerABusPcieErrorSync(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC`` command.

    **Description:**
        - This command sets or queries the triggering on SYNC error state.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC?

    **Info:**
        - ``<NR1>`` = 1 enables the triggering on a SYNC error. Any other character disables the
          triggering.
        - ``OFF`` disables triggering on a SYNC error.
        - ``ON`` enables triggering on a SYNC error.
    """


class SearchSearchItemTriggerABusPcieErrorOrderedset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger error ordered set. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset?

    **Info:**
        - ``<NR1>`` = 0 disables the function; any other value enables it.
        - ``OFF`` disables the function.
        - ``ON`` enables the function.
    """


class SearchSearchItemTriggerABusPcieErrorDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity`` command.

    **Description:**
        - This command sets or queries the PCIE search trigger error disparity. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity?

    **Info:**
        - ``<NR1>`` = 0 disables the function; any other value enables it.
        - ``OFF`` disables the function.
        - ``ON`` enables the function.
    """


class SearchSearchItemTriggerABusPcieErrorChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger error character. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR?

    **Info:**
        - ``<NR1>`` = 0 disables the function; any other value enables it.
        - ``OFF`` disables the function.
        - ``ON`` enables the function.
    """


class SearchSearchItemTriggerABusPcieError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR`` command.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity`` command.
        - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset`` command.
        - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusPcieErrorChar(device, f"{self._cmd_syntax}:CHAR")
        self._disparity = SearchSearchItemTriggerABusPcieErrorDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._orderedset = SearchSearchItemTriggerABusPcieErrorOrderedset(
            device, f"{self._cmd_syntax}:ORDERedset"
        )
        self._sync = SearchSearchItemTriggerABusPcieErrorSync(device, f"{self._cmd_syntax}:SYNC")

    @property
    def char(self) -> SearchSearchItemTriggerABusPcieErrorChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger error character. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR?

        **Info:**
            - ``<NR1>`` = 0 disables the function; any other value enables it.
            - ``OFF`` disables the function.
            - ``ON`` enables the function.
        """
        return self._char

    @property
    def disparity(self) -> SearchSearchItemTriggerABusPcieErrorDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity`` command.

        **Description:**
            - This command sets or queries the PCIE search trigger error disparity. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity?

        **Info:**
            - ``<NR1>`` = 0 disables the function; any other value enables it.
            - ``OFF`` disables the function.
            - ``ON`` enables the function.
        """
        return self._disparity

    @property
    def orderedset(self) -> SearchSearchItemTriggerABusPcieErrorOrderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger error ordered set. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset?

        **Info:**
            - ``<NR1>`` = 0 disables the function; any other value enables it.
            - ``OFF`` disables the function.
            - ``ON`` enables the function.
        """
        return self._orderedset

    @property
    def sync(self) -> SearchSearchItemTriggerABusPcieErrorSync:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC`` command.

        **Description:**
            - This command sets or queries the triggering on SYNC error state.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC?

        **Info:**
            - ``<NR1>`` = 1 enables the triggering on a SYNC error. Any other character disables the
              triggering.
            - ``OFF`` disables triggering on a SYNC error.
            - ``ON`` enables triggering on a SYNC error.
        """
        return self._sync


class SearchSearchItemTriggerABusPcieDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger disparity. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity {EITher|NEGAtive|POSITIVe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity?

    **Info:**
        - ``NEGative`` specifies negative disparity.
        - ``POSITIVe`` specifies positive disparity.
        - ``EITher`` specifies either disparity.
    """


class SearchSearchItemTriggerABusPcieCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger condition. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition {ANYControl|CHARacter|ERROR|PATtern|LONGORDERedset|SYNCHeader}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition?
    """  # noqa: E501


class SearchSearchItemTriggerABusPcieCharacterSymbolPlus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger character symbol plus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?

    **Info:**
        - ``<string>`` specifies the character symbol plus.
    """


class SearchSearchItemTriggerABusPcieCharacterSymbolMinus(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus`` command.

    **Description:**
        - This command sets or queries the PCIE bus search character symbol minus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?

    **Info:**
        - ``<string>`` specifies the character symbol minus.
    """


class SearchSearchItemTriggerABusPcieCharacterSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus`` command.
        - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._minus = SearchSearchItemTriggerABusPcieCharacterSymbolMinus(
            device, f"{self._cmd_syntax}:MINus"
        )
        self._plus = SearchSearchItemTriggerABusPcieCharacterSymbolPlus(
            device, f"{self._cmd_syntax}:PLUS"
        )

    @property
    def minus(self) -> SearchSearchItemTriggerABusPcieCharacterSymbolMinus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus`` command.

        **Description:**
            - This command sets or queries the PCIE bus search character symbol minus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus?

        **Info:**
            - ``<string>`` specifies the character symbol minus.
        """
        return self._minus

    @property
    def plus(self) -> SearchSearchItemTriggerABusPcieCharacterSymbolPlus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger character symbol plus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS?

        **Info:**
            - ``<string>`` specifies the character symbol plus.
        """
        return self._plus


class SearchSearchItemTriggerABusPcieCharacterChar(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR`` command.

    **Description:**
        - This command sets or queries the PCIE bus search trigger character. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR?

    **Info:**
        - ``<STRING>`` specifies the trigger character. The string can be a mnemonic, K, or D code
          character.
    """


class SearchSearchItemTriggerABusPcieCharacter(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter`` command tree.

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

    Properties:
        - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._char = SearchSearchItemTriggerABusPcieCharacterChar(
            device, f"{self._cmd_syntax}:CHAR"
        )
        self._symbol = SearchSearchItemTriggerABusPcieCharacterSymbol(
            device, f"{self._cmd_syntax}:SYMbol"
        )

    @property
    def char(self) -> SearchSearchItemTriggerABusPcieCharacterChar:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger character. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR?

        **Info:**
            - ``<STRING>`` specifies the trigger character. The string can be a mnemonic, K, or D
              code character.
        """
        return self._char

    @property
    def symbol(self) -> SearchSearchItemTriggerABusPcieCharacterSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.minus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:MINus``
              command.
            - ``.plus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol:PLUS`` command.
        """
        return self._symbol


class SearchSearchItemTriggerABusPcie(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE`` command tree.

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

    Properties:
        - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition`` command.
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR`` command tree.
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat`` command.
        - ``.longorderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset`` command.
        - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._character = SearchSearchItemTriggerABusPcieCharacter(
            device, f"{self._cmd_syntax}:CHARacter"
        )
        self._condition = SearchSearchItemTriggerABusPcieCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._disparity = SearchSearchItemTriggerABusPcieDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._error = SearchSearchItemTriggerABusPcieError(device, f"{self._cmd_syntax}:ERROR")
        self._format = SearchSearchItemTriggerABusPcieFormat(device, f"{self._cmd_syntax}:FORMat")
        self._longorderedset = SearchSearchItemTriggerABusPcieLongorderedset(
            device, f"{self._cmd_syntax}:LONGORDERedset"
        )
        self._pattern = SearchSearchItemTriggerABusPciePattern(
            device, f"{self._cmd_syntax}:PATtern"
        )

    @property
    def character(self) -> SearchSearchItemTriggerABusPcieCharacter:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:CHAR`` command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter:SYMbol`` command
              tree.
        """
        return self._character

    @property
    def condition(self) -> SearchSearchItemTriggerABusPcieCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger condition. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition {ANYControl|CHARacter|ERROR|PATtern|LONGORDERedset|SYNCHeader}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition?
        """  # noqa: E501
        return self._condition

    @property
    def disparity(self) -> SearchSearchItemTriggerABusPcieDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger disparity. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity {EITher|NEGAtive|POSITIVe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity?

        **Info:**
            - ``NEGative`` specifies negative disparity.
            - ``POSITIVe`` specifies positive disparity.
            - ``EITher`` specifies either disparity.
        """
        return self._disparity

    @property
    def error(self) -> SearchSearchItemTriggerABusPcieError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:CHAR`` command.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:DISParity`` command.
            - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:ORDERedset`` command.
            - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR:SYNC`` command.
        """
        return self._error

    @property
    def format(self) -> SearchSearchItemTriggerABusPcieFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat`` command.

        **Description:**
            - This command sets or queries the PCIE search trigger format. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat {ORDERedset|SYMbol|CHAR}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat?
        """
        return self._format

    @property
    def longorderedset(self) -> SearchSearchItemTriggerABusPcieLongorderedset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset`` command.

        **Description:**
            - This command sets or queries the PCIE bus search trigger long ordered set. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset {CTRLSKP|EI|EIE|FTS|SDS|SKP|TS<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset?

        **Info:**
            - ``CTRLSKP`` is the Control SKIP ordered set (Gen4).
            - ``EI`` is the Electrical Idle ordered set (Gen3).
            - ``EIE`` is the Electrical Idle Exit ordered set.
            - ``FTS`` is the Fast Training Sequence ordered set (Gen3).
            - ``SDS`` is the Start of Data Stream ordered set (Gen3).
            - ``SKP`` is the SKIP ordered set (Gen3).
            - ``TS1`` is the Training Sequence 1 ordered set.
            - ``TS2`` is the Training Sequence 2 ordered set.
        """
        return self._longorderedset

    @property
    def pattern(self) -> SearchSearchItemTriggerABusPciePattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern`` command tree.

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

        Sub-properties:
            - ``.char``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:CHAR<x>`` command.
            - ``.orderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:ORDERedset``
              command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern:SYMbol`` command tree.
        """
        return self._pattern


class SearchSearchItemTriggerABusParallelDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data value string for a parallel bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the data value in a valid format. Valid characters are 0-9.
    """


class SearchSearchItemTriggerABusParallelDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the data format for a parallel bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat {BINary|HEXadecimal|SYMBolic}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as Binary.
        - ``HEXadecimal`` specifies the data format as Hexadecimal.
        - ``SYMBolic`` specifies the data format as Symbolic.
    """


class SearchSearchItemTriggerABusParallelData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusParallelDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the data format for a parallel bus trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat {BINary|HEXadecimal|SYMBolic}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as Binary.
            - ``HEXadecimal`` specifies the data format as Hexadecimal.
            - ``SYMBolic`` specifies the data format as Symbolic.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusParallelDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data value string for a parallel bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the data value in a valid format. Valid characters are 0-9.
        """
        return self._value


class SearchSearchItemTriggerABusParallel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa`` command tree.
    """

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

    @property
    def data(self) -> SearchSearchItemTriggerABusParallelData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusMipidsioneYcbcrYValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 Y value for the specified search. The search is
          specified by x. The value of x can range from 1 to 8.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue {<nr3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue?

    **Info:**
        - ``<nr3>`` specifies the Y value.
        - ``DONTCare`` specifies the Y values is don't care.
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrYQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 Y qualifier for the specified search. The search
          is specified by x. The value of x can range from 1 to 8.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrY(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrYQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 Y qualifier for the specified search. The
              search is specified by x. The value of x can range from 1 to 8.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier?
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrYValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 Y value for the specified search. The search
              is specified by x. The value of x can range from 1 to 8.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue {<nr3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue?

        **Info:**
            - ``<nr3>`` specifies the Y value.
            - ``DONTCare`` specifies the Y values is don't care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneYcbcrCrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 CR value for the specified search. The search is
          specified by x. The value of x can range from 1 to 8.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue {<nr3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue?

    **Info:**
        - ``<nr3>`` specifies the CR value.
        - ``DONTCare`` specifies the CR values is don't care.
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrCrQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 CR qualifier for the specified search. The search
          is specified by x. The value of x can range from 1 to 8.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrCr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCrQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 CR qualifier for the specified search. The
              search is specified by x. The value of x can range from 1 to 8.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier?
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCrValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 CR value for the specified search. The search
              is specified by x. The value of x can range from 1 to 8.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue {<nr3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue?

        **Info:**
            - ``<nr3>`` specifies the CR value.
            - ``DONTCare`` specifies the CR values is don't care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneYcbcrCbValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 CB value for the specified search. The search is
          specified by x. The value of x can range from 1 to 8.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue {<nr3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue?

    **Info:**
        - ``<nr3>`` specifies the CB value.
        - ``DONTCare`` specifies the CB values is don't care.
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrCbQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier`` command.

    **Description:**
        - This command sets or queries MIPI DSI-1 CB qualifier for the specified search. The search
          is specified by x. The value of x can range from 1 to 8.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?
    """


class SearchSearchItemTriggerABusMipidsioneYcbcrCb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCbQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 CB qualifier for the specified search. The
              search is specified by x. The value of x can range from 1 to 8.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier?
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCbValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue`` command.

        **Description:**
            - This command sets or queries MIPI DSI-1 CB value for the specified search. The search
              is specified by x. The value of x can range from 1 to 8.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue {<nr3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue?

        **Info:**
            - ``<nr3>`` specifies the CB value.
            - ``DONTCare`` specifies the CB values is don't care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneYcbcr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR`` command tree.

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

    Properties:
        - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB`` command tree.
        - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR`` command tree.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._cb = SearchSearchItemTriggerABusMipidsioneYcbcrCb(device, f"{self._cmd_syntax}:CB")
        self._cr = SearchSearchItemTriggerABusMipidsioneYcbcrCr(device, f"{self._cmd_syntax}:CR")
        self._y = SearchSearchItemTriggerABusMipidsioneYcbcrY(device, f"{self._cmd_syntax}:Y")

    @property
    def cb(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB:VALue`` command.
        """
        return self._cb

    @property
    def cr(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrCr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR:VALue`` command.
        """
        return self._cr

    @property
    def y(self) -> SearchSearchItemTriggerABusMipidsioneYcbcrY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y:VALue`` command.
        """
        return self._y


class SearchSearchItemTriggerABusMipidsioneWcValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue`` command.

    **Description:**
        - This command sets or queries the word count value for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the word count value.
        - ``DONTCare`` specifies the word count value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneWc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneWcValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue`` command.

        **Description:**
            - This command sets or queries the word count value for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the word count value.
            - ``DONTCare`` specifies the word count value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneWarning(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing`` command.

    **Description:**
        - This command sets or queries the warning type for a specified MIPI DSI1 bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing {ANY|ECCWarn}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing?

    **Info:**
        - ``ANY`` specifies the warning type as Any.
        - ``ECCWarn`` specifies the warning type as ECCWarn.
    """


class SearchSearchItemTriggerABusMipidsioneVc(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC`` command.

    **Description:**
        - This command sets or queries the Virtual Channel for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC?

    **Info:**
        - ``<NR3>`` specifies a Virtual Channel from 0 to 3.
        - ``DONTCare`` specifies the Virtual Channel as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneRgbRedValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Red value for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Red value; the range is dependent on the data
          type.
        - ``DONTCare`` specifies the RGB Red value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneRgbRedQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Red qualifier for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipidsioneRgbRed(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneRgbRedQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Red qualifier for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneRgbRedValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Red value for the specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Red value; the range is dependent on the data
              type.
            - ``DONTCare`` specifies the RGB Red value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneRgbGreenValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Green value for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Green value; the range is dependent on the data
          type.
        - ``DONTCare`` specifies the RGB Green value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneRgbGreenQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Green qualifier for the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipidsioneRgbGreen(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneRgbGreenQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Green qualifier for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneRgbGreenValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Green value for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Green value; the range is dependent on the
              data type.
            - ``DONTCare`` specifies the RGB Green value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneRgbBlueValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Blue value for the for the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Blue value; the range is dependent on the data
          type.
        - ``DONTCare`` specifies the RGB Blue value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneRgbBlueQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Blue qualifier for the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipidsioneRgbBlue(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipidsioneRgbBlueQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Blue qualifier for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneRgbBlueValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Blue value for the for the specified MIPI DSI1
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Blue value; the range is dependent on the
              data type.
            - ``DONTCare`` specifies the RGB Blue value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneRgb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB`` command tree.

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

    Properties:
        - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe`` command tree.
        - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen`` command tree.
        - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blue = SearchSearchItemTriggerABusMipidsioneRgbBlue(
            device, f"{self._cmd_syntax}:BLUe"
        )
        self._green = SearchSearchItemTriggerABusMipidsioneRgbGreen(
            device, f"{self._cmd_syntax}:GREen"
        )
        self._red = SearchSearchItemTriggerABusMipidsioneRgbRed(device, f"{self._cmd_syntax}:RED")

    @property
    def blue(self) -> SearchSearchItemTriggerABusMipidsioneRgbBlue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe:VALue`` command.
        """
        return self._blue

    @property
    def green(self) -> SearchSearchItemTriggerABusMipidsioneRgbGreen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen:VALue`` command.
        """
        return self._green

    @property
    def red(self) -> SearchSearchItemTriggerABusMipidsioneRgbRed:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED:VALue`` command.
        """
        return self._red


class SearchSearchItemTriggerABusMipidsionePixelValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue`` command.

    **Description:**
        - This command sets or queries the pixel value for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue?

    **Info:**
        - ``<NR3>`` specifies a number that represents the pixel value.
        - ``DONTCare`` specifies the pixel value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsionePixel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsionePixelValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue`` command.

        **Description:**
            - This command sets or queries the pixel value for the specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue?

        **Info:**
            - ``<NR3>`` specifies a number that represents the pixel value.
            - ``DONTCare`` specifies the pixel value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsionePayloadValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue`` command.

    **Description:**
        - This command sets or queries the generic payload value string of the specified MIPI DSI1
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue?

    **Info:**
        - ``<string>`` specifies the payload value. The valid characters are 0, 1, and X for values
          in binary format; and A-F, 0-9, and X for values in hexadecimal format.
    """


class SearchSearchItemTriggerABusMipidsionePayloadSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe`` command.

    **Description:**
        - This command sets or queries the generic payload size of the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe?

    **Info:**
        - ``<NR3>`` specifies a number from 1 to 16, that sets the size of the generic payload in
          bytes.
    """


class SearchSearchItemTriggerABusMipidsionePayloadFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat`` command.

    **Description:**
        - This command sets or queries the generic payload format for the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat?

    **Info:**
        - ``BINary`` specifies the generic payload format as Binary.
        - ``HEXadecimal`` specifies the generic payload format as Hexadecimal.
    """


class SearchSearchItemTriggerABusMipidsionePayload(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMipidsionePayloadFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._size = SearchSearchItemTriggerABusMipidsionePayloadSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusMipidsionePayloadValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMipidsionePayloadFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat`` command.

        **Description:**
            - This command sets or queries the generic payload format for the specified MIPI DSI1
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat?

        **Info:**
            - ``BINary`` specifies the generic payload format as Binary.
            - ``HEXadecimal`` specifies the generic payload format as Hexadecimal.
        """
        return self._format

    @property
    def size(self) -> SearchSearchItemTriggerABusMipidsionePayloadSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe`` command.

        **Description:**
            - This command sets or queries the generic payload size of the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe?

        **Info:**
            - ``<NR3>`` specifies a number from 1 to 16, that sets the size of the generic payload
              in bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsionePayloadValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue`` command.

        **Description:**
            - This command sets or queries the generic payload value string of the specified MIPI
              DSI1 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue?

        **Info:**
            - ``<string>`` specifies the payload value. The valid characters are 0, 1, and X for
              values in binary format; and A-F, 0-9, and X for values in hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsionePacketdataValuetwo(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo`` command.

    **Description:**
        - This command sets or queries the value of the second byte (8 bits) of a packet data string
          for the specified MIPI DSI1 bus trigger search to determine where to place a mark. <x> is
          the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo?

    **Info:**
        - ``<string>`` specifies the second byte of a packet data string. The valid characters are
          0, 1, and X when the format is set to binary; and 0-9, A-F, and X when the format is set
          to hexadecimal.
    """


class SearchSearchItemTriggerABusMipidsionePacketdataValueone(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne`` command.

    **Description:**
        - This command sets or queries the value of the first byte (8 bits) of a packet data string
          for the specified MIPI DSI1 bus trigger search to determine where to place a mark. <x> is
          the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne?

    **Info:**
        - ``<string>`` specifies the first byte of the packet data string. The valid characters are
          0, 1, and X when the format is set to binary; and 0-9, A-F, and X when the format is set
          to hexadecimal.
    """


class SearchSearchItemTriggerABusMipidsionePacketdataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat`` command.

    **Description:**
        - This command sets or queries the format of the packet data for the specified MIPI DSI1 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat?

    **Info:**
        - ``BINary`` specifies the format of the packet data as Binary.
        - ``HEXadecimal`` specifies the format of the packet data as Hexadecimal.
    """


class SearchSearchItemTriggerABusMipidsionePacketdata(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat`` command.
        - ``.valueone``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne``
          command.
        - ``.valuetwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMipidsionePacketdataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._valueone = SearchSearchItemTriggerABusMipidsionePacketdataValueone(
            device, f"{self._cmd_syntax}:VALUEOne"
        )
        self._valuetwo = SearchSearchItemTriggerABusMipidsionePacketdataValuetwo(
            device, f"{self._cmd_syntax}:VALUETwo"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMipidsionePacketdataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat`` command.

        **Description:**
            - This command sets or queries the format of the packet data for the specified MIPI DSI1
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat?

        **Info:**
            - ``BINary`` specifies the format of the packet data as Binary.
            - ``HEXadecimal`` specifies the format of the packet data as Hexadecimal.
        """
        return self._format

    @property
    def valueone(self) -> SearchSearchItemTriggerABusMipidsionePacketdataValueone:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne`` command.

        **Description:**
            - This command sets or queries the value of the first byte (8 bits) of a packet data
              string for the specified MIPI DSI1 bus trigger search to determine where to place a
              mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne?

        **Info:**
            - ``<string>`` specifies the first byte of the packet data string. The valid characters
              are 0, 1, and X when the format is set to binary; and 0-9, A-F, and X when the format
              is set to hexadecimal.
        """
        return self._valueone

    @property
    def valuetwo(self) -> SearchSearchItemTriggerABusMipidsionePacketdataValuetwo:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo`` command.

        **Description:**
            - This command sets or queries the value of the second byte (8 bits) of a packet data
              string for the specified MIPI DSI1 bus trigger search to determine where to place a
              mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo?

        **Info:**
            - ``<string>`` specifies the second byte of a packet data string. The valid characters
              are 0, 1, and X when the format is set to binary; and 0-9, A-F, and X when the format
              is set to hexadecimal.
        """
        return self._valuetwo


class SearchSearchItemTriggerABusMipidsioneOffsetValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue`` command.

    **Description:**
        - This command sets or queries the offset value for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue?

    **Info:**
        - ``<NR3>`` specifies an offset value.
        - ``DONTCare`` specifies the offset value as Don't Care.
    """


class SearchSearchItemTriggerABusMipidsioneOffset(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipidsioneOffsetValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue`` command.

        **Description:**
            - This command sets or queries the offset value for the specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue?

        **Info:**
            - ``<NR3>`` specifies an offset value.
            - ``DONTCare`` specifies the offset value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipidsioneEscape(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape`` command.

    **Description:**
        - This command sets or queries the Escape command for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape {ACK|LPDATA|RESET|ANY|TEAR|ULTRALP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape?

    **Info:**
        - ``ACK`` specifies the Escape command as Ack (positive acknowledgement).
        - ``LPDATA`` specifies the Escape command as Low Power Data Transmission.
        - ``RESET`` specifies the Escape command as Reset.
        - ``ANY`` specifies the Escape command as Any.
        - ``TEAR`` specifies the Escape command as Tearing Effect.
        - ``ULTRALP`` specifies the Escape command as Ultra Low Power State.
    """


class SearchSearchItemTriggerABusMipidsioneError(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor`` command.

    **Description:**
        - This command sets or queries the error type for the specified MIPI DSI1 bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor {ANY|CHECKsumerror|ECCError}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor?

    **Info:**
        - ``ANY`` specifies the error type as Any.
        - ``CHECKsumerror`` specifies the error type as Check Sum Error.
        - ``ECCError`` specifies the error type as ECC Error.
    """


class SearchSearchItemTriggerABusMipidsioneDtshort(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort`` command.

    **Description:**
        - This command sets or queries the data type for short packets for the MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort {ACKErrorreport|ANY|COLOROFF|COLORON|DCSR|DCSSRR1| DCSRR2|DCSSW<x>|EOT|GR<x>|GSRR<x>| GSW<x>|HSYNCEnd|HSYNCStart|MAXRETsize|SHUTDown| TURNON|VSYNCEnd|VSYNCStart}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort?

    **Info:**
        - ``ACKErrorreport`` Acknowledge and Error report.
        - ``ANY`` matches any data type.
        - ``COLOROFF`` Color Mode Off.
        - ``COLORON`` Color Mode On.
        - ``DCSR`` DCS Read.
        - ``DCSSRR1`` DCS Short Read Response, 1 byte.
        - ``DCSRR2`` DCS Short Read Response, 2 bytes.
        - ``DCSSW0`` DCS Short Write, no parameters.
        - ``DCSSW1`` DCS Short Write, 1 parameter.
        - ``EOT`` End of Transmission.
        - ``GR0`` Generic Read, no parameters.
        - ``GR1`` Generic Read, one parameter.
        - ``GR2`` Generic Read, two parameters.
        - ``GSRR1`` Generic Short Read Response, 1 byte.
        - ``GSRR2`` Generic Short Read Response, 2 bytes.
        - ``GSW0`` Generic Short Write, no parameters.
        - ``GSW1`` Generic Short Write, one parameters.
        - ``GSW2`` Generic Short Write, two parameters.
        - ``HSYNCEnd`` HSync End.
        - ``HSYNCStart`` HSync Start.
        - ``MAXRETsize`` Set Maximum Return Packet Size.
        - ``SHUTDown`` Shut Down Peripheral.
        - ``TURNON`` Turn On Peripheral.
        - ``VSYNCEnd`` VSync End.
        - ``VSYNCStart`` VSync Start.
    """  # noqa: E501


class SearchSearchItemTriggerABusMipidsioneDtlong(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong`` command.

    **Description:**
        - This command sets or queries the data type for long packets for the specified MIPI DSI1
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong {ANY|BLANK|DCSLONGRead|DCSLONGWrite|GLONGRead|GLONGWrite| LPS666|NULL|PPS565|PPS666|PPS888|PPS101010|PPS121212|YCBCR12|YCBCR16|YCBCR20|YCBCR24}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong?

    **Info:**
        - ``ANY`` specifies the data type as Any.
        - ``BLANK`` specifies the data type as Blank.
        - ``DCSLONGRead`` specifies the data type as DCS Long Read.
        - ``DCSLONGWrite`` specifies the data type as DCS Long Write.
        - ``GLONGRead`` specifies the data type as General Long Read Response.
        - ``GLONGWrite`` specifies the data type as General Long Write.
        - ``LPS666`` specifies the data type as Loosely Packed 18-bit RGB, 6-6-6.
        - ``NULL`` specifies the data type as Null.
        - ``PPS565`` specifies the data type as 16-bit RGB, 5-6-5.
        - ``PPS666`` specifies the data type as 18-bit RGB, 6-6-6.
        - ``PPS888`` specifies the data type as 24-bit RGB, 8-8-8.
        - ``PPS101010`` specifies the data type as 30-bit RGB, 10-10-10.
        - ``PPS121212`` specifies the data type as 36-bit RGB, 12-12-12.
        - ``YCBCR12`` specifies the data type as 12-bit YCbCr, ``4:2:0``.
        - ``YCBCR16`` specifies the data type as 16-bit YCbCr, ``4:2:2``.
        - ``YCBCR20`` specifies the data type as 20-bit YCbCr, ``4:2:2``.
        - ``YCBCR24`` specifies the data type as 24-bit YCbCr, ``4:2:2``.
    """  # noqa: E501


class SearchSearchItemTriggerABusMipidsioneDirection(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection`` command.

    **Description:**
        - This command sets or queries the direction for the specified MIPI DSI1 bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection {FORWard|REVErse|ANY}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection?

    **Info:**
        - ``FORWard`` specifies the direction as Forward.
        - ``REVErse`` specifies the direction as Reverse.
        - ``ANY`` specifies the direction as Any.
    """


class SearchSearchItemTriggerABusMipidsioneCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for the specified MIPI DSI1 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition {ESCMode|BTA|EOT|ERROR|LONG|SHORT|SOT|STOP|WA}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition?

    **Info:**
        - ``ESCMode`` specifies the search condition as Escape Mode.
        - ``BTA`` specifies the search condition as Bus Turnaround.
        - ``EOT`` specifies the search condition as End of Transmission.
        - ``ERROR`` specifies the search condition as Error.
        - ``LONG`` specifies the search condition as Long Packet.
        - ``SHORT`` specifies the search condition as Short Packet.
        - ``SOT`` specifies the search condition as Start of Transmission.
        - ``STOP`` specifies the search condition as Low Power Stop State.
    """  # noqa: E501


class SearchSearchItemTriggerABusMipidsioneAckerrreport(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport`` command.

    **Description:**
        - This command sets or queries the Acknowledge and Error Report for the specified MIPI DSI1
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport {ANY|CHKSUMError|CONTention|DSINR|DSIViolation|DSIVC| ECCMBError|ECCSBError|EOTSync|ESCMODEError|FCE|HSRTError| INVALID|LPTSError|SOTError|SOTSync}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport?

    **Info:**
        - ``ANY`` matches any error condition.
        - ``CHKSUMError`` Checksum Error.
        - ``CONTention`` is the contention detected.
        - ``DSINR`` DSI Data Type Not Recognized.
        - ``DSIViolation`` DSI Protocol Violation.
        - ``DSIVC`` DSI Virtual Channel ID Invalid.
        - ``ECCMBError`` ECC Error, Multi-bit.
        - ``ECCSBError`` ECC Error, Single-bit.
        - ``EOTSync`` End of Transmission Sync.
        - ``ESCMODEError`` Escape Mode Entry Command Error.
        - ``FCE`` False Control Error.
        - ``HSRTError`` High-Speed Receive Timeout Error.
        - ``INVALID`` Invalid Transmission Length.
        - ``LPTSError`` Low-Power Transmit Sync Error.
        - ``SOTError`` Start of Transmission Error.
        - ``SOTSync`` Start of Transmission Sync Error.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusMipidsione(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne`` command tree.

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

    Properties:
        - ``.ackerrreport``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport`` command.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition`` command.
        - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection`` command.
        - ``.dtlong``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong`` command.
        - ``.dtshort``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor`` command.
        - ``.escape``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset`` command tree.
        - ``.packetdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata`` command
          tree.
        - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad`` command tree.
        - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel`` command tree.
        - ``.rgb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB`` command tree.
        - ``.vc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC`` command.
        - ``.warning``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing`` command.
        - ``.wc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC`` command tree.
        - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ackerrreport = SearchSearchItemTriggerABusMipidsioneAckerrreport(
            device, f"{self._cmd_syntax}:ACKERRreport"
        )
        self._condition = SearchSearchItemTriggerABusMipidsioneCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._direction = SearchSearchItemTriggerABusMipidsioneDirection(
            device, f"{self._cmd_syntax}:DIRection"
        )
        self._dtlong = SearchSearchItemTriggerABusMipidsioneDtlong(
            device, f"{self._cmd_syntax}:DTLong"
        )
        self._dtshort = SearchSearchItemTriggerABusMipidsioneDtshort(
            device, f"{self._cmd_syntax}:DTShort"
        )
        self._error = SearchSearchItemTriggerABusMipidsioneError(
            device, f"{self._cmd_syntax}:ERRor"
        )
        self._escape = SearchSearchItemTriggerABusMipidsioneEscape(
            device, f"{self._cmd_syntax}:ESCape"
        )
        self._offset = SearchSearchItemTriggerABusMipidsioneOffset(
            device, f"{self._cmd_syntax}:OFFset"
        )
        self._packetdata = SearchSearchItemTriggerABusMipidsionePacketdata(
            device, f"{self._cmd_syntax}:PACKetdata"
        )
        self._payload = SearchSearchItemTriggerABusMipidsionePayload(
            device, f"{self._cmd_syntax}:PAYLoad"
        )
        self._pixel = SearchSearchItemTriggerABusMipidsionePixel(
            device, f"{self._cmd_syntax}:PIXel"
        )
        self._rgb = SearchSearchItemTriggerABusMipidsioneRgb(device, f"{self._cmd_syntax}:RGB")
        self._vc = SearchSearchItemTriggerABusMipidsioneVc(device, f"{self._cmd_syntax}:VC")
        self._warning = SearchSearchItemTriggerABusMipidsioneWarning(
            device, f"{self._cmd_syntax}:WARNing"
        )
        self._wc = SearchSearchItemTriggerABusMipidsioneWc(device, f"{self._cmd_syntax}:WC")
        self._ycbcr = SearchSearchItemTriggerABusMipidsioneYcbcr(
            device, f"{self._cmd_syntax}:YCBCR"
        )

    @property
    def ackerrreport(self) -> SearchSearchItemTriggerABusMipidsioneAckerrreport:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport`` command.

        **Description:**
            - This command sets or queries the Acknowledge and Error Report for the specified MIPI
              DSI1 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport {ANY|CHKSUMError|CONTention|DSINR|DSIViolation|DSIVC| ECCMBError|ECCSBError|EOTSync|ESCMODEError|FCE|HSRTError| INVALID|LPTSError|SOTError|SOTSync}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport?

        **Info:**
            - ``ANY`` matches any error condition.
            - ``CHKSUMError`` Checksum Error.
            - ``CONTention`` is the contention detected.
            - ``DSINR`` DSI Data Type Not Recognized.
            - ``DSIViolation`` DSI Protocol Violation.
            - ``DSIVC`` DSI Virtual Channel ID Invalid.
            - ``ECCMBError`` ECC Error, Multi-bit.
            - ``ECCSBError`` ECC Error, Single-bit.
            - ``EOTSync`` End of Transmission Sync.
            - ``ESCMODEError`` Escape Mode Entry Command Error.
            - ``FCE`` False Control Error.
            - ``HSRTError`` High-Speed Receive Timeout Error.
            - ``INVALID`` Invalid Transmission Length.
            - ``LPTSError`` Low-Power Transmit Sync Error.
            - ``SOTError`` Start of Transmission Error.
            - ``SOTSync`` Start of Transmission Sync Error.
        """  # noqa: E501
        return self._ackerrreport

    @property
    def condition(self) -> SearchSearchItemTriggerABusMipidsioneCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition {ESCMode|BTA|EOT|ERROR|LONG|SHORT|SOT|STOP|WA}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition?

        **Info:**
            - ``ESCMode`` specifies the search condition as Escape Mode.
            - ``BTA`` specifies the search condition as Bus Turnaround.
            - ``EOT`` specifies the search condition as End of Transmission.
            - ``ERROR`` specifies the search condition as Error.
            - ``LONG`` specifies the search condition as Long Packet.
            - ``SHORT`` specifies the search condition as Short Packet.
            - ``SOT`` specifies the search condition as Start of Transmission.
            - ``STOP`` specifies the search condition as Low Power Stop State.
        """  # noqa: E501
        return self._condition

    @property
    def direction(self) -> SearchSearchItemTriggerABusMipidsioneDirection:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection`` command.

        **Description:**
            - This command sets or queries the direction for the specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection {FORWard|REVErse|ANY}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection?

        **Info:**
            - ``FORWard`` specifies the direction as Forward.
            - ``REVErse`` specifies the direction as Reverse.
            - ``ANY`` specifies the direction as Any.
        """
        return self._direction

    @property
    def dtlong(self) -> SearchSearchItemTriggerABusMipidsioneDtlong:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong`` command.

        **Description:**
            - This command sets or queries the data type for long packets for the specified MIPI
              DSI1 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong {ANY|BLANK|DCSLONGRead|DCSLONGWrite|GLONGRead|GLONGWrite| LPS666|NULL|PPS565|PPS666|PPS888|PPS101010|PPS121212|YCBCR12|YCBCR16|YCBCR20|YCBCR24}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong?

        **Info:**
            - ``ANY`` specifies the data type as Any.
            - ``BLANK`` specifies the data type as Blank.
            - ``DCSLONGRead`` specifies the data type as DCS Long Read.
            - ``DCSLONGWrite`` specifies the data type as DCS Long Write.
            - ``GLONGRead`` specifies the data type as General Long Read Response.
            - ``GLONGWrite`` specifies the data type as General Long Write.
            - ``LPS666`` specifies the data type as Loosely Packed 18-bit RGB, 6-6-6.
            - ``NULL`` specifies the data type as Null.
            - ``PPS565`` specifies the data type as 16-bit RGB, 5-6-5.
            - ``PPS666`` specifies the data type as 18-bit RGB, 6-6-6.
            - ``PPS888`` specifies the data type as 24-bit RGB, 8-8-8.
            - ``PPS101010`` specifies the data type as 30-bit RGB, 10-10-10.
            - ``PPS121212`` specifies the data type as 36-bit RGB, 12-12-12.
            - ``YCBCR12`` specifies the data type as 12-bit YCbCr, ``4:2:0``.
            - ``YCBCR16`` specifies the data type as 16-bit YCbCr, ``4:2:2``.
            - ``YCBCR20`` specifies the data type as 20-bit YCbCr, ``4:2:2``.
            - ``YCBCR24`` specifies the data type as 24-bit YCbCr, ``4:2:2``.
        """  # noqa: E501
        return self._dtlong

    @property
    def dtshort(self) -> SearchSearchItemTriggerABusMipidsioneDtshort:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort`` command.

        **Description:**
            - This command sets or queries the data type for short packets for the MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort {ACKErrorreport|ANY|COLOROFF|COLORON|DCSR|DCSSRR1| DCSRR2|DCSSW<x>|EOT|GR<x>|GSRR<x>| GSW<x>|HSYNCEnd|HSYNCStart|MAXRETsize|SHUTDown| TURNON|VSYNCEnd|VSYNCStart}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort?

        **Info:**
            - ``ACKErrorreport`` Acknowledge and Error report.
            - ``ANY`` matches any data type.
            - ``COLOROFF`` Color Mode Off.
            - ``COLORON`` Color Mode On.
            - ``DCSR`` DCS Read.
            - ``DCSSRR1`` DCS Short Read Response, 1 byte.
            - ``DCSRR2`` DCS Short Read Response, 2 bytes.
            - ``DCSSW0`` DCS Short Write, no parameters.
            - ``DCSSW1`` DCS Short Write, 1 parameter.
            - ``EOT`` End of Transmission.
            - ``GR0`` Generic Read, no parameters.
            - ``GR1`` Generic Read, one parameter.
            - ``GR2`` Generic Read, two parameters.
            - ``GSRR1`` Generic Short Read Response, 1 byte.
            - ``GSRR2`` Generic Short Read Response, 2 bytes.
            - ``GSW0`` Generic Short Write, no parameters.
            - ``GSW1`` Generic Short Write, one parameters.
            - ``GSW2`` Generic Short Write, two parameters.
            - ``HSYNCEnd`` HSync End.
            - ``HSYNCStart`` HSync Start.
            - ``MAXRETsize`` Set Maximum Return Packet Size.
            - ``SHUTDown`` Shut Down Peripheral.
            - ``TURNON`` Turn On Peripheral.
            - ``VSYNCEnd`` VSync End.
            - ``VSYNCStart`` VSync Start.
        """  # noqa: E501
        return self._dtshort

    @property
    def error(self) -> SearchSearchItemTriggerABusMipidsioneError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor`` command.

        **Description:**
            - This command sets or queries the error type for the specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor {ANY|CHECKsumerror|ECCError}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor?

        **Info:**
            - ``ANY`` specifies the error type as Any.
            - ``CHECKsumerror`` specifies the error type as Check Sum Error.
            - ``ECCError`` specifies the error type as ECC Error.
        """
        return self._error

    @property
    def escape(self) -> SearchSearchItemTriggerABusMipidsioneEscape:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape`` command.

        **Description:**
            - This command sets or queries the Escape command for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape {ACK|LPDATA|RESET|ANY|TEAR|ULTRALP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape?

        **Info:**
            - ``ACK`` specifies the Escape command as Ack (positive acknowledgement).
            - ``LPDATA`` specifies the Escape command as Low Power Data Transmission.
            - ``RESET`` specifies the Escape command as Reset.
            - ``ANY`` specifies the Escape command as Any.
            - ``TEAR`` specifies the Escape command as Tearing Effect.
            - ``ULTRALP`` specifies the Escape command as Ultra Low Power State.
        """
        return self._escape

    @property
    def offset(self) -> SearchSearchItemTriggerABusMipidsioneOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset:VALue`` command.
        """
        return self._offset

    @property
    def packetdata(self) -> SearchSearchItemTriggerABusMipidsionePacketdata:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:FORMat``
              command.
            - ``.valueone``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUEOne``
              command.
            - ``.valuetwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata:VALUETwo``
              command.
        """
        return self._packetdata

    @property
    def payload(self) -> SearchSearchItemTriggerABusMipidsionePayload:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:FORMat`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad:VALue`` command.
        """
        return self._payload

    @property
    def pixel(self) -> SearchSearchItemTriggerABusMipidsionePixel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel:VALue`` command.
        """
        return self._pixel

    @property
    def rgb(self) -> SearchSearchItemTriggerABusMipidsioneRgb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB`` command tree.

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

        Sub-properties:
            - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:BLUe`` command tree.
            - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:GREen`` command tree.
            - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB:RED`` command tree.
        """
        return self._rgb

    @property
    def vc(self) -> SearchSearchItemTriggerABusMipidsioneVc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC`` command.

        **Description:**
            - This command sets or queries the Virtual Channel for the specified MIPI DSI1 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC?

        **Info:**
            - ``<NR3>`` specifies a Virtual Channel from 0 to 3.
            - ``DONTCare`` specifies the Virtual Channel as Don't Care.
        """
        return self._vc

    @property
    def warning(self) -> SearchSearchItemTriggerABusMipidsioneWarning:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing`` command.

        **Description:**
            - This command sets or queries the warning type for a specified MIPI DSI1 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing {ANY|ECCWarn}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing?

        **Info:**
            - ``ANY`` specifies the warning type as Any.
            - ``ECCWarn`` specifies the warning type as ECCWarn.
        """
        return self._warning

    @property
    def wc(self) -> SearchSearchItemTriggerABusMipidsioneWc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC:VALue`` command.
        """
        return self._wc

    @property
    def ycbcr(self) -> SearchSearchItemTriggerABusMipidsioneYcbcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR`` command tree.

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

        Sub-properties:
            - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CB`` command tree.
            - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:CR`` command tree.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR:Y`` command tree.
        """
        return self._ycbcr


class SearchSearchItemTriggerABusMipicsitwoYuvYValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue`` command.

    **Description:**
        - This command sets or queries the YUV Y value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the YUV Y value; the range of the number is dependent on
          the data type.
        - ``DONTCare`` specifies the YUV Y value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvYQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier`` command.

    **Description:**
        - This command sets or queries the YUV Y qualifier for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvY(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoYuvYQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier`` command.

        **Description:**
            - This command sets or queries the YUV Y qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoYuvYValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue`` command.

        **Description:**
            - This command sets or queries the YUV Y value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the YUV Y value; the range of the number is dependent
              on the data type.
            - ``DONTCare`` specifies the YUV Y value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoYuvVValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue`` command.

    **Description:**
        - This command sets or queries the YUV V value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the YUV V value; the range of the number is dependent on
          the data type.
        - ``DONTCare`` specifies the YUV V value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvVQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier`` command.

    **Description:**
        - This command sets or queries the YUV V qualifier for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvV(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoYuvVQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier`` command.

        **Description:**
            - This command sets or queries the YUV V qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoYuvVValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue`` command.

        **Description:**
            - This command sets or queries the YUV V value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the YUV V value; the range of the number is dependent
              on the data type.
            - ``DONTCare`` specifies the YUV V value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoYuvUValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue`` command.

    **Description:**
        - This command sets or queries the YUV U value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the YUV U value; the range of the number is dependent on
          the data type.
        - ``DONTCare`` specifies the YUV U value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvUQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier`` command.

    **Description:**
        - This command sets or queries the YUV U qualifier for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoYuvU(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoYuvUQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier`` command.

        **Description:**
            - This command sets or queries the YUV U qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoYuvUValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue`` command.

        **Description:**
            - This command sets or queries the YUV U value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the YUV U value; the range of the number is dependent
              on the data type.
            - ``DONTCare`` specifies the YUV U value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoYuv(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV`` command tree.

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

    Properties:
        - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U`` command tree.
        - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V`` command tree.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._u = SearchSearchItemTriggerABusMipicsitwoYuvU(device, f"{self._cmd_syntax}:U")
        self._v = SearchSearchItemTriggerABusMipicsitwoYuvV(device, f"{self._cmd_syntax}:V")
        self._y = SearchSearchItemTriggerABusMipicsitwoYuvY(device, f"{self._cmd_syntax}:Y")

    @property
    def u(self) -> SearchSearchItemTriggerABusMipicsitwoYuvU:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U:VALue`` command.
        """
        return self._u

    @property
    def v(self) -> SearchSearchItemTriggerABusMipicsitwoYuvV:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V:VALue`` command.
        """
        return self._v

    @property
    def y(self) -> SearchSearchItemTriggerABusMipicsitwoYuvY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y:VALue`` command.
        """
        return self._y


class SearchSearchItemTriggerABusMipicsitwoWcValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue`` command.

    **Description:**
        - This command sets or queries the word count value for a specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the word count value.
        - ``DONTCare`` specifies the word count value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoWc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoWcValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue`` command.

        **Description:**
            - This command sets or queries the word count value for a specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the word count value.
            - ``DONTCare`` specifies the word count value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoWarning(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing`` command.

    **Description:**
        - This command sets or queries the warning type for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing {ANY|ECCWarn}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing?

    **Info:**
        - ``ANY`` specifies the warning type as Any.
        - ``ECCWarn`` specifies the warning type as ECC Warning.
    """


class SearchSearchItemTriggerABusMipicsitwoVc(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC`` command.

    **Description:**
        - This command sets or queries the Virtual Channel for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC?

    **Info:**
        - ``<NR3>`` specifies a number from 0 to 3 that represents the virtual channel.
        - ``DONTCare`` specifies the virtual channel as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbRedValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Red value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Red value; the range of the number is dependent
          on the data type.
        - ``DONTCare`` specifies the RGB Red value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbRedQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Red qualifier for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbRed(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoRgbRedQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Red qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoRgbRedValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Red value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Red value; the range of the number is
              dependent on the data type.
            - ``DONTCare`` specifies the RGB Red value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoRgbGreenValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Green value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Green value; the range of the number is dependent
          on the data type.
        - ``DONTCare`` specifies the RGB Green value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbGreenQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Green qualifier for the specified MIPI CSI2 bus
          trigger search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbGreen(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoRgbGreenQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Green qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoRgbGreenValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Green value for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Green value; the range of the number is
              dependent on the data type.
            - ``DONTCare`` specifies the RGB Green value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoRgbBlueValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue`` command.

    **Description:**
        - This command sets or queries the RGB Blue value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x>is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue?

    **Info:**
        - ``<NR3>`` specifies a number for the RGB Blue value; the range of the number is dependent
          on the data type.
        - ``DONTCare`` specifies the RGB Blue value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbBlueQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RGB Blue qualifier for the specified MIPI CSI2 bus
          trigger search to determine where to place a mark. <x> is the search number.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREThan`` specifies the qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoRgbBlue(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoRgbBlueQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RGB Blue qualifier for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREThan`` specifies the qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoRgbBlueValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue`` command.

        **Description:**
            - This command sets or queries the RGB Blue value for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x>is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue?

        **Info:**
            - ``<NR3>`` specifies a number for the RGB Blue value; the range of the number is
              dependent on the data type.
            - ``DONTCare`` specifies the RGB Blue value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoRgb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB`` command tree.

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

    Properties:
        - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe`` command tree.
        - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen`` command tree.
        - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blue = SearchSearchItemTriggerABusMipicsitwoRgbBlue(
            device, f"{self._cmd_syntax}:BLUe"
        )
        self._green = SearchSearchItemTriggerABusMipicsitwoRgbGreen(
            device, f"{self._cmd_syntax}:GREen"
        )
        self._red = SearchSearchItemTriggerABusMipicsitwoRgbRed(device, f"{self._cmd_syntax}:RED")

    @property
    def blue(self) -> SearchSearchItemTriggerABusMipicsitwoRgbBlue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe:VALue`` command.
        """
        return self._blue

    @property
    def green(self) -> SearchSearchItemTriggerABusMipicsitwoRgbGreen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen:VALue`` command.
        """
        return self._green

    @property
    def red(self) -> SearchSearchItemTriggerABusMipicsitwoRgbRed:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED:VALue`` command.
        """
        return self._red


class SearchSearchItemTriggerABusMipicsitwoRawValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue`` command.

    **Description:**
        - This command sets or queries the RAW value for the specified MIPI CSI2 bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue?

    **Info:**
        - ``<NR3>`` specifies a number that represents the RAW value.
        - ``DONTCare`` specifies the RAW value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoRawQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier`` command.

    **Description:**
        - This command sets or queries the RAW qualifier for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier {EQUal|LESSThan|MOREThan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier?

    **Info:**
        - ``EQUal`` specifies the RAW qualifier as Equal.
        - ``LESSThan`` specifies the RAW qualifier as Less Than.
        - ``MOREThan`` specifies the RAW qualifier as More Than.
    """


class SearchSearchItemTriggerABusMipicsitwoRaw(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW`` command tree.

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

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue`` command.
    """

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

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMipicsitwoRawQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier`` command.

        **Description:**
            - This command sets or queries the RAW qualifier for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier {EQUal|LESSThan|MOREThan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier?

        **Info:**
            - ``EQUal`` specifies the RAW qualifier as Equal.
            - ``LESSThan`` specifies the RAW qualifier as Less Than.
            - ``MOREThan`` specifies the RAW qualifier as More Than.
        """
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoRawValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue`` command.

        **Description:**
            - This command sets or queries the RAW value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue?

        **Info:**
            - ``<NR3>`` specifies a number that represents the RAW value.
            - ``DONTCare`` specifies the RAW value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoPixelValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue`` command.

    **Description:**
        - This command sets or queries the pixel value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue?

    **Info:**
        - ``<NR3>`` specifies a number that represents the pixel value.
        - ``DONTCare`` specifies the pixel value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoPixel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoPixelValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue`` command.

        **Description:**
            - This command sets or queries the pixel value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue?

        **Info:**
            - ``<NR3>`` specifies a number that represents the pixel value.
            - ``DONTCare`` specifies the pixel value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoPayloadValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue`` command.

    **Description:**
        - This command sets or queries the generic payload value string of the specified MIPI CSI2
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue?

    **Info:**
        - ``<string>`` specifies the generic payload value. The valid characters are 0, 1, and X for
          values in binary format; and A-F, 0-9, and X for values in hexadecimal format.
    """


class SearchSearchItemTriggerABusMipicsitwoPayloadSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe`` command.

    **Description:**
        - This command sets or queries the generic payload size of the specified MIPI CSI2 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe?

    **Info:**
        - ``<NR3>`` specifies a number from 1 to 16 that sets the generic payload size in bytes.
    """


class SearchSearchItemTriggerABusMipicsitwoPayloadFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat`` command.

    **Description:**
        - This command sets or queries the generic payload format for the specified MIPI CSI2 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat?

    **Info:**
        - ``BINary`` specifies the generic payload format as Binary.
        - ``HEXadecimal`` specifies the generic payload format as Hexadecimal.
    """


class SearchSearchItemTriggerABusMipicsitwoPayload(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMipicsitwoPayloadFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._size = SearchSearchItemTriggerABusMipicsitwoPayloadSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusMipicsitwoPayloadValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMipicsitwoPayloadFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat`` command.

        **Description:**
            - This command sets or queries the generic payload format for the specified MIPI CSI2
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat?

        **Info:**
            - ``BINary`` specifies the generic payload format as Binary.
            - ``HEXadecimal`` specifies the generic payload format as Hexadecimal.
        """
        return self._format

    @property
    def size(self) -> SearchSearchItemTriggerABusMipicsitwoPayloadSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe`` command.

        **Description:**
            - This command sets or queries the generic payload size of the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe?

        **Info:**
            - ``<NR3>`` specifies a number from 1 to 16 that sets the generic payload size in bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoPayloadValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue`` command.

        **Description:**
            - This command sets or queries the generic payload value string of the specified MIPI
              CSI2 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue?

        **Info:**
            - ``<string>`` specifies the generic payload value. The valid characters are 0, 1, and X
              for values in binary format; and A-F, 0-9, and X for values in hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoPacketdataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue`` command.

    **Description:**
        - This command sets or queries the value of the packet data string for the specified MIPI
          CSI2 bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue?

    **Info:**
        - ``<string>`` specifies the 16-bit packet data string. The valid characters are 0, 1, and X
          when the format is set to Binary; and 0-9, A-F, and X when the format is set to
          hexadecimal.
    """


class SearchSearchItemTriggerABusMipicsitwoPacketdataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat`` command.

    **Description:**
        - This command sets or queries the format of the packet data for the specified MIPI CSI2 bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat?

    **Info:**
        - ``BINary`` specifies the data packet format as Binary.
        - ``HEXadecimal`` specifies the data packet format as Hexadecimal.
    """


class SearchSearchItemTriggerABusMipicsitwoPacketdata(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusMipicsitwoPacketdataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat`` command.

        **Description:**
            - This command sets or queries the format of the packet data for the specified MIPI CSI2
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat?

        **Info:**
            - ``BINary`` specifies the data packet format as Binary.
            - ``HEXadecimal`` specifies the data packet format as Hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoPacketdataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue`` command.

        **Description:**
            - This command sets or queries the value of the packet data string for the specified
              MIPI CSI2 bus trigger search to determine where to place a mark. <x> is the search
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue?

        **Info:**
            - ``<string>`` specifies the 16-bit packet data string. The valid characters are 0, 1,
              and X when the format is set to Binary; and 0-9, A-F, and X when the format is set to
              hexadecimal.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoOffsetValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue`` command.

    **Description:**
        - This command sets or queries the offset value for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue {<NR3>|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue?

    **Info:**
        - ``<NR3>`` specifies an offset value.
        - ``DONTCare`` specifies the offset value as Don't Care.
    """


class SearchSearchItemTriggerABusMipicsitwoOffset(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMipicsitwoOffsetValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue`` command.

        **Description:**
            - This command sets or queries the offset value for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue?

        **Info:**
            - ``<NR3>`` specifies an offset value.
            - ``DONTCare`` specifies the offset value as Don't Care.
        """
        return self._value


class SearchSearchItemTriggerABusMipicsitwoEscape(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape`` command.

    **Description:**
        - This command sets or queries the Escape command for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape {ANY|LPDATA|RESET|ULTRALP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape?

    **Info:**
        - ``ANY`` specifies the Escape command as Any.
        - ``LPDATA`` specifies the Escape command as Low Power Data Transmission.
        - ``RESET`` specifies the Escape command as Reset.
        - ``ULTRALP`` specifies the Escape command as Ultra Low Power State.
    """


class SearchSearchItemTriggerABusMipicsitwoError(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor`` command.

    **Description:**
        - This command sets or queries the error type for the specified MIPI CSI2 bus trigger search
          to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor {ANY|CHECKsumerror|ECCError}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor?

    **Info:**
        - ``ANY`` specifies the error type as Any.
        - ``CHECKsumerror`` specifies the error type as CHECKsumerror.
        - ``ECCError`` specifies the error type as ECCError.
    """


class SearchSearchItemTriggerABusMipicsitwoDtshort(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort`` command.

    **Description:**
        - This command sets or queries the data type for short packets for the specified MIPI CSI2
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort {ANY|FRAMEEnd|FRAMEStart|GSP1|GSP2|GSP3|GSP4|GSP5| GSP6|GSP7|GSP8|LINEEnd|LINEStart}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort?

    **Info:**
        - ``ANY`` specifies the data type as Any.
        - ``FRAMEEnd`` specifies the data type as Frame End.
        - ``FRAMEStart`` specifies the data type as Frame Start.
        - ``GSP<x>`` specifies the data type as GSP1 to GSP8, where GSP refers to General Short
          Packet. x has a minimum of 1 and a maximum of 8.
        - ``LINEEnd`` specifies the data type as Line End.
        - ``LINEStart`` specifies the data type as Line Start.
    """  # noqa: E501


class SearchSearchItemTriggerABusMipicsitwoDtlong(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong`` command.

    **Description:**
        - This command sets or queries the data type for long packets for the specified MIPI CSI2
          bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong {ANY|BLANK|EMBEDded|NULL|RAW10|RAW12|RAW14|RAW<x>|RGB444|RGB555|RGB565|RGB666|RGB888|USER8B1|USER8B2|USER8B3|USER8B4|USER8B5|USER8B6|USER8B7|USER8B8|YUV420B10|YUV420C10|YUV420B8|YUV420C8|YUV420L8|YUV422B10|YUV422B8}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong?

    **Info:**
        - ``ANY`` specifies the data type as Any.
        - ``BLANK`` specifies the data type as Blank.
        - ``EMBEDded`` specifies the data type as Embedded.
        - ``NULL`` specifies the data type as Null.
        - ``RAW10`` specifies the data type as RAW10.
        - ``RAW12`` specifies the data type as RAW12.
        - ``RAW14`` specifies the data type as RAW14.
        - ``RAW<x>`` specifies the data type as RAW6, RAW7, or RAW8. x has a minimum of 6 and a
          maximum of 8.
        - ``RGB444`` specifies the data type as RGB444.
        - ``RGB555`` specifies the data type as RGB555.
        - ``RGB565`` specifies the data type as RGB565.
        - ``RGB666`` specifies the data type as RGB666.
        - ``RGB888`` specifies the data type as RGB888.
        - ``USER8B<x>`` specifies the data type as User 8-bit 1, User 8-bit 2, User 8-bit 3, User
          8-bit 4, User 8-bit 5, User 8-bit 6, User 8-bit 7, User 8-bit 8. x has a minimum of 1 and
          a maximum of 8.
        - ``YUV420B10`` specifies the data type as YUV420 10-bit.
        - ``YUV420C10`` specifies the data type as YUV420 10-bit (Chroma Shifted Pixel Sampling).
        - ``YUV420B8`` specifies the data type as YUV420 8-bit.
        - ``YUV420C8`` specifies the data type as YUV420 8-bit (Chroma Shifted Pixel Sampling).
        - ``YUV420L8`` specifies the data type as YUV420 8-bit (legacy).
        - ``YUV422B10`` specifies the data type as YUV422 10-bit.
        - ``YUV422B8`` specifies the data type as YUV422 8-bit.
    """  # noqa: E501


class SearchSearchItemTriggerABusMipicsitwoCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for the specified MIPI CSI2 bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition {ESCMode|EOT|ERROR|LONG|SHORT|SOT|STOP|WARNing}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition?

    **Info:**
        - ``ESCMode`` specifies the search condition as Escape Mode.
        - ``EOT`` specifies the search condition as End Of Transmission.
        - ``ERROR`` specifies the search condition as Error.
        - ``LONG`` specifies the search condition as Long Packet.
        - ``SHORT`` specifies the search condition as Short Packet.
        - ``SOT`` specifies the search condition as Start Of Transmission.
        - ``STOP`` specifies the search condition as Stop.
        - ``WARNing`` specifies the search condition as Warning.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusMipicsitwo(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition`` command.
        - ``.dtlong``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong`` command.
        - ``.dtshort``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor`` command.
        - ``.escape``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset`` command tree.
        - ``.packetdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata`` command
          tree.
        - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad`` command tree.
        - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel`` command tree.
        - ``.raw``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW`` command tree.
        - ``.rgb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB`` command tree.
        - ``.vc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC`` command.
        - ``.warning``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing`` command.
        - ``.wc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC`` command tree.
        - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusMipicsitwoCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._dtlong = SearchSearchItemTriggerABusMipicsitwoDtlong(
            device, f"{self._cmd_syntax}:DTLong"
        )
        self._dtshort = SearchSearchItemTriggerABusMipicsitwoDtshort(
            device, f"{self._cmd_syntax}:DTShort"
        )
        self._error = SearchSearchItemTriggerABusMipicsitwoError(
            device, f"{self._cmd_syntax}:ERRor"
        )
        self._escape = SearchSearchItemTriggerABusMipicsitwoEscape(
            device, f"{self._cmd_syntax}:ESCape"
        )
        self._offset = SearchSearchItemTriggerABusMipicsitwoOffset(
            device, f"{self._cmd_syntax}:OFFset"
        )
        self._packetdata = SearchSearchItemTriggerABusMipicsitwoPacketdata(
            device, f"{self._cmd_syntax}:PACKetdata"
        )
        self._payload = SearchSearchItemTriggerABusMipicsitwoPayload(
            device, f"{self._cmd_syntax}:PAYLoad"
        )
        self._pixel = SearchSearchItemTriggerABusMipicsitwoPixel(
            device, f"{self._cmd_syntax}:PIXel"
        )
        self._raw = SearchSearchItemTriggerABusMipicsitwoRaw(device, f"{self._cmd_syntax}:RAW")
        self._rgb = SearchSearchItemTriggerABusMipicsitwoRgb(device, f"{self._cmd_syntax}:RGB")
        self._vc = SearchSearchItemTriggerABusMipicsitwoVc(device, f"{self._cmd_syntax}:VC")
        self._warning = SearchSearchItemTriggerABusMipicsitwoWarning(
            device, f"{self._cmd_syntax}:WARNing"
        )
        self._wc = SearchSearchItemTriggerABusMipicsitwoWc(device, f"{self._cmd_syntax}:WC")
        self._yuv = SearchSearchItemTriggerABusMipicsitwoYuv(device, f"{self._cmd_syntax}:YUV")

    @property
    def condition(self) -> SearchSearchItemTriggerABusMipicsitwoCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition {ESCMode|EOT|ERROR|LONG|SHORT|SOT|STOP|WARNing}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition?

        **Info:**
            - ``ESCMode`` specifies the search condition as Escape Mode.
            - ``EOT`` specifies the search condition as End Of Transmission.
            - ``ERROR`` specifies the search condition as Error.
            - ``LONG`` specifies the search condition as Long Packet.
            - ``SHORT`` specifies the search condition as Short Packet.
            - ``SOT`` specifies the search condition as Start Of Transmission.
            - ``STOP`` specifies the search condition as Stop.
            - ``WARNing`` specifies the search condition as Warning.
        """  # noqa: E501
        return self._condition

    @property
    def dtlong(self) -> SearchSearchItemTriggerABusMipicsitwoDtlong:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong`` command.

        **Description:**
            - This command sets or queries the data type for long packets for the specified MIPI
              CSI2 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong {ANY|BLANK|EMBEDded|NULL|RAW10|RAW12|RAW14|RAW<x>|RGB444|RGB555|RGB565|RGB666|RGB888|USER8B1|USER8B2|USER8B3|USER8B4|USER8B5|USER8B6|USER8B7|USER8B8|YUV420B10|YUV420C10|YUV420B8|YUV420C8|YUV420L8|YUV422B10|YUV422B8}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong?

        **Info:**
            - ``ANY`` specifies the data type as Any.
            - ``BLANK`` specifies the data type as Blank.
            - ``EMBEDded`` specifies the data type as Embedded.
            - ``NULL`` specifies the data type as Null.
            - ``RAW10`` specifies the data type as RAW10.
            - ``RAW12`` specifies the data type as RAW12.
            - ``RAW14`` specifies the data type as RAW14.
            - ``RAW<x>`` specifies the data type as RAW6, RAW7, or RAW8. x has a minimum of 6 and a
              maximum of 8.
            - ``RGB444`` specifies the data type as RGB444.
            - ``RGB555`` specifies the data type as RGB555.
            - ``RGB565`` specifies the data type as RGB565.
            - ``RGB666`` specifies the data type as RGB666.
            - ``RGB888`` specifies the data type as RGB888.
            - ``USER8B<x>`` specifies the data type as User 8-bit 1, User 8-bit 2, User 8-bit 3,
              User 8-bit 4, User 8-bit 5, User 8-bit 6, User 8-bit 7, User 8-bit 8. x has a minimum
              of 1 and a maximum of 8.
            - ``YUV420B10`` specifies the data type as YUV420 10-bit.
            - ``YUV420C10`` specifies the data type as YUV420 10-bit (Chroma Shifted Pixel
              Sampling).
            - ``YUV420B8`` specifies the data type as YUV420 8-bit.
            - ``YUV420C8`` specifies the data type as YUV420 8-bit (Chroma Shifted Pixel Sampling).
            - ``YUV420L8`` specifies the data type as YUV420 8-bit (legacy).
            - ``YUV422B10`` specifies the data type as YUV422 10-bit.
            - ``YUV422B8`` specifies the data type as YUV422 8-bit.
        """  # noqa: E501
        return self._dtlong

    @property
    def dtshort(self) -> SearchSearchItemTriggerABusMipicsitwoDtshort:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort`` command.

        **Description:**
            - This command sets or queries the data type for short packets for the specified MIPI
              CSI2 bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort {ANY|FRAMEEnd|FRAMEStart|GSP1|GSP2|GSP3|GSP4|GSP5| GSP6|GSP7|GSP8|LINEEnd|LINEStart}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort?

        **Info:**
            - ``ANY`` specifies the data type as Any.
            - ``FRAMEEnd`` specifies the data type as Frame End.
            - ``FRAMEStart`` specifies the data type as Frame Start.
            - ``GSP<x>`` specifies the data type as GSP1 to GSP8, where GSP refers to General Short
              Packet. x has a minimum of 1 and a maximum of 8.
            - ``LINEEnd`` specifies the data type as Line End.
            - ``LINEStart`` specifies the data type as Line Start.
        """  # noqa: E501
        return self._dtshort

    @property
    def error(self) -> SearchSearchItemTriggerABusMipicsitwoError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor`` command.

        **Description:**
            - This command sets or queries the error type for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor {ANY|CHECKsumerror|ECCError}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor?

        **Info:**
            - ``ANY`` specifies the error type as Any.
            - ``CHECKsumerror`` specifies the error type as CHECKsumerror.
            - ``ECCError`` specifies the error type as ECCError.
        """
        return self._error

    @property
    def escape(self) -> SearchSearchItemTriggerABusMipicsitwoEscape:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape`` command.

        **Description:**
            - This command sets or queries the Escape command for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape {ANY|LPDATA|RESET|ULTRALP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape?

        **Info:**
            - ``ANY`` specifies the Escape command as Any.
            - ``LPDATA`` specifies the Escape command as Low Power Data Transmission.
            - ``RESET`` specifies the Escape command as Reset.
            - ``ULTRALP`` specifies the Escape command as Ultra Low Power State.
        """
        return self._escape

    @property
    def offset(self) -> SearchSearchItemTriggerABusMipicsitwoOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset:VALue`` command.
        """
        return self._offset

    @property
    def packetdata(self) -> SearchSearchItemTriggerABusMipicsitwoPacketdata:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata:VALue``
              command.
        """
        return self._packetdata

    @property
    def payload(self) -> SearchSearchItemTriggerABusMipicsitwoPayload:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:FORMat`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad:VALue`` command.
        """
        return self._payload

    @property
    def pixel(self) -> SearchSearchItemTriggerABusMipicsitwoPixel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel:VALue`` command.
        """
        return self._pixel

    @property
    def raw(self) -> SearchSearchItemTriggerABusMipicsitwoRaw:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW`` command tree.

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

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:QUAlifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW:VALue`` command.
        """
        return self._raw

    @property
    def rgb(self) -> SearchSearchItemTriggerABusMipicsitwoRgb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB`` command tree.

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

        Sub-properties:
            - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:BLUe`` command tree.
            - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:GREen`` command tree.
            - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB:RED`` command tree.
        """
        return self._rgb

    @property
    def vc(self) -> SearchSearchItemTriggerABusMipicsitwoVc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC`` command.

        **Description:**
            - This command sets or queries the Virtual Channel for the specified MIPI CSI2 bus
              trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC {<NR3>|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC?

        **Info:**
            - ``<NR3>`` specifies a number from 0 to 3 that represents the virtual channel.
            - ``DONTCare`` specifies the virtual channel as Don't Care.
        """
        return self._vc

    @property
    def warning(self) -> SearchSearchItemTriggerABusMipicsitwoWarning:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing`` command.

        **Description:**
            - This command sets or queries the warning type for the specified MIPI CSI2 bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing {ANY|ECCWarn}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing?

        **Info:**
            - ``ANY`` specifies the warning type as Any.
            - ``ECCWarn`` specifies the warning type as ECC Warning.
        """
        return self._warning

    @property
    def wc(self) -> SearchSearchItemTriggerABusMipicsitwoWc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC:VALue`` command.
        """
        return self._wc

    @property
    def yuv(self) -> SearchSearchItemTriggerABusMipicsitwoYuv:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV`` command tree.

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

        Sub-properties:
            - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:U`` command tree.
            - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:V`` command tree.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV:Y`` command tree.
        """
        return self._yuv


class SearchSearchItemTriggerABusMil1553bTimeQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to use when triggering on either the remote terminal
          response time (RT) or the inter-message gap (IMG). The search condition must be set to
          TIMe,

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier?

    **Info:**
        - ``LESSthan`` sets the Time qualifier to less than minimum.
        - ``MOREthan`` sets the Time qualifier to greater than maximum.
        - ``INrange`` sets the Time qualifier to inside range.
        - ``OUTrange`` sets the Time qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bTimeMorelimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit`` command.

    **Description:**
        - This command specifies either the maximum remote terminal response time (RT) limit, in
          seconds, for the amount of time the terminal has to transmit, or it specifies the maximum
          inter-message gap (IMG). The search condition must be set to TIMe,

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies either the maximum remote terminal
          response time (RT) or the inter-message gap (IMG) in seconds.
    """


class SearchSearchItemTriggerABusMil1553bTimeLesslimit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit`` command.

    **Description:**
        - This command specifies either the minimum remote terminal response time (RT) limit, in
          seconds, for the amount of time the terminal has to transmit, or else it specifies the
          minimum inter-message gap (IMG). The search condition must be set to TIMe

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit?

    **Info:**
        - ``<NR3>`` is a floating point number that specifies either the minimum remote terminal
          response time (RT) or the inter-message gap (IMG) in seconds.
    """


class SearchSearchItemTriggerABusMil1553bTime(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME`` command tree.

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

    Properties:
        - ``.lesslimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit`` command.
        - ``.morelimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._lesslimit = SearchSearchItemTriggerABusMil1553bTimeLesslimit(
            device, f"{self._cmd_syntax}:LESSLimit"
        )
        self._morelimit = SearchSearchItemTriggerABusMil1553bTimeMorelimit(
            device, f"{self._cmd_syntax}:MORELimit"
        )
        self._qualifier = SearchSearchItemTriggerABusMil1553bTimeQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )

    @property
    def lesslimit(self) -> SearchSearchItemTriggerABusMil1553bTimeLesslimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit`` command.

        **Description:**
            - This command specifies either the minimum remote terminal response time (RT) limit, in
              seconds, for the amount of time the terminal has to transmit, or else it specifies the
              minimum inter-message gap (IMG). The search condition must be set to TIMe

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies either the minimum remote terminal
              response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._lesslimit

    @property
    def morelimit(self) -> SearchSearchItemTriggerABusMil1553bTimeMorelimit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit`` command.

        **Description:**
            - This command specifies either the maximum remote terminal response time (RT) limit, in
              seconds, for the amount of time the terminal has to transmit, or it specifies the
              maximum inter-message gap (IMG). The search condition must be set to TIMe,

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit?

        **Info:**
            - ``<NR3>`` is a floating point number that specifies either the maximum remote terminal
              response time (RT) or the inter-message gap (IMG) in seconds.
        """
        return self._morelimit

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMil1553bTimeQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to use when triggering on either the remote
              terminal response time (RT) or the inter-message gap (IMG). The search condition must
              be set to TIMe,

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier {LESSthan|MOREthan|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier?

        **Info:**
            - ``LESSthan`` sets the Time qualifier to less than minimum.
            - ``MOREthan`` sets the Time qualifier to greater than maximum.
            - ``INrange`` sets the Time qualifier to inside range.
            - ``OUTrange`` sets the Time qualifier to out of range.
        """  # noqa: E501
        return self._qualifier


class SearchSearchItemTriggerABusMil1553bStatusBitTf(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF`` command.

    **Description:**
        - This command specifies the status word terminal flag bit value (bit 19) to use when
          searching on the MIL-STD-1553 status bit field. The default is all X's (don't care). The
          search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitSubsf(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF`` command.

    **Description:**
        - This command specifies the status word subsystem flag bit value (bit 17) to use when
          searching on the MIL-STD-1553 status bit field. The default is all X's (don't care). The
          search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitSrq(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ`` command.

    **Description:**
        - This command specifies the status word service request (SRQ) bit value (bit 11) to use
          when searching on the MIL-STD-1553 status bit field. The default is all X's (don't care).
          The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitParity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity`` command.

    **Description:**
        - This command specifies the parity to use when searching on the MIL-STD-1553 status bit
          field. The default is all X's (don't care). The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity {0|1|X|ZERo|ONE|NOCARE|DONTCare|ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bStatusBitMe(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME`` command.

    **Description:**
        - This command specifies the status word message error bit value (bit 9) to use when
          searching on the MIL-STD-1553 status bit field. The default is all X's (don't care). The
          search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitInstr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR`` command.

    **Description:**
        - This command specifies the status word instrumentation bit value (bit 10) to use when
          searching on the MIL-STD-1553 status bit field. The default is all X's (don't care). The
          search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitDbca(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA`` command.

    **Description:**
        - This command specifies the status word dynamic bus control acceptance (DBCA) bit value
          (bit 18) to use when searching on the MIL-STD-1553 status bit field. The default is all
          X's (don't care). The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitBusy(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY`` command.

    **Description:**
        - This command specifies the status word busy bit value (bit 16) to use when searching on
          the MIL-STD-1553 status bit field. The default is all X's (don't care). The search
          condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitBcr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR`` command.

    **Description:**
        - This command specifies the status word broadcast command received (BCR) bit value (bit 15)
          to use when searching on the MIL-STD-1553 status bit field. The default is all X's (don't
          care). The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR?

    **Info:**
        - ``0, ZERO`` sets the value to 0.
        - ``1, ONE`` sets the value to 1.
        - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusMil1553bStatusBit(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.bcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR`` command.
        - ``.busy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY`` command.
        - ``.dbca``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA`` command.
        - ``.instr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR`` command.
        - ``.me``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME`` command.
        - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity`` command.
        - ``.srq``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ`` command.
        - ``.subsf``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF`` command.
        - ``.tf``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._bcr = SearchSearchItemTriggerABusMil1553bStatusBitBcr(
            device, f"{self._cmd_syntax}:BCR"
        )
        self._busy = SearchSearchItemTriggerABusMil1553bStatusBitBusy(
            device, f"{self._cmd_syntax}:BUSY"
        )
        self._dbca = SearchSearchItemTriggerABusMil1553bStatusBitDbca(
            device, f"{self._cmd_syntax}:DBCA"
        )
        self._instr = SearchSearchItemTriggerABusMil1553bStatusBitInstr(
            device, f"{self._cmd_syntax}:INSTR"
        )
        self._me = SearchSearchItemTriggerABusMil1553bStatusBitMe(device, f"{self._cmd_syntax}:ME")
        self._parity = SearchSearchItemTriggerABusMil1553bStatusBitParity(
            device, f"{self._cmd_syntax}:PARity"
        )
        self._srq = SearchSearchItemTriggerABusMil1553bStatusBitSrq(
            device, f"{self._cmd_syntax}:SRQ"
        )
        self._subsf = SearchSearchItemTriggerABusMil1553bStatusBitSubsf(
            device, f"{self._cmd_syntax}:SUBSF"
        )
        self._tf = SearchSearchItemTriggerABusMil1553bStatusBitTf(device, f"{self._cmd_syntax}:TF")

    @property
    def bcr(self) -> SearchSearchItemTriggerABusMil1553bStatusBitBcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR`` command.

        **Description:**
            - This command specifies the status word broadcast command received (BCR) bit value (bit
              15) to use when searching on the MIL-STD-1553 status bit field. The default is all X's
              (don't care). The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._bcr

    @property
    def busy(self) -> SearchSearchItemTriggerABusMil1553bStatusBitBusy:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY`` command.

        **Description:**
            - This command specifies the status word busy bit value (bit 16) to use when searching
              on the MIL-STD-1553 status bit field. The default is all X's (don't care). The search
              condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._busy

    @property
    def dbca(self) -> SearchSearchItemTriggerABusMil1553bStatusBitDbca:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA`` command.

        **Description:**
            - This command specifies the status word dynamic bus control acceptance (DBCA) bit value
              (bit 18) to use when searching on the MIL-STD-1553 status bit field. The default is
              all X's (don't care). The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._dbca

    @property
    def instr(self) -> SearchSearchItemTriggerABusMil1553bStatusBitInstr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR`` command.

        **Description:**
            - This command specifies the status word instrumentation bit value (bit 10) to use when
              searching on the MIL-STD-1553 status bit field. The default is all X's (don't care).
              The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """  # noqa: E501
        return self._instr

    @property
    def me(self) -> SearchSearchItemTriggerABusMil1553bStatusBitMe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME`` command.

        **Description:**
            - This command specifies the status word message error bit value (bit 9) to use when
              searching on the MIL-STD-1553 status bit field. The default is all X's (don't care).
              The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._me

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bStatusBitParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity`` command.

        **Description:**
            - This command specifies the parity to use when searching on the MIL-STD-1553 status bit
              field. The default is all X's (don't care). The search condition must be set to
              STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity {0|1|X|ZERo|ONE|NOCARE|DONTCare|ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """  # noqa: E501
        return self._parity

    @property
    def srq(self) -> SearchSearchItemTriggerABusMil1553bStatusBitSrq:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ`` command.

        **Description:**
            - This command specifies the status word service request (SRQ) bit value (bit 11) to use
              when searching on the MIL-STD-1553 status bit field. The default is all X's (don't
              care). The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._srq

    @property
    def subsf(self) -> SearchSearchItemTriggerABusMil1553bStatusBitSubsf:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF`` command.

        **Description:**
            - This command specifies the status word subsystem flag bit value (bit 17) to use when
              searching on the MIL-STD-1553 status bit field. The default is all X's (don't care).
              The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """  # noqa: E501
        return self._subsf

    @property
    def tf(self) -> SearchSearchItemTriggerABusMil1553bStatusBitTf:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF`` command.

        **Description:**
            - This command specifies the status word terminal flag bit value (bit 19) to use when
              searching on the MIL-STD-1553 status bit field. The default is all X's (don't care).
              The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF?

        **Info:**
            - ``0, ZERO`` sets the value to 0.
            - ``1, ONE`` sets the value to 1.
            - ``X, NOCARE, DONTCare`` sets the value to X ('don't care'), which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._tf


class SearchSearchItemTriggerABusMil1553bStatusAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the value of the 5-bit remote terminal address to use when
          searching on the MIL-STD-1553 status address field. The default is all X's (don't care).
          The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue?
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMil1553bStatusAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to use when searching on the MIL-STD-1553 status
          address field. The default is EQUAL. The search condition must be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier?

    **Info:**
        - ``LESSthan`` sets the Status Address qualifier to less than.
        - ``MOREthan`` sets the Status Address qualifier to greater than.
        - ``EQual`` sets the Status Address qualifier to equal.
        - ``UNEQual`` sets the Status Address qualifier to not equal.
        - ``LESSEQual`` sets the Status Address qualifier to less than or equal.
        - ``MOREEQual`` sets the Status Address qualifier to greater than or equal.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bStatusAddressFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the MIL-STD-1553 status address field. The search condition needs to be set to STATUS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusMil1553bStatusAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat``
          command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMil1553bStatusAddressFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusMil1553bStatusAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusMil1553bStatusAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMil1553bStatusAddressFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the MIL-STD-1553 status address field. The search condition needs to be
              set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMil1553bStatusAddressQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to use when searching on the MIL-STD-1553 status
              address field. The default is EQUAL. The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier?

        **Info:**
            - ``LESSthan`` sets the Status Address qualifier to less than.
            - ``MOREthan`` sets the Status Address qualifier to greater than.
            - ``EQual`` sets the Status Address qualifier to equal.
            - ``UNEQual`` sets the Status Address qualifier to not equal.
            - ``LESSEQual`` sets the Status Address qualifier to less than or equal.
            - ``MOREEQual`` sets the Status Address qualifier to greater than or equal.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMil1553bStatusAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the value of the 5-bit remote terminal address to use when
              searching on the MIL-STD-1553 status address field. The default is all X's (don't
              care). The search condition must be set to STATUS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue?
        """
        return self._value


class SearchSearchItemTriggerABusMil1553bStatus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess`` command tree.
        - ``.bit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusMil1553bStatusAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._bit = SearchSearchItemTriggerABusMil1553bStatusBit(device, f"{self._cmd_syntax}:BIT")

    @property
    def address(self) -> SearchSearchItemTriggerABusMil1553bStatusAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:FORMat``
              command.
            - ``.qualifier``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:QUALifier`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess:VALue``
              command.
        """
        return self._address

    @property
    def bit(self) -> SearchSearchItemTriggerABusMil1553bStatusBit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.bcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BCR`` command.
            - ``.busy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:BUSY`` command.
            - ``.dbca``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:DBCA`` command.
            - ``.instr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:INSTR`` command.
            - ``.me``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:ME`` command.
            - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:PARity``
              command.
            - ``.srq``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SRQ`` command.
            - ``.subsf``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:SUBSF`` command.
            - ``.tf``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT:TF`` command.
        """
        return self._bit


class SearchSearchItemTriggerABusMil1553bErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE`` command.

    **Description:**
        - This command specifies the signaling error type to use for a MIL-STD-1553 bus data word
          search: Parity, Sync, Manchester, or Data. The search condition must be set to ERRor.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE {PARity|SYNC|MANCHester|DATA}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE?
    """


class SearchSearchItemTriggerABusMil1553bDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue`` command.

    **Description:**
        - This command specifies the value to use for a MIL-STD-1553 bus data word search. This is a
          16-bit field. The default is all X's (don't care). The search condition must be set to
          DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue?
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMil1553bDataParity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity`` command.

    **Description:**
        - This command specifies the parity to use when searching on a MIL-STD-1553 bus data word
          parity bit. The search condition must be set to DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity?

    **Info:**
        - ``0``
        - ``1``
        - ``X`` sets the value to X ('don't care') which is the default.
        - ``ZERO`` sets the value to 0.
        - ``ONE`` sets the value to 1.
        - ``NOCARE`` sets the value to X ('don't care') which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use for a
          MIL-STD-1553 bus data word search. The search condition needs to be set to DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusMil1553bData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat`` command.
        - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMil1553bDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._parity = SearchSearchItemTriggerABusMil1553bDataParity(
            device, f"{self._cmd_syntax}:PARity"
        )
        self._value = SearchSearchItemTriggerABusMil1553bDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMil1553bDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use for a
              MIL-STD-1553 bus data word search. The search condition needs to be set to DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bDataParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity`` command.

        **Description:**
            - This command specifies the parity to use when searching on a MIL-STD-1553 bus data
              word parity bit. The search condition must be set to DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity?

        **Info:**
            - ``0``
            - ``1``
            - ``X`` sets the value to X ('don't care') which is the default.
            - ``ZERO`` sets the value to 0.
            - ``ONE`` sets the value to 1.
            - ``NOCARE`` sets the value to X ('don't care') which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._parity

    @property
    def value(self) -> SearchSearchItemTriggerABusMil1553bDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue`` command.

        **Description:**
            - This command specifies the value to use for a MIL-STD-1553 bus data word search. This
              is a 16-bit field. The default is all X's (don't care). The search condition must be
              set to DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue?
        """
        return self._value


class SearchSearchItemTriggerABusMil1553bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition`` command.

    **Description:**
        - This command specifies which word type or condition within a MIL-STD-1553 bus word to
          search on.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA|TIMe|ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?

    **Info:**
        - ``SYNC`` refers to the 3-bit sync pulse that precedes each word.
        - ``COMMAND`` is one of 3 16-bit word types. It specifies the function that a remote
          terminal is to perform.
        - ``STATus`` is one of 3 16-bit word types. Remote terminals respond to valid message
          transmissions via status words.
        - ``DATA`` is one of 3 16-bit word types.
        - ``TIMe`` specifies to search for either the RT (remote terminal response time), or the IMG
          (Inter-message Gap). Use the commands
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:QUALIFIER``,
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:LESSLIMIT``, and
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:MORELIMIT`` to specify the time parameters.
        - ``ERRor`` specifies to search for a signaling error. (You can specify which type of error
          - Parity, Sync, Manchester or Non-contiguous Data - by using the command
          ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:ERRTYPE``.).
    """


class SearchSearchItemTriggerABusMil1553bCommandTrbit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.

    **Description:**
        - This command specifies to search on either a 'transmit' or a 'receive' signal for the
          transmit/receive bit (bit 9), for a MIL-STD-1553 bus command word search. The search
          condition needs to be set to COMMAND.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit {RX|TX|X|DONTCare}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?

    **Info:**
        - ``TX`` (logic 1) directs the instrument to search for a TX or 'transmit' from a remote
          terminal .
        - ``RX`` (logic 0) directs the instrument to search for an RX or 'receive' from a remote
          terminal.
        - ``X, DONTCare`` indicates 'don't care'.
    """


class SearchSearchItemTriggerABusMil1553bCommandSubaddressFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat`` command.

    **Description:**
        - This command specifies the data format (binary or hex) of the sub-address field bit
          pattern to use in a MIL-STD-1553 bus command word sub-address search. The search condition
          needs to be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusMil1553bCommandSubaddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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 search on. The search number is specified by x. The search condition
          must be set to COMMAND.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress?

    **Info:**
        - ``<QString>`` is the word count value.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat``
          command.
    """

    _WRAP_ARG_WITH_QUOTES = True

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

    @property
    def format(self) -> SearchSearchItemTriggerABusMil1553bCommandSubaddressFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat`` command.

        **Description:**
            - This command specifies the data format (binary or hex) of the sub-address field bit
              pattern to use in a MIL-STD-1553 bus command word sub-address search. The search
              condition needs to be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format


class SearchSearchItemTriggerABusMil1553bCommandParity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.

    **Description:**
        - This command specifies the parity to use in a MIL-STD-1553 bus command word search. The
          search condition needs to be set to COMMAND.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity?

    **Info:**
        - ``0``
        - ``1``
        - ``X`` sets the value to X ('don't care') which is the default.
        - ``ZERO`` sets the value to 0.
        - ``ONE`` sets the value to 1.
        - ``NOCARE`` sets the value to X ('don't care') which is the default.
        - ``OFF`` sets the value to 0.
        - ``ON`` sets the value to 1.
    """


class SearchSearchItemTriggerABusMil1553bCommandCountFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat`` command.

    **Description:**
        - This command specifies the data format (binary or hex) of the bit pattern for the 5-bit
          Word Count/Mode Code field to use in a MIL-STD-1553 bus command word search. The search
          condition needs to be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusMil1553bCommandCount(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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 search on. The search number is specified by x. The search condition
          must be set to COMMAND.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt?

    **Info:**
        - ``<QString>`` is the word count value.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat`` command.
    """

    _WRAP_ARG_WITH_QUOTES = True

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

    @property
    def format(self) -> SearchSearchItemTriggerABusMil1553bCommandCountFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat`` command.

        **Description:**
            - This command specifies the data format (binary or hex) of the bit pattern for the
              5-bit Word Count/Mode Code field to use in a MIL-STD-1553 bus command word search. The
              search condition needs to be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format


class SearchSearchItemTriggerABusMil1553bCommandAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when searching on command word addresses for a
          MIL-STD-1553 bus. The search number is specified by x. The search condition must be set to
          COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMil1553bCommandAddressQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to use when searching on a MIL-STD-1553 bus command
          word remote terminal address field. The search condition needs to be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier {LESSthan|MOREthan|EQual |UNEQual|LESSEQual|MOREEQual}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?

    **Info:**
        - ``LESSthan`` sets the Command Address qualifier to less than.
        - ``MOREthan`` sets the Command Address qualifier to greater than.
        - ``EQual`` sets the Command Address qualifier to equal.
        - ``UNEQual`` sets the Command Address qualifier to not equal.
        - ``LESSEQual`` sets the Command Address qualifier to less than or equal.
        - ``MOREEQual`` sets the Command Address qualifier to greater than or equal.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bCommandAddressFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat`` command.

    **Description:**
        - This command sets the data format of the address (either binary or hex) to use in a
          MIL-STD-1553 bus command word search. The search condition needs to be set to COMMAND.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusMil1553bCommandAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat``
          command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusMil1553bCommandAddressFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusMil1553bCommandAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusMil1553bCommandAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusMil1553bCommandAddressFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat`` command.

        **Description:**
            - This command sets the data format of the address (either binary or hex) to use in a
              MIL-STD-1553 bus command word search. The search condition needs to be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMil1553bCommandAddressQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to use when searching on a MIL-STD-1553 bus
              command word remote terminal address field. The search condition needs to be set to
              COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier {LESSthan|MOREthan|EQual |UNEQual|LESSEQual|MOREEQual}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?

        **Info:**
            - ``LESSthan`` sets the Command Address qualifier to less than.
            - ``MOREthan`` sets the Command Address qualifier to greater than.
            - ``EQual`` sets the Command Address qualifier to equal.
            - ``UNEQual`` sets the Command Address qualifier to not equal.
            - ``LESSEQual`` sets the Command Address qualifier to less than or equal.
            - ``MOREEQual`` sets the Command Address qualifier to greater than or equal.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusMil1553bCommandAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the low value when searching on command word addresses
              for a MIL-STD-1553 bus. The search number is specified by x. The search condition must
              be set to COMMAND.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._value


class SearchSearchItemTriggerABusMil1553bCommand(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess`` command
          tree.
        - ``.count``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt`` command.
        - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.
        - ``.subaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress``
          command.
        - ``.trbit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusMil1553bCommandAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._count = SearchSearchItemTriggerABusMil1553bCommandCount(
            device, f"{self._cmd_syntax}:COUNt"
        )
        self._parity = SearchSearchItemTriggerABusMil1553bCommandParity(
            device, f"{self._cmd_syntax}:PARity"
        )
        self._subaddress = SearchSearchItemTriggerABusMil1553bCommandSubaddress(
            device, f"{self._cmd_syntax}:SUBADdress"
        )
        self._trbit = SearchSearchItemTriggerABusMil1553bCommandTrbit(
            device, f"{self._cmd_syntax}:TRBit"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusMil1553bCommandAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:FORMat``
              command.
            - ``.qualifier``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:VALue``
              command.
        """
        return self._address

    @property
    def count(self) -> SearchSearchItemTriggerABusMil1553bCommandCount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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 search on. The search number is specified by x. The search
              condition must be set to COMMAND.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt?

        **Info:**
            - ``<QString>`` is the word count value.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt:FORMat``
              command.
        """
        return self._count

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bCommandParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.

        **Description:**
            - This command specifies the parity to use in a MIL-STD-1553 bus command word search.
              The search condition needs to be set to COMMAND.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity {0|1|X|ZERo|ONE|NOCARE|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity?

        **Info:**
            - ``0``
            - ``1``
            - ``X`` sets the value to X ('don't care') which is the default.
            - ``ZERO`` sets the value to 0.
            - ``ONE`` sets the value to 1.
            - ``NOCARE`` sets the value to X ('don't care') which is the default.
            - ``OFF`` sets the value to 0.
            - ``ON`` sets the value to 1.
        """
        return self._parity

    @property
    def subaddress(self) -> SearchSearchItemTriggerABusMil1553bCommandSubaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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 search on. The search number is specified by x. The search
              condition must be set to COMMAND.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress?

        **Info:**
            - ``<QString>`` is the word count value.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress:FORMat``
              command.
        """
        return self._subaddress

    @property
    def trbit(self) -> SearchSearchItemTriggerABusMil1553bCommandTrbit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.

        **Description:**
            - This command specifies to search on either a 'transmit' or a 'receive' signal for the
              transmit/receive bit (bit 9), for a MIL-STD-1553 bus command word search. The search
              condition needs to be set to COMMAND.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit {RX|TX|X|DONTCare}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?

        **Info:**
            - ``TX`` (logic 1) directs the instrument to search for a TX or 'transmit' from a remote
              terminal .
            - ``RX`` (logic 0) directs the instrument to search for an RX or 'receive' from a remote
              terminal.
            - ``X, DONTCare`` indicates 'don't care'.
        """
        return self._trbit


class SearchSearchItemTriggerABusMil1553b(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.

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

    Properties:
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE`` command.
        - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS`` command tree.
        - ``.time``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = SearchSearchItemTriggerABusMil1553bCommand(
            device, f"{self._cmd_syntax}:COMMAND"
        )
        self._condition = SearchSearchItemTriggerABusMil1553bCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusMil1553bData(device, f"{self._cmd_syntax}:DATA")
        self._errtype = SearchSearchItemTriggerABusMil1553bErrtype(
            device, f"{self._cmd_syntax}:ERRTYPE"
        )
        self._status = SearchSearchItemTriggerABusMil1553bStatus(
            device, f"{self._cmd_syntax}:STATUS"
        )
        self._time = SearchSearchItemTriggerABusMil1553bTime(device, f"{self._cmd_syntax}:TIME")

    @property
    def command(self) -> SearchSearchItemTriggerABusMil1553bCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess`` command
              tree.
            - ``.count``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:COUNt`` command.
            - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.
            - ``.subaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:SUBADdress``
              command.
            - ``.trbit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.
        """
        return self._command

    @property
    def condition(self) -> SearchSearchItemTriggerABusMil1553bCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition`` command.

        **Description:**
            - This command specifies which word type or condition within a MIL-STD-1553 bus word to
              search on.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA|TIMe|ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?

        **Info:**
            - ``SYNC`` refers to the 3-bit sync pulse that precedes each word.
            - ``COMMAND`` is one of 3 16-bit word types. It specifies the function that a remote
              terminal is to perform.
            - ``STATus`` is one of 3 16-bit word types. Remote terminals respond to valid message
              transmissions via status words.
            - ``DATA`` is one of 3 16-bit word types.
            - ``TIMe`` specifies to search for either the RT (remote terminal response time), or the
              IMG (Inter-message Gap). Use the commands
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:QUALIFIER``,
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:LESSLIMIT``, and
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:TIME:MORELIMIT`` to specify the time
              parameters.
            - ``ERRor`` specifies to search for a signaling error. (You can specify which type of
              error - Parity, Sync, Manchester or Non-contiguous Data - by using the command
              ``SEARCH:SEARCHX:TRIGGER:A:BUS:MIL1553B:ERRTYPE``.).
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusMil1553bData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:FORMat`` command.
            - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:PARity`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> SearchSearchItemTriggerABusMil1553bErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE`` command.

        **Description:**
            - This command specifies the signaling error type to use for a MIL-STD-1553 bus data
              word search: Parity, Sync, Manchester, or Data. The search condition must be set to
              ERRor.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE {PARity|SYNC|MANCHester|DATA}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE?
        """
        return self._errtype

    @property
    def status(self) -> SearchSearchItemTriggerABusMil1553bStatus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:ADDRess`` command
              tree.
            - ``.bit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS:BIT`` command tree.
        """
        return self._status

    @property
    def time(self) -> SearchSearchItemTriggerABusMil1553bTime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME`` command tree.

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

        Sub-properties:
            - ``.lesslimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:LESSLimit``
              command.
            - ``.morelimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:MORELimit``
              command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME:QUALifier``
              command.
        """
        return self._time


class SearchSearchItemTriggerABusLinIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the LIN bus search identifier value. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?

    **Info:**
        - ``<string>`` specifies the identifier value.
    """


class SearchSearchItemTriggerABusLinIdentifierFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger identifier format. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat?

    **Info:**
        - ``BINary`` specifies the identifier format as binary.
        - ``HEX`` specifies the identifier format as hexadecimal.
    """


class SearchSearchItemTriggerABusLinIdentifier(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusLinIdentifierFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger identifier format. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat?

        **Info:**
            - ``BINary`` specifies the identifier format as binary.
            - ``HEX`` specifies the identifier format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusLinIdentifierValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the LIN bus search identifier value. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?

        **Info:**
            - ``<string>`` specifies the identifier value.
        """
        return self._value


class SearchSearchItemTriggerABusLinErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE`` command.

    **Description:**
        - This command sets or queries the error type for a LIN bus search. The search number is
          specified by x. The search condition must be set to ERROR.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE {CHecksum|PARity|SYNC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE?

    **Info:**
        - ``CHecksum`` specifies the error type is checksum.
        - ``PARity`` specifies the error type is parity.
        - ``SYNC`` specifies the error type is sync.
    """


class SearchSearchItemTriggerABusLinDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger data value. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the data value.
    """


class SearchSearchItemTriggerABusLinDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger data size in bytes. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe <nr3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?

    **Info:**
        - ``<nr3>`` specifies the data size.
    """


class SearchSearchItemTriggerABusLinDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger data qualifier. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?
    """  # noqa: E501


class SearchSearchItemTriggerABusLinDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger data format. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusLinData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusLinDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusLinDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = SearchSearchItemTriggerABusLinDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusLinDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def format(self) -> SearchSearchItemTriggerABusLinDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger data format. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusLinDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger data qualifier. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> SearchSearchItemTriggerABusLinDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger data size in bytes. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe <nr3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?

        **Info:**
            - ``<nr3>`` specifies the data size.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusLinDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger data value. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the data value.
        """
        return self._value


class SearchSearchItemTriggerABusLinCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition`` command.

    **Description:**
        - This command sets or queries the LIN bus search trigger condition. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition {DATA|IDANDDATA|ERROR|IDentifier|SLEEP|SYNC|WAKEup}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?
    """  # noqa: E501


class SearchSearchItemTriggerABusLin(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE`` command.
        - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusLinCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusLinData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = SearchSearchItemTriggerABusLinErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._identifier = SearchSearchItemTriggerABusLinIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusLinCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition`` command.

        **Description:**
            - This command sets or queries the LIN bus search trigger condition. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition {DATA|IDANDDATA|ERROR|IDentifier|SLEEP|SYNC|WAKEup}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusLinData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:FORMat`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> SearchSearchItemTriggerABusLinErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE`` command.

        **Description:**
            - This command sets or queries the error type for a LIN bus search. The search number is
              specified by x. The search condition must be set to ERROR.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE {CHecksum|PARity|SYNC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE?

        **Info:**
            - ``CHecksum`` specifies the error type is checksum.
            - ``PARity`` specifies the error type is parity.
            - ``SYNC`` specifies the error type is sync.
        """
        return self._errtype

    @property
    def identifier(self) -> SearchSearchItemTriggerABusLinIdentifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.
        """
        return self._identifier


class SearchSearchItemTriggerABusI2cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data value of the data token for the specified I2C bus
          trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?

    **Info:**
        - ``<string>`` specifies the data value. The valid characters are 0, 1, or X for binary
          format; and A-F, 0-9, and X for hexadecimal format.
    """


class SearchSearchItemTriggerABusI2cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes used for the specified
          I2C bus trigger search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the data size in bytes.
    """


class SearchSearchItemTriggerABusI2cDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the trigger data format for the specified I2C bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the trigger data format as Binary.
        - ``HEX`` specifies the trigger data format as Hexadecimal.
    """


class SearchSearchItemTriggerABusI2cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection`` command.

    **Description:**
        - This command sets or queries the direction of the data for the I2C bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection {DONTCare|READ|WRITE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?

    **Info:**
        - ``DONTCare`` specifies the direction of data as Don't Care.
        - ``READ`` specifies the direction of data as Read.
        - ``WRITE`` specifies the direction of data as Write.
    """


class SearchSearchItemTriggerABusI2cData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa`` command tree.

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

    Properties:
        - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection`` command.
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = SearchSearchItemTriggerABusI2cDataDirection(
            device, f"{self._cmd_syntax}:DIRection"
        )
        self._format = SearchSearchItemTriggerABusI2cDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._size = SearchSearchItemTriggerABusI2cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusI2cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> SearchSearchItemTriggerABusI2cDataDirection:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection`` command.

        **Description:**
            - This command sets or queries the direction of the data for the I2C bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection {DONTCare|READ|WRITE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?

        **Info:**
            - ``DONTCare`` specifies the direction of data as Don't Care.
            - ``READ`` specifies the direction of data as Read.
            - ``WRITE`` specifies the direction of data as Write.
        """
        return self._direction

    @property
    def format(self) -> SearchSearchItemTriggerABusI2cDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the trigger data format for the specified I2C bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the trigger data format as Binary.
            - ``HEX`` specifies the trigger data format as Hexadecimal.
        """
        return self._format

    @property
    def size(self) -> SearchSearchItemTriggerABusI2cDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes used for the
              specified I2C bus trigger search to determine where to place a mark. <x> is the search
              number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the data size in bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusI2cDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data value of the data token for the specified I2C
              bus trigger search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?

        **Info:**
            - ``<string>`` specifies the data value. The valid characters are 0, 1, or X for binary
              format; and A-F, 0-9, and X for hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI2cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified I2C bus trigger
          search to determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition {ADDress|ADDRANDDATA|DATa|ACKMISS|REPEATstart|STARt|STOP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition?

    **Info:**
        - ``ADDress`` specifies the trigger condition as Address.
        - ``ADDRANDDATA`` specifies the trigger condition as Address and Data.
        - ``DATa`` specifies the trigger condition as Data.
        - ``ACKMISS`` specifies the trigger condition as Missing of Acknowledgement.
        - ``REPEATstart`` specifies the trigger condition as Repeat of Start.
        - ``STARt`` specifies the trigger condition as Start.
        - ``STOP`` specifies the trigger condition as Stop.
    """  # noqa: E501


class SearchSearchItemTriggerABusI2cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue`` command.

    **Description:**
        - This command sets or queries the address string when the search condition for the
          specified search is Address or AddressData.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue?

    **Info:**
        - ``<string>`` specifies the address value. This is either a 7-bit or 10-bit value depending
          on the address mode. The valid characters are 0-9, A-F, and X for addresses in hexadecimal
          format; and 0, 1, and X otherwise.
    """


class SearchSearchItemTriggerABusI2cAddressType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe`` command.

    **Description:**
        - This command sets or queries the address type for the specified I2C bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe {CBUS|EEPROm|GENeralcall|HSMODe|NONe|STARtbyte}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe?

    **Info:**
        - ``CBUS`` specifies the address type as CBUS.
        - ``EEPROm`` specifies the address type as EEPROM.
        - ``GENeralcall`` specifies the address type as General Call.
        - ``HSMODe`` specifies the address type as High Speed Mode.
        - ``NONe`` specifies the address type as None.
        - ``STARtbyte`` specifies the address type as Start Byte.
    """  # noqa: E501


class SearchSearchItemTriggerABusI2cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe`` command.

    **Description:**
        - This command sets or queries the address mode for the specified I2C bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe {ADDR10|ADDR7}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe?

    **Info:**
        - ``ADDR10`` specifies the address mode as ADDR10.
        - ``ADDR7`` specifies the address mode as ADDR7.
    """


class SearchSearchItemTriggerABusI2cAddressFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat`` command.

    **Description:**
        - This command sets or queries the address format for the I2C bus trigger search to
          determine where to place a mark. <x> is the search number.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat {BINary|HEXadecimal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat?

    **Info:**
        - ``BINary`` specifies the address format as Binary.
        - ``HEXadecimal`` specifies the address format as Hexadecimal.
    """


class SearchSearchItemTriggerABusI2cAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat`` command.
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusI2cAddressFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._mode = SearchSearchItemTriggerABusI2cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._type = SearchSearchItemTriggerABusI2cAddressType(device, f"{self._cmd_syntax}:TYPe")
        self._value = SearchSearchItemTriggerABusI2cAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusI2cAddressFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat`` command.

        **Description:**
            - This command sets or queries the address format for the I2C bus trigger search to
              determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat {BINary|HEXadecimal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat?

        **Info:**
            - ``BINary`` specifies the address format as Binary.
            - ``HEXadecimal`` specifies the address format as Hexadecimal.
        """
        return self._format

    @property
    def mode(self) -> SearchSearchItemTriggerABusI2cAddressMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe`` command.

        **Description:**
            - This command sets or queries the address mode for the specified I2C bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe {ADDR10|ADDR7}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe?

        **Info:**
            - ``ADDR10`` specifies the address mode as ADDR10.
            - ``ADDR7`` specifies the address mode as ADDR7.
        """
        return self._mode

    @property
    def type(self) -> SearchSearchItemTriggerABusI2cAddressType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe`` command.

        **Description:**
            - This command sets or queries the address type for the specified I2C bus trigger search
              to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe {CBUS|EEPROm|GENeralcall|HSMODe|NONe|STARtbyte}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe?

        **Info:**
            - ``CBUS`` specifies the address type as CBUS.
            - ``EEPROm`` specifies the address type as EEPROM.
            - ``GENeralcall`` specifies the address type as General Call.
            - ``HSMODe`` specifies the address type as High Speed Mode.
            - ``NONe`` specifies the address type as None.
            - ``STARtbyte`` specifies the address type as Start Byte.
        """  # noqa: E501
        return self._type

    @property
    def value(self) -> SearchSearchItemTriggerABusI2cAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue`` command.

        **Description:**
            - This command sets or queries the address string when the search condition for the
              specified search is Address or AddressData.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue?

        **Info:**
            - ``<string>`` specifies the address value. This is either a 7-bit or 10-bit value
              depending on the address mode. The valid characters are 0-9, A-F, and X for addresses
              in hexadecimal format; and 0, 1, and X otherwise.
        """
        return self._value


class SearchSearchItemTriggerABusI2c(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusI2cAddress(device, f"{self._cmd_syntax}:ADDress")
        self._condition = SearchSearchItemTriggerABusI2cCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusI2cData(device, f"{self._cmd_syntax}:DATa")

    @property
    def address(self) -> SearchSearchItemTriggerABusI2cAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:FORMat`` command.
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:MODe`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:TYPe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> SearchSearchItemTriggerABusI2cCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified I2C bus trigger
              search to determine where to place a mark. <x> is the search number.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition {ADDress|ADDRANDDATA|DATa|ACKMISS|REPEATstart|STARt|STOP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition?

        **Info:**
            - ``ADDress`` specifies the trigger condition as Address.
            - ``ADDRANDDATA`` specifies the trigger condition as Address and Data.
            - ``DATa`` specifies the trigger condition as Data.
            - ``ACKMISS`` specifies the trigger condition as Missing of Acknowledgement.
            - ``REPEATstart`` specifies the trigger condition as Repeat of Start.
            - ``STARt`` specifies the trigger condition as Start.
            - ``STOP`` specifies the trigger condition as Stop.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusI2cData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa`` command tree.

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

        Sub-properties:
            - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection`` command.
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:FORMat`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusFlexrayIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger identifier value. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue?

    **Info:**
        - ``<STRING>`` specifies the identifier value.
    """


class SearchSearchItemTriggerABusFlexrayIdentifierQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger identifier qualifier. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier?
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayIdentifierFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger identifier format. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat?

    **Info:**
        - ``BINary`` specifies the identifier format as binary.
        - ``HEX`` specifies the identifier format as hexadecimal.
    """


class SearchSearchItemTriggerABusFlexrayIdentifier(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusFlexrayIdentifierFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusFlexrayIdentifierQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusFlexrayIdentifierValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusFlexrayIdentifierFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger identifier format. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat?

        **Info:**
            - ``BINary`` specifies the identifier format as binary.
            - ``HEX`` specifies the identifier format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusFlexrayIdentifierQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger identifier qualifier. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier?
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusFlexrayIdentifierValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger identifier value. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue?

        **Info:**
            - ``<STRING>`` specifies the identifier value.
        """
        return self._value


class SearchSearchItemTriggerABusFlexrayHeaderPaylength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger header payload length. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?

    **Info:**
        - ``<STRING>`` specifies the header Payload Length.
    """


class SearchSearchItemTriggerABusFlexrayHeaderIndbits(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search header Indicator Bits. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?

    **Info:**
        - ``<STRING>`` specifies the header Indicator Bits.
    """


class SearchSearchItemTriggerABusFlexrayHeaderFrameid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger header frame id. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?

    **Info:**
        - ``<STRING>`` specifies the frame ID.
    """


class SearchSearchItemTriggerABusFlexrayHeaderCyclecount(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger header cycle count. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?

    **Info:**
        - ``<STRING>`` specifies the header cycle count.
    """


class SearchSearchItemTriggerABusFlexrayHeaderCrc(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger header CRC. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?

    **Info:**
        - ``<STRING>`` specifies the CRC.
    """


class SearchSearchItemTriggerABusFlexrayHeader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` command tree.

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

    Properties:
        - ``.crc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC`` command.
        - ``.cyclecount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount`` command.
        - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID`` command.
        - ``.indbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits`` command.
        - ``.paylength``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._crc = SearchSearchItemTriggerABusFlexrayHeaderCrc(device, f"{self._cmd_syntax}:CRC")
        self._cyclecount = SearchSearchItemTriggerABusFlexrayHeaderCyclecount(
            device, f"{self._cmd_syntax}:CYCLECount"
        )
        self._frameid = SearchSearchItemTriggerABusFlexrayHeaderFrameid(
            device, f"{self._cmd_syntax}:FRAMEID"
        )
        self._indbits = SearchSearchItemTriggerABusFlexrayHeaderIndbits(
            device, f"{self._cmd_syntax}:INDBits"
        )
        self._paylength = SearchSearchItemTriggerABusFlexrayHeaderPaylength(
            device, f"{self._cmd_syntax}:PAYLENgth"
        )

    @property
    def crc(self) -> SearchSearchItemTriggerABusFlexrayHeaderCrc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger header CRC. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?

        **Info:**
            - ``<STRING>`` specifies the CRC.
        """
        return self._crc

    @property
    def cyclecount(self) -> SearchSearchItemTriggerABusFlexrayHeaderCyclecount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger header cycle count. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?

        **Info:**
            - ``<STRING>`` specifies the header cycle count.
        """
        return self._cyclecount

    @property
    def frameid(self) -> SearchSearchItemTriggerABusFlexrayHeaderFrameid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger header frame id. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?

        **Info:**
            - ``<STRING>`` specifies the frame ID.
        """
        return self._frameid

    @property
    def indbits(self) -> SearchSearchItemTriggerABusFlexrayHeaderIndbits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search header Indicator Bits. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?

        **Info:**
            - ``<STRING>`` specifies the header Indicator Bits.
        """
        return self._indbits

    @property
    def paylength(self) -> SearchSearchItemTriggerABusFlexrayHeaderPaylength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger header payload length. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?

        **Info:**
            - ``<STRING>`` specifies the header Payload Length.
        """
        return self._paylength


class SearchSearchItemTriggerABusFlexrayFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.

    **Description:**
        - This command sets or queries the FlexRay bus search frame type. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType {NORMal|PAYload|NULL|SYNC|STARTup}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType?

    **Info:**
        - ``NORMal`` sets the frame type to normal.
        - ``PAYload`` sets the frame type to payload.
        - ``NULL`` sets the frame type to null.
        - ``SYNC`` sets the frame type to sync.
        - ``STARTup`` sets the frame type to startup.
    """


class SearchSearchItemTriggerABusFlexrayErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger error type. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE {CRCHEADer|CRCTRAILer|NULLFRSTATIC|NULLFRDYNAMIC |SYNCFRAME|STARTUPNOSYNC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE?
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayEoftype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger end of file type. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE {ALL|STATIC|DYNAMIC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE?

    **Info:**
        - ``ALL`` specifies either end of file type.
        - ``STATIC`` specifies the static end of file type.
        - ``DYNAMIC`` specifies the static end of file type.
    """


class SearchSearchItemTriggerABusFlexrayDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger data value. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue <STRING>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?

    **Info:**
        - ``<STRING>`` specifies the data value.
    """


class SearchSearchItemTriggerABusFlexrayDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger data size in bytes. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?

    **Info:**
        - ``<NR3>`` specifies the data size in bytes. A data size of -1 is don't care.
    """


class SearchSearchItemTriggerABusFlexrayDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger data qualifier. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger data offset. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet <nr3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet?

    **Info:**
        - ``<nr3>`` specifies the data offset in bytes. A setting of X/Don't care is accomplished by
          setting the offset to -1.
    """


class SearchSearchItemTriggerABusFlexrayDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries FLEXRAY bus search data format. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusFlexrayData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusFlexrayDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._offset = SearchSearchItemTriggerABusFlexrayDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._qualifier = SearchSearchItemTriggerABusFlexrayDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = SearchSearchItemTriggerABusFlexrayDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusFlexrayDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusFlexrayDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries FLEXRAY bus search data format. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def offset(self) -> SearchSearchItemTriggerABusFlexrayDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger data offset. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet <nr3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet?

        **Info:**
            - ``<nr3>`` specifies the data offset in bytes. A setting of X/Don't care is
              accomplished by setting the offset to -1.
        """
        return self._offset

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusFlexrayDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger data qualifier. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> SearchSearchItemTriggerABusFlexrayDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger data size in bytes. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?

        **Info:**
            - ``<NR3>`` specifies the data size in bytes. A data size of -1 is don't care.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusFlexrayDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger data value. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue <STRING>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?

        **Info:**
            - ``<STRING>`` specifies the data value.
        """
        return self._value


class SearchSearchItemTriggerABusFlexrayCyclecountValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search cycle count value. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?

    **Info:**
        - ``<string>`` specifies the cycle count value.
    """


class SearchSearchItemTriggerABusFlexrayCyclecountQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search trigger cycle count qualifier. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayCyclecountFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat`` command.

    **Description:**
        - This command sets or queries the FLEXRAY bus search cycle count format. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusFlexrayCyclecount(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusFlexrayCyclecountFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusFlexrayCyclecountQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusFlexrayCyclecountValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusFlexrayCyclecountFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search cycle count format. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusFlexrayCyclecountQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger cycle count qualifier. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusFlexrayCyclecountValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search cycle count value. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?

        **Info:**
            - ``<string>`` specifies the cycle count value.
        """
        return self._value


class SearchSearchItemTriggerABusFlexrayCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition`` command.

    **Description:**
        - This command sets or queries FLEXRAY bus search trigger condition. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition {SOF|FRAMEtype|IDentifier|CYCLEcount|HEADer|DATA|IDANDDATA| EOF|ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition?
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusFlexray(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition`` command.
        - ``.cyclecount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount`` command tree.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa`` command tree.
        - ``.eoftype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE`` command.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE`` command.
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` command tree.
        - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusFlexrayCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._cyclecount = SearchSearchItemTriggerABusFlexrayCyclecount(
            device, f"{self._cmd_syntax}:CYCLEcount"
        )
        self._data = SearchSearchItemTriggerABusFlexrayData(device, f"{self._cmd_syntax}:DATa")
        self._eoftype = SearchSearchItemTriggerABusFlexrayEoftype(
            device, f"{self._cmd_syntax}:EOFTYPE"
        )
        self._errtype = SearchSearchItemTriggerABusFlexrayErrtype(
            device, f"{self._cmd_syntax}:ERRTYPE"
        )
        self._frametype = SearchSearchItemTriggerABusFlexrayFrametype(
            device, f"{self._cmd_syntax}:FRAMEType"
        )
        self._header = SearchSearchItemTriggerABusFlexrayHeader(
            device, f"{self._cmd_syntax}:HEADER"
        )
        self._identifier = SearchSearchItemTriggerABusFlexrayIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusFlexrayCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition`` command.

        **Description:**
            - This command sets or queries FLEXRAY bus search trigger condition. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition {SOF|FRAMEtype|IDentifier|CYCLEcount|HEADer|DATA|IDANDDATA| EOF|ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition?
        """  # noqa: E501
        return self._condition

    @property
    def cyclecount(self) -> SearchSearchItemTriggerABusFlexrayCyclecount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:FORMat`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue`` command.
        """
        return self._cyclecount

    @property
    def data(self) -> SearchSearchItemTriggerABusFlexrayData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:FORMat`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue`` command.
        """
        return self._data

    @property
    def eoftype(self) -> SearchSearchItemTriggerABusFlexrayEoftype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger end of file type. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE {ALL|STATIC|DYNAMIC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE?

        **Info:**
            - ``ALL`` specifies either end of file type.
            - ``STATIC`` specifies the static end of file type.
            - ``DYNAMIC`` specifies the static end of file type.
        """
        return self._eoftype

    @property
    def errtype(self) -> SearchSearchItemTriggerABusFlexrayErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE`` command.

        **Description:**
            - This command sets or queries the FLEXRAY bus search trigger error type. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE {CRCHEADer|CRCTRAILer|NULLFRSTATIC|NULLFRDYNAMIC |SYNCFRAME|STARTUPNOSYNC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE?
        """  # noqa: E501
        return self._errtype

    @property
    def frametype(self) -> SearchSearchItemTriggerABusFlexrayFrametype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.

        **Description:**
            - This command sets or queries the FlexRay bus search frame type. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType {NORMal|PAYload|NULL|SYNC|STARTup}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType?

        **Info:**
            - ``NORMal`` sets the frame type to normal.
            - ``PAYload`` sets the frame type to payload.
            - ``NULL`` sets the frame type to null.
            - ``SYNC`` sets the frame type to sync.
            - ``STARTup`` sets the frame type to startup.
        """
        return self._frametype

    @property
    def header(self) -> SearchSearchItemTriggerABusFlexrayHeader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` command tree.

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

        Sub-properties:
            - ``.crc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC`` command.
            - ``.cyclecount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount``
              command.
            - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID`` command.
            - ``.indbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits`` command.
            - ``.paylength``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth``
              command.
        """
        return self._header

    @property
    def identifier(self) -> SearchSearchItemTriggerABusFlexrayIdentifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:FORMat`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier:VALue`` command.
        """
        return self._identifier


class SearchSearchItemTriggerABusEthernetTcpheaderSourceportValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

    **Description:**
        - This command specifies the binary source port value to use when searching on an Ethernet
          bus signal. The search condition needs to be set to TCPHeader. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheaderSourceportFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet TCP header source port number. The search condition needs to be set to
          TCPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat {BINary|HEX|DECImal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
        - ``DECImal`` specifies the data format as decimal.
    """


class SearchSearchItemTriggerABusEthernetTcpheaderSourceport(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSourceportFormat:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet TCP header source port number. The search condition needs to
              be set to TCPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat {BINary|HEX|DECImal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
            - ``DECImal`` specifies the data format as decimal.
        """  # noqa: E501
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSourceportValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue`` command.

        **Description:**
            - This command specifies the binary source port value to use when searching on an
              Ethernet bus signal. The search condition needs to be set to TCPHeader. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheaderSeqnumValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue`` command.

    **Description:**
        - This command specifies the binary sequence number value to use when searching on an
          Ethernet bus signal. The default is all X's (don't care). The search condition needs to be
          set to TCPHeader. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheaderSeqnumFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet TCP header sequence number. The search condition needs to be set to
          TCPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat {BINary|HEX|DECImal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
        - ``DECImal`` specifies the data format as decimal.
    """


class SearchSearchItemTriggerABusEthernetTcpheaderSeqnum(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSeqnumFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet TCP header sequence number. The search condition needs to be
              set to TCPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat {BINary|HEX|DECImal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
            - ``DECImal`` specifies the data format as decimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSeqnumValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue`` command.

        **Description:**
            - This command specifies the binary sequence number value to use when searching on an
              Ethernet bus signal. The default is all X's (don't care). The search condition needs
              to be set to TCPHeader. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheaderAcknumValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue`` command.

    **Description:**
        - This command specifies the binary ack number value to use when searching on an Ethernet
          bus signal. The default is all X's (don't care). The search condition needs to be set to
          TCPHeader. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheaderAcknumFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet TCP header acknowledgement number. The search condition needs to be set to
          TCPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat {BINary|HEX|DECImal}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
        - ``DECImal`` specifies the data format as decimal.
    """


class SearchSearchItemTriggerABusEthernetTcpheaderAcknum(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetTcpheaderAcknumFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet TCP header acknowledgement number. The search condition
              needs to be set to TCPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat {BINary|HEX|DECImal}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
            - ``DECImal`` specifies the data format as decimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetTcpheaderAcknumValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue`` command.

        **Description:**
            - This command specifies the binary ack number value to use when searching on an
              Ethernet bus signal. The default is all X's (don't care). The search condition needs
              to be set to TCPHeader. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetTcpheader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader`` command tree.

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

    Properties:
        - ``.acknum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum`` command
          tree.
        - ``.seqnum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum`` command
          tree.
        - ``.sourceport``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._acknum = SearchSearchItemTriggerABusEthernetTcpheaderAcknum(
            device, f"{self._cmd_syntax}:ACKnum"
        )
        self._seqnum = SearchSearchItemTriggerABusEthernetTcpheaderSeqnum(
            device, f"{self._cmd_syntax}:SEQnum"
        )
        self._sourceport = SearchSearchItemTriggerABusEthernetTcpheaderSourceport(
            device, f"{self._cmd_syntax}:SOUrceport"
        )

    @property
    def acknum(self) -> SearchSearchItemTriggerABusEthernetTcpheaderAcknum:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue``
              command.
        """
        return self._acknum

    @property
    def seqnum(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSeqnum:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum:VALue``
              command.
        """
        return self._seqnum

    @property
    def sourceport(self) -> SearchSearchItemTriggerABusEthernetTcpheaderSourceport:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue``
              command.
        """
        return self._sourceport


class SearchSearchItemTriggerABusEthernetQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to be used when the Ethernet search condition is set
          to MACLENgth or DATa. Normally, the Ethernet qualifier is set to 'equal to'.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthernetQtagValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue`` command.

    **Description:**
        - This command specifies the binary Q-tag information to use when searching on an Ethernet
          bus signal. The search condition needs to be set to QTAG. The search number is specified
          by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetQtagFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat`` command.

    **Description:**
        - This command specifies the data format (binary or hex) to use when searching on the Q-Tag
          field. The search condition needs to be set to QTAG.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetQtag(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetQtagFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat`` command.

        **Description:**
            - This command specifies the data format (binary or hex) to use when searching on the
              Q-Tag field. The search condition needs to be set to QTAG.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetQtagValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue`` command.

        **Description:**
            - This command specifies the binary Q-tag information to use when searching on an
              Ethernet bus signal. The search condition needs to be set to QTAG. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetMacTypeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue`` command.

    **Description:**
        - This command specifies the 16-bit value to use when searching on the Ethernet MAC
          length/type. The default is all X's (don't care). The search condition needs to be set to
          MACADDRess.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue?
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthernetMacTypeFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet MAC length or type. The search condition needs to be set to MACADDRess.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetMacType(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetMacTypeFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet MAC length or type. The search condition needs to be set to
              MACADDRess.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetMacTypeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue`` command.

        **Description:**
            - This command specifies the 16-bit value to use when searching on the Ethernet MAC
              length/type. The default is all X's (don't care). The search condition needs to be set
              to MACADDRess.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue?
        """
        return self._value


class SearchSearchItemTriggerABusEthernetMacLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.

    **Description:**
        - This command specifies the 16-bit value to use when searching on the Ethernet MAC
          length/type. The default is all X's (don't care). The search condition needs to be set to
          MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue?
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthernetMacLengthFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet MAC length or type. The search condition needs to be set to MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetMacLength(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetMacLengthFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet MAC length or type. The search condition needs to be set to
              MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetMacLengthValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.

        **Description:**
            - This command specifies the 16-bit value to use when searching on the Ethernet MAC
              length/type. The default is all X's (don't care). The search condition needs to be set
              to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue?
        """
        return self._value


class SearchSearchItemTriggerABusEthernetMacAddressSourceValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

    **Description:**
        - This command specifies the binary MAC address source value to use when searching on an
          Ethernet bus signal. The search condition needs to be set to MACADDRess. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetMacAddressSourceFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet MAC address source field. The search condition needs to be set to
          MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetMacAddressSource(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetMacAddressSourceFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet MAC address source field. The search condition needs to be
              set to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetMacAddressSourceValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

        **Description:**
            - This command specifies the binary MAC address source value to use when searching on an
              Ethernet bus signal. The search condition needs to be set to MACADDRess. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetMacAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce`` command
          tree.
    """

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

    @property
    def source(self) -> SearchSearchItemTriggerABusEthernetMacAddressSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce:VALue``
              command.
        """
        return self._source


class SearchSearchItemTriggerABusEthernetMac(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess`` command tree.
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth`` command tree.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEthernetMacAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._length = SearchSearchItemTriggerABusEthernetMacLength(
            device, f"{self._cmd_syntax}:LENgth"
        )
        self._type = SearchSearchItemTriggerABusEthernetMacType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def address(self) -> SearchSearchItemTriggerABusEthernetMacAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:SOUrce``
              command tree.
        """
        return self._address

    @property
    def length(self) -> SearchSearchItemTriggerABusEthernetMacLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.
        """
        return self._length

    @property
    def type(self) -> SearchSearchItemTriggerABusEthernetMacType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe:VALue`` command.
        """
        return self._type


class SearchSearchItemTriggerABusEthernetIpheaderSourceaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

    **Description:**
        - This command specifies the binary source address value to use when searching on an
          Ethernet bus signal. The search condition needs to be set to IPHeader. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetIpheaderSourceaddr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue``
          command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetIpheaderSourceaddrValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue`` command.

        **Description:**
            - This command specifies the binary source address value to use when searching on an
              Ethernet bus signal. The search condition needs to be set to IPHeader. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetIpheaderProtocolValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue`` command.

    **Description:**
        - This command specifies the binary protocol value to use when searching on the Ethernet bus
          signal. The search condition needs to be set to IPHeader. The search number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetIpheaderProtocolFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat`` command.

    **Description:**
        - This command specifies the data format (binary or hex) of the bit pattern to use when
          searching on the Ethernet IPv4 header protocol field. The search condition needs to be set
          to MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetIpheaderProtocol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue``
          command.
    """

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

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetIpheaderProtocolFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat`` command.

        **Description:**
            - This command specifies the data format (binary or hex) of the bit pattern to use when
              searching on the Ethernet IPv4 header protocol field. The search condition needs to be
              set to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetIpheaderProtocolValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue`` command.

        **Description:**
            - This command specifies the binary protocol value to use when searching on the Ethernet
              bus signal. The search condition needs to be set to IPHeader. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 SearchSearchItemTriggerABusEthernetIpheader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader`` command tree.

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

    Properties:
        - ``.protocol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol`` command
          tree.
        - ``.sourceaddr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._protocol = SearchSearchItemTriggerABusEthernetIpheaderProtocol(
            device, f"{self._cmd_syntax}:PROTOcol"
        )
        self._sourceaddr = SearchSearchItemTriggerABusEthernetIpheaderSourceaddr(
            device, f"{self._cmd_syntax}:SOUrceaddr"
        )

    @property
    def protocol(self) -> SearchSearchItemTriggerABusEthernetIpheaderProtocol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:FORMat``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol:VALue``
              command.
        """
        return self._protocol

    @property
    def sourceaddr(self) -> SearchSearchItemTriggerABusEthernetIpheaderSourceaddr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr:VALue``
              command.
        """
        return self._sourceaddr


class SearchSearchItemTriggerABusEthernetDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary value to use when searching on the Ethernet bus signal.
          The search condition needs to be set to DATa. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS: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
          ``SEARCH:SEARCHX:TRIGGER:A:BUS: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 SearchSearchItemTriggerABusEthernetDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string, in bytes, to use when searching on
          the Ethernet bus signal. The search condition needs to be set to DATa. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the length of the data string, in bytes. The minimum and default
          values are 1, and the maximum value is 16.
    """


class SearchSearchItemTriggerABusEthernetDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.

    **Description:**
        - This command specifies the data offset value, in bytes, to use when searching on the
          Ethernet data field. The search condition needs to be set to DATa. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and maximum
          is 1,499.
    """


class SearchSearchItemTriggerABusEthernetDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat`` command.

    **Description:**
        - This command specifies the format (binary or hex) of the bit pattern to use when searching
          on the Ethernet data field. The search condition needs to be set to DATa.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the data format as binary.
        - ``HEX`` specifies the data format as hexadecimal.
    """


class SearchSearchItemTriggerABusEthernetData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusEthernetDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._offset = SearchSearchItemTriggerABusEthernetDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._size = SearchSearchItemTriggerABusEthernetDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusEthernetDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def format(self) -> SearchSearchItemTriggerABusEthernetDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat`` command.

        **Description:**
            - This command specifies the format (binary or hex) of the bit pattern to use when
              searching on the Ethernet data field. The search condition needs to be set to DATa.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the data format as binary.
            - ``HEX`` specifies the data format as hexadecimal.
        """
        return self._format

    @property
    def offset(self) -> SearchSearchItemTriggerABusEthernetDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.

        **Description:**
            - This command specifies the data offset value, in bytes, to use when searching on the
              Ethernet data field. The search condition needs to be set to DATa. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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 size(self) -> SearchSearchItemTriggerABusEthernetDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string, in bytes, to use when searching
              on the Ethernet bus signal. The search condition needs to be set to DATa. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the length of the data string, in bytes. The minimum and default
              values are 1, and the maximum value is 16.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary value to use when searching on the Ethernet bus
              signal. The search condition needs to be set to DATa. The search number is specified
              by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS: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
              ``SEARCH:SEARCHX:TRIGGER:A:BUS: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 SearchSearchItemTriggerABusEthernetCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition`` command.

    **Description:**
        - This command specifies a field or condition within an Ethernet frame to search on.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition {STARTFRAME|MACADDRess|MACTYPE|IPV4Header|TCPHeader|DATa |ENDPACKET|FCSError|QTAG|TCPDATA}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition?

    **Info:**
        - ``SFD`` - Start of frame delimiter.
        - ``MACADDRess`` - MAC addresses field.
        - ``MACLENgth`` - MAC length/type field.
        - ``IPHeader`` - IP header field. .
        - ``TCPHeader`` - TCP header field.
        - ``DATa`` - TCP/IPv4 or MAC protocol client data field.
        - ``EOP`` - End of Packet field.
        - ``IDLe`` - Idle field.
        - ``FCSError`` - Frame Check Sequence Error (CRC) field.
        - ``QTAG`` - IEEE 802.1Q (VLAN) control information field.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthernet(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa`` command tree.
        - ``.ipheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader`` command tree.
        - ``.mac``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC`` command tree.
        - ``.qtag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG`` command tree.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier`` command.
        - ``.tcpheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusEthernetCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusEthernetData(device, f"{self._cmd_syntax}:DATa")
        self._ipheader = SearchSearchItemTriggerABusEthernetIpheader(
            device, f"{self._cmd_syntax}:IPHeader"
        )
        self._mac = SearchSearchItemTriggerABusEthernetMac(device, f"{self._cmd_syntax}:MAC")
        self._qtag = SearchSearchItemTriggerABusEthernetQtag(device, f"{self._cmd_syntax}:QTAG")
        self._qualifier = SearchSearchItemTriggerABusEthernetQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._tcpheader = SearchSearchItemTriggerABusEthernetTcpheader(
            device, f"{self._cmd_syntax}:TCPHeader"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusEthernetCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition`` command.

        **Description:**
            - This command specifies a field or condition within an Ethernet frame to search on.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition {STARTFRAME|MACADDRess|MACTYPE|IPV4Header|TCPHeader|DATa |ENDPACKET|FCSError|QTAG|TCPDATA}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition?

        **Info:**
            - ``SFD`` - Start of frame delimiter.
            - ``MACADDRess`` - MAC addresses field.
            - ``MACLENgth`` - MAC length/type field.
            - ``IPHeader`` - IP header field. .
            - ``TCPHeader`` - TCP header field.
            - ``DATa`` - TCP/IPv4 or MAC protocol client data field.
            - ``EOP`` - End of Packet field.
            - ``IDLe`` - Idle field.
            - ``FCSError`` - Frame Check Sequence Error (CRC) field.
            - ``QTAG`` - IEEE 802.1Q (VLAN) control information field.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusEthernetData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:FORMat`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:VALue`` command.
        """
        return self._data

    @property
    def ipheader(self) -> SearchSearchItemTriggerABusEthernetIpheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader`` command tree.

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

        Sub-properties:
            - ``.protocol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:PROTOcol``
              command tree.
            - ``.sourceaddr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:SOUrceaddr``
              command tree.
        """
        return self._ipheader

    @property
    def mac(self) -> SearchSearchItemTriggerABusEthernetMac:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess`` command
              tree.
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth`` command tree.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:TYPe`` command tree.
        """
        return self._mac

    @property
    def qtag(self) -> SearchSearchItemTriggerABusEthernetQtag:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:FORMat`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue`` command.
        """
        return self._qtag

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusEthernetQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to be used when the Ethernet search condition is
              set to MACLENgth or DATa. Normally, the Ethernet qualifier is set to 'equal to'.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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.
        """  # noqa: E501
        return self._qualifier

    @property
    def tcpheader(self) -> SearchSearchItemTriggerABusEthernetTcpheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader`` command tree.

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

        Sub-properties:
            - ``.acknum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum`` command
              tree.
            - ``.seqnum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SEQnum`` command
              tree.
            - ``.sourceport``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport``
              command tree.
        """
        return self._tcpheader


class SearchSearchItemTriggerABusCanIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries CAN bus trigger identifier value. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?

    **Info:**
        - ``<string>`` is the identifier value.
    """


class SearchSearchItemTriggerABusCanIdentifierMode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger identifier (address) mode to be used when
          searching on a CAN bus signal. The search number is specified by x. The search condition
          must be set to IDANDDATA or DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe {EXTENDed|STandard}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe?

    **Info:**
        - ``EXTENDed`` specifies the extended identifier mode.
        - ``STandard`` specifies the standard identifier mode.
    """


class SearchSearchItemTriggerABusCanIdentifierFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger identifier format. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat?

    **Info:**
        - ``BINary`` specifies the identifier format as binary.
        - ``HEX`` specifies the identifier format as hexadecimal.
    """


class SearchSearchItemTriggerABusCanIdentifierDirection(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection`` command.

    **Description:**
        - This command sets or queries the CAN bus identifier direction. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection {DONTCare|READ|WRITE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection?

    **Info:**
        - ``DONTCare`` specifies the direction is a don't care.
        - ``READ`` specifies the read direction.
        - ``WRITE`` specifies the write direction.
    """


class SearchSearchItemTriggerABusCanIdentifier(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier`` command tree.

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

    Properties:
        - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection`` command.
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat`` command.
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = SearchSearchItemTriggerABusCanIdentifierDirection(
            device, f"{self._cmd_syntax}:DIRection"
        )
        self._format = SearchSearchItemTriggerABusCanIdentifierFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._mode = SearchSearchItemTriggerABusCanIdentifierMode(
            device, f"{self._cmd_syntax}:MODe"
        )
        self._value = SearchSearchItemTriggerABusCanIdentifierValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def direction(self) -> SearchSearchItemTriggerABusCanIdentifierDirection:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection`` command.

        **Description:**
            - This command sets or queries the CAN bus identifier direction. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection {DONTCare|READ|WRITE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection?

        **Info:**
            - ``DONTCare`` specifies the direction is a don't care.
            - ``READ`` specifies the read direction.
            - ``WRITE`` specifies the write direction.
        """
        return self._direction

    @property
    def format(self) -> SearchSearchItemTriggerABusCanIdentifierFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger identifier format. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat?

        **Info:**
            - ``BINary`` specifies the identifier format as binary.
            - ``HEX`` specifies the identifier format as hexadecimal.
        """
        return self._format

    @property
    def mode(self) -> SearchSearchItemTriggerABusCanIdentifierMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger identifier (address) mode to be used
              when searching on a CAN bus signal. The search number is specified by x. The search
              condition must be set to IDANDDATA or DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe {EXTENDed|STandard}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe?

        **Info:**
            - ``EXTENDed`` specifies the extended identifier mode.
            - ``STandard`` specifies the standard identifier mode.
        """
        return self._mode

    @property
    def value(self) -> SearchSearchItemTriggerABusCanIdentifierValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries CAN bus trigger identifier value. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?

        **Info:**
            - ``<string>`` is the identifier value.
        """
        return self._value


class SearchSearchItemTriggerABusCanFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype`` command.

    **Description:**
        - This command sets or queries CAN bus trigger frame type to be used when searching on a CAN
          bus signal. The search condition must be set to FRAMEtype. The search number is specified
          by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype {DATa|ERRor|OVERLoad|REMote}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype?

    **Info:**
        - ``DATa`` sets the frame type to data.
        - ``ERRor`` sets the frame type to error.
        - ``OVERLoad`` sets the frame type to overload.
        - ``REMote`` sets the frame type to remote.
    """


class SearchSearchItemTriggerABusCanDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger data value. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue <string>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue?

    **Info:**
        - ``<string>`` is the data value.
    """


class SearchSearchItemTriggerABusCanDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger data size in bytes. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe <nr3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?

    **Info:**
        - ``<nr3>`` specifies the data size.
    """


class SearchSearchItemTriggerABusCanDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger data qualifier to be used when searching
          on a CAN bus signal. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier {EQUal|LESSEQual|MOREEQua|UNEQual|LESSthan|MOREthan}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier?

    **Info:**
        - ``EQUal`` sets the data qualifier to equal.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQua`` sets the data qualifier to more equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
    """  # noqa: E501


class SearchSearchItemTriggerABusCanDataFormat(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger data format. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat {BINary|HEX}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat?

    **Info:**
        - ``BINary`` specifies the pattern format as binary.
        - ``HEX`` specifies the pattern format as hexadecimal.
    """


class SearchSearchItemTriggerABusCanData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa`` command tree.

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

    Properties:
        - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._format = SearchSearchItemTriggerABusCanDataFormat(
            device, f"{self._cmd_syntax}:FORMat"
        )
        self._qualifier = SearchSearchItemTriggerABusCanDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = SearchSearchItemTriggerABusCanDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusCanDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def format(self) -> SearchSearchItemTriggerABusCanDataFormat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger data format. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat {BINary|HEX}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat?

        **Info:**
            - ``BINary`` specifies the pattern format as binary.
            - ``HEX`` specifies the pattern format as hexadecimal.
        """
        return self._format

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusCanDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger data qualifier to be used when
              searching on a CAN bus signal. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier {EQUal|LESSEQual|MOREEQua|UNEQual|LESSthan|MOREthan}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier?

        **Info:**
            - ``EQUal`` sets the data qualifier to equal.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQua`` sets the data qualifier to more equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> SearchSearchItemTriggerABusCanDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger data size in bytes. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe <nr3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?

        **Info:**
            - ``<nr3>`` specifies the data size.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusCanDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger data value. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue <string>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue?

        **Info:**
            - ``<string>`` is the data value.
        """
        return self._value


class SearchSearchItemTriggerABusCanCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition`` command.

    **Description:**
        - This command sets or queries the CAN bus trigger condition. The search number is specified
          by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition {ERRor|DATA|IDANDDATA|EOF|IDentifier|ACKMISS|SOF|FRAMEtype}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?
    """  # noqa: E501


class SearchSearchItemTriggerABusCan(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa`` command tree.
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype`` command.
        - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusCanCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusCanData(device, f"{self._cmd_syntax}:DATa")
        self._frametype = SearchSearchItemTriggerABusCanFrametype(
            device, f"{self._cmd_syntax}:FRAMEtype"
        )
        self._identifier = SearchSearchItemTriggerABusCanIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusCanCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition`` command.

        **Description:**
            - This command sets or queries the CAN bus trigger condition. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition {ERRor|DATA|IDANDDATA|EOF|IDentifier|ACKMISS|SOF|FRAMEtype}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusCanData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa`` command tree.

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

        Sub-properties:
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:FORMat`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:QUALifier`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue`` command.
        """
        return self._data

    @property
    def frametype(self) -> SearchSearchItemTriggerABusCanFrametype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype`` command.

        **Description:**
            - This command sets or queries CAN bus trigger frame type to be used when searching on a
              CAN bus signal. The search condition must be set to FRAMEtype. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype {DATa|ERRor|OVERLoad|REMote}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype?

        **Info:**
            - ``DATa`` sets the frame type to data.
            - ``ERRor`` sets the frame type to error.
            - ``OVERLoad`` sets the frame type to overload.
            - ``REMote`` sets the frame type to remote.
        """
        return self._frametype

    @property
    def identifier(self) -> SearchSearchItemTriggerABusCanIdentifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier`` command tree.

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

        Sub-properties:
            - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:DIRection``
              command.
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:FORMat`` command.
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue`` command.
        """
        return self._identifier


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS`` command tree.

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

    Properties:
        - ``.can``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.
        - ``.ethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.
        - ``.flexray``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.
        - ``.i2c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.
        - ``.lin``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.
        - ``.mil1553b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.
        - ``.mipicsitwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo`` command tree.
        - ``.mipidsione``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne`` command tree.
        - ``.parallel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.
        - ``.pcie``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE`` command tree.
        - ``.rs232c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.
        - ``.s64b66b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B`` command tree.
        - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.
        - ``.spi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.
        - ``.usb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._can = SearchSearchItemTriggerABusCan(device, f"{self._cmd_syntax}:CAN")
        self._ethernet = SearchSearchItemTriggerABusEthernet(device, f"{self._cmd_syntax}:ETHERnet")
        self._flexray = SearchSearchItemTriggerABusFlexray(device, f"{self._cmd_syntax}:FLEXRAY")
        self._i2c = SearchSearchItemTriggerABusI2c(device, f"{self._cmd_syntax}:I2C")
        self._lin = SearchSearchItemTriggerABusLin(device, f"{self._cmd_syntax}:LIN")
        self._mil1553b = SearchSearchItemTriggerABusMil1553b(device, f"{self._cmd_syntax}:MIL1553B")
        self._mipicsitwo = SearchSearchItemTriggerABusMipicsitwo(
            device, f"{self._cmd_syntax}:MIPICSITWo"
        )
        self._mipidsione = SearchSearchItemTriggerABusMipidsione(
            device, f"{self._cmd_syntax}:MIPIDSIOne"
        )
        self._parallel = SearchSearchItemTriggerABusParallel(device, f"{self._cmd_syntax}:PARallel")
        self._pcie = SearchSearchItemTriggerABusPcie(device, f"{self._cmd_syntax}:PCIE")
        self._rs232c = SearchSearchItemTriggerABusRs232c(device, f"{self._cmd_syntax}:RS232C")
        self._s64b66b = SearchSearchItemTriggerABusS64b66b(device, f"{self._cmd_syntax}:S64B66B")
        self._s8b10b = SearchSearchItemTriggerABusS8b10b(device, f"{self._cmd_syntax}:S8B10B")
        self._source = SearchSearchItemTriggerABusSource(device, f"{self._cmd_syntax}:SOUrce")
        self._spi = SearchSearchItemTriggerABusSpi(device, f"{self._cmd_syntax}:SPI")
        self._usb = SearchSearchItemTriggerABusUsb(device, f"{self._cmd_syntax}:USB")

    @property
    def can(self) -> SearchSearchItemTriggerABusCan:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa`` command tree.
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FRAMEtype`` command.
            - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier`` command tree.
        """
        return self._can

    @property
    def ethernet(self) -> SearchSearchItemTriggerABusEthernet:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa`` command tree.
            - ``.ipheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader`` command tree.
            - ``.mac``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC`` command tree.
            - ``.qtag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG`` command tree.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QUALifier`` command.
            - ``.tcpheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader`` command
              tree.
        """
        return self._ethernet

    @property
    def flexray(self) -> SearchSearchItemTriggerABusFlexray:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition`` command.
            - ``.cyclecount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount`` command
              tree.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa`` command tree.
            - ``.eoftype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE`` command.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE`` command.
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` command tree.
            - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:IDentifier`` command
              tree.
        """
        return self._flexray

    @property
    def i2c(self) -> SearchSearchItemTriggerABusI2c:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDress`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa`` command tree.
        """
        return self._i2c

    @property
    def lin(self) -> SearchSearchItemTriggerABusLin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:ERRTYPE`` command.
            - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier`` command tree.
        """
        return self._lin

    @property
    def mil1553b(self) -> SearchSearchItemTriggerABusMil1553b:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.

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

        Sub-properties:
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATA`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPE`` command.
            - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATUS`` command tree.
            - ``.time``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:TIME`` command tree.
        """
        return self._mil1553b

    @property
    def mipicsitwo(self) -> SearchSearchItemTriggerABusMipicsitwo:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:CONDition`` command.
            - ``.dtlong``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTLong`` command.
            - ``.dtshort``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:DTShort`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ERRor`` command.
            - ``.escape``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:ESCape`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:OFFset`` command tree.
            - ``.packetdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PACKetdata`` command
              tree.
            - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PAYLoad`` command tree.
            - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:PIXel`` command tree.
            - ``.raw``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RAW`` command tree.
            - ``.rgb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:RGB`` command tree.
            - ``.vc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:VC`` command.
            - ``.warning``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WARNing`` command.
            - ``.wc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:WC`` command tree.
            - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo:YUV`` command tree.
        """
        return self._mipicsitwo

    @property
    def mipidsione(self) -> SearchSearchItemTriggerABusMipidsione:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne`` command tree.

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

        Sub-properties:
            - ``.ackerrreport``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ACKERRreport``
              command.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:CONDition`` command.
            - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DIRection`` command.
            - ``.dtlong``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTLong`` command.
            - ``.dtshort``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:DTShort`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ERRor`` command.
            - ``.escape``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:ESCape`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:OFFset`` command tree.
            - ``.packetdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PACKetdata`` command
              tree.
            - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PAYLoad`` command tree.
            - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:PIXel`` command tree.
            - ``.rgb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:RGB`` command tree.
            - ``.vc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:VC`` command.
            - ``.warning``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WARNing`` command.
            - ``.wc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:WC`` command tree.
            - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne:YCBCR`` command tree.
        """
        return self._mipidsione

    @property
    def parallel(self) -> SearchSearchItemTriggerABusParallel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.

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

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa`` command tree.
        """
        return self._parallel

    @property
    def pcie(self) -> SearchSearchItemTriggerABusPcie:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE`` command tree.

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

        Sub-properties:
            - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CHARacter`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:CONDition`` command.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:DISParity`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:ERROR`` command tree.
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:FORMat`` command.
            - ``.longorderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:LONGORDERedset``
              command.
            - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE:PATtern`` command tree.
        """
        return self._pcie

    @property
    def rs232c(self) -> SearchSearchItemTriggerABusRs232c:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa`` command tree.
        """
        return self._rs232c

    @property
    def s64b66b(self) -> SearchSearchItemTriggerABusS64b66b:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B`` command tree.

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

        Sub-properties:
            - ``.blockone``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONE`` command.
            - ``.blockonethentwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:BLOCKONETHENTWO``
              command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B:CONDition`` command.
        """
        return self._s64b66b

    @property
    def s8b10b(self) -> SearchSearchItemTriggerABusS8b10b:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.

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

        Sub-properties:
            - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CHARacter`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:CONDition`` command.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERROR`` command tree.
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:FORMat`` command.
            - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:PATtern`` command tree.
        """
        return self._s8b10b

    @property
    def source(self) -> SearchSearchItemTriggerABusSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.

        **Description:**
            - This command sets or queries the bus source for the bus search to determine where to
              place a mark. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>: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
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce {B0|B1|B2|B3|B4|B5|B6|B7|B8|B9|B10| B11|B12|B13|B14|B15|B16}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce?

        **Info:**
            - ``B<x>`` specifies the bus source as a bus number from B01 to B16. x has a minimum of
              0 and a maximum of 16.
        """  # noqa: E501
        return self._source

    @property
    def spi(self) -> SearchSearchItemTriggerABusSpi:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.

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

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa`` command tree.
        """
        return self._spi

    @property
    def usb(self) -> SearchSearchItemTriggerABusUsb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress`` command tree.
            - ``.character``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CHARacter`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DISParity`` command.
            - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERROR`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.
            - ``.format``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:FORMat`` command.
            - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.
            - ``.longorderedset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:LONGORDERedset``
              command.
            - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PACKets`` command.
            - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:PATtern`` command tree.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:QUAlifier`` command.
            - ``.sof``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOF`` command tree.
            - ``.specialtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType`` command.
            - ``.split``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT`` command tree.
            - ``.tokentype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:TOKENType`` command.
        """
        return self._usb


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerA(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A`` command tree.

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

    Properties:
        - ``.bus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS`` command tree.
        - ``.ddrmemory``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory`` command tree.
        - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.
        - ``.glitch``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch`` command tree.
        - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel`` command tree.
        - ``.logic``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.
        - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern`` command tree.
        - ``.pulse``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULse`` command tree.
        - ``.runt``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT`` command tree.
        - ``.sethold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold`` command tree.
        - ``.state``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE`` command tree.
        - ``.timeout``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut`` command tree.
        - ``.transition``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition`` command tree.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:TYPe`` command.
        - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth`` command tree.
        - ``.window``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._bus = SearchSearchItemTriggerABus(device, f"{self._cmd_syntax}:BUS")
        self._ddrmemory = SearchSearchItemTriggerADdrmemory(device, f"{self._cmd_syntax}:DDRMemory")
        self._edge = SearchSearchItemTriggerAEdge(device, f"{self._cmd_syntax}:EDGE")
        self._glitch = SearchSearchItemTriggerAGlitch(device, f"{self._cmd_syntax}:GLItch")
        self._level = SearchSearchItemTriggerALevel(device, f"{self._cmd_syntax}:LEVel")
        self._logic = SearchSearchItemTriggerALogic(device, f"{self._cmd_syntax}:LOGIc")
        self._pattern = SearchSearchItemTriggerAPattern(device, f"{self._cmd_syntax}:PATtern")
        self._pulse = SearchSearchItemTriggerAPulse(device, f"{self._cmd_syntax}:PULse")
        self._runt = SearchSearchItemTriggerARunt(device, f"{self._cmd_syntax}:RUNT")
        self._sethold = SearchSearchItemTriggerASethold(device, f"{self._cmd_syntax}:SETHold")
        self._state = SearchSearchItemTriggerAState(device, f"{self._cmd_syntax}:STATE")
        self._timeout = SearchSearchItemTriggerATimeout(device, f"{self._cmd_syntax}:TIMEOut")
        self._transition = SearchSearchItemTriggerATransition(
            device, f"{self._cmd_syntax}:TRANsition"
        )
        self._type = SearchSearchItemTriggerAType(device, f"{self._cmd_syntax}:TYPe")
        self._width = SearchSearchItemTriggerAWidth(device, f"{self._cmd_syntax}:WIDth")
        self._window = SearchSearchItemTriggerAWindow(device, f"{self._cmd_syntax}:WINdow")

    @property
    def bus(self) -> SearchSearchItemTriggerABus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS`` command tree.

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

        Sub-properties:
            - ``.can``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.
            - ``.ethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.
            - ``.flexray``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.
            - ``.i2c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.
            - ``.lin``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.
            - ``.mil1553b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.
            - ``.mipicsitwo``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPICSITWo`` command tree.
            - ``.mipidsione``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIPIDSIOne`` command tree.
            - ``.parallel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.
            - ``.pcie``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PCIE`` command tree.
            - ``.rs232c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.
            - ``.s64b66b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S64B66B`` command tree.
            - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.
            - ``.spi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.
            - ``.usb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB`` command tree.
        """
        return self._bus

    @property
    def ddrmemory(self) -> SearchSearchItemTriggerADdrmemory:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory`` command tree.

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

        Sub-properties:
            - ``.autobitrate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOBitrate`` command.
            - ``.autoreflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:AUTOReflevel`` command.
            - ``.bitrate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:BITRate`` command.
            - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSActive`` command.
            - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSLevel`` command.
            - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSMode`` command.
            - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:CSSource`` command.
            - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:DATASource`` command.
            - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:HYSteresis`` command.
            - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MARgin`` command.
            - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MAXCas`` command.
            - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:MINCas`` command.
            - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:REFLevel`` command tree.
            - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STANdard`` command.
            - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory:STROBEsource`` command.
        """
        return self._ddrmemory

    @property
    def edge(self) -> SearchSearchItemTriggerAEdge:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE?``
              query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.slope``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command tree.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.
        """
        return self._edge

    @property
    def glitch(self) -> SearchSearchItemTriggerAGlitch:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:GLItch?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:GLItch?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:POLarity`` command tree.
            - ``.trigif``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:TRIGIF`` command.
            - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch:WIDth`` command.
        """
        return self._glitch

    @property
    def level(self) -> SearchSearchItemTriggerALevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LEVel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:LEVel?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:LEVel?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel:REF<x>`` command.
        """
        return self._level

    @property
    def logic(self) -> SearchSearchItemTriggerALogic:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.function``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.
            - ``.input``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPut`` command tree.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:THReshold`` command tree.
        """
        return self._logic

    @property
    def pattern(self) -> SearchSearchItemTriggerAPattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PATtern`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:PATtern?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:PATtern?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern:WHEn`` command.
        """
        return self._pattern

    @property
    def pulse(self) -> SearchSearchItemTriggerAPulse:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PULse`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:PULse?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:PULse?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        **Info:**
            - ``CH<x>`` specifies one input channel as the edge source, where <x> = 1, 2, 3 or 4.

        Sub-properties:
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULse:SOUrce`` command.
        """
        return self._pulse

    @property
    def runt(self) -> SearchSearchItemTriggerARunt:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT?``
              query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command tree.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold`` command tree.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn`` command.
            - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.
        """
        return self._runt

    @property
    def sethold(self) -> SearchSearchItemTriggerASethold:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk`` command tree.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:DATa`` command tree.
            - ``.holdtime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.
            - ``.settime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime`` command.
        """
        return self._sethold

    @property
    def state(self) -> SearchSearchItemTriggerAState:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STATE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:STATE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:STATE?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:CLOCk`` command tree.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE:WHEn`` command.
        """
        return self._state

    @property
    def timeout(self) -> SearchSearchItemTriggerATimeout:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command tree.
            - ``.time``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:TIMe`` command.
        """
        return self._timeout

    @property
    def transition(self) -> SearchSearchItemTriggerATransition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.deltatime``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:DELTATime`` command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command tree.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold`` command tree.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn`` command.
        """
        return self._transition

    @property
    def type(self) -> SearchSearchItemTriggerAType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TYPe`` command.

        **Description:**
            - This command sets or queries the trigger type setting for a search to determine where
              to place a mark. <x> is the search number.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:TYPe?``
              query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:TYPe?``
              query and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TYPe {EDGE|RUNT|TRANsition|PATtern|GLItch|SETHold|UNDEFINED| WIDth|TIMEOut|WINdow|STATE|DDRRead|DDRWrite|DDRREADWrite}
            - SEARCH:SEARCH<x>:TRIGger:A:TYPe?

        **Info:**
            - ``EDGE`` triggers when the source input signal amplitude crosses the specified level
              in the direction given by the slope.
            - ``RUNT`` triggers when a pulse crosses the first preset voltage threshold but does not
              cross the second preset threshold before recrossing the first. The thresholds are set
              with the ``SEARCH:SEARCH<x>:TRIGger:A:RUNt:HIGH`` and
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNt:LOW THRESHOLD`` commands.
            - ``TRANsition`` triggers when a pulse crosses both thresholds in the same direction as
              the specified polarity and the transition time between the two threshold crossings is
              greater or less than the specified time delta.
            - ``PATtern`` trigger on a functional pattern combination of one to four input signal
              sources.
            - ``GLItch`` triggers at the trailing edge of the glitch pulse where the signal crosses
              the trigger level.
            - ``SETHold`` triggers on the data input signal transitions relative to the clock input
              signal transitions within the setup and hold time violation zone.
            - ``UNDEFINED`` is the default. To perform a search, select a different argument.
            - ``WIDth`` triggers on input signal source pulses that are inside or outside of the
              given time range.
            - ``TIMEOut`` triggers on an input signal source that stays above, stays below, or stays
              either above or beow the trigger level for a given time.
            - ``WINdow`` triggers on an input signal source that enters or exits the horizontal band
              defined by the two trigger levels.
            - ``STATE`` triggers on a functional pattern combination of one to three data sources at
              the time of the clock transition.
            - ``DDRRead`` triggers at the start and end of the read bus.
            - ``DDRWrite`` triggers at the start and end of the write bus.
            - ``DDRREADWrite`` triggers at the start and end of both the read and write bus.
        """  # noqa: E501
        return self._type

    @property
    def width(self) -> SearchSearchItemTriggerAWidth:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:WIDth?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WIDth?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.highlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:HIGHLimit`` command.
            - ``.lowlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:LOWLimit`` command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:POLarity`` command tree.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth:WHEn`` command.
        """
        return self._width

    @property
    def window(self) -> SearchSearchItemTriggerAWindow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.event``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:EVENT`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.
            - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth`` command.
        """
        return self._window


class SearchSearchItemTrigger(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.a``: The ``SEARCH:SEARCH<x>:TRIGger:A`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._a = SearchSearchItemTriggerA(device, f"{self._cmd_syntax}:A")

    @property
    def a(self) -> SearchSearchItemTriggerA:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.bus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS`` command tree.
            - ``.ddrmemory``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRMemory`` command tree.
            - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.
            - ``.glitch``: The ``SEARCH:SEARCH<x>:TRIGger:A:GLItch`` command tree.
            - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:LEVel`` command tree.
            - ``.logic``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.
            - ``.pattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:PATtern`` command tree.
            - ``.pulse``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULse`` command tree.
            - ``.runt``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT`` command tree.
            - ``.sethold``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold`` command tree.
            - ``.state``: The ``SEARCH:SEARCH<x>:TRIGger:A:STATE`` command tree.
            - ``.timeout``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut`` command tree.
            - ``.transition``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition`` command tree.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:TYPe`` command.
            - ``.width``: The ``SEARCH:SEARCH<x>:TRIGger:A:WIDth`` command tree.
            - ``.window``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow`` command tree.
        """
        return self._a


class SearchSearchItemTrigerABusPcieSyncheader(SCPICmdWriteNoArguments, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.

    **Description:**
        - This command sets or queries the PCIE search sync header. The search number is specified
          by x. This is only available for data rate 8 Gb/s and above.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader
        - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?
    """


class SearchSearchItemTrigerABusPcie(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.syncheader``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._syncheader = SearchSearchItemTrigerABusPcieSyncheader(
            device, f"{self._cmd_syntax}:SYNCHeader"
        )

    @property
    def syncheader(self) -> SearchSearchItemTrigerABusPcieSyncheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.

        **Description:**
            - This command sets or queries the PCIE search sync header. The search number is
              specified by x. This is only available for data rate 8 Gb/s and above.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader
            - SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader?
        """
        return self._syncheader


class SearchSearchItemTrigerABus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGer:A:BUS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS?`` query
          and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.pcie``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._pcie = SearchSearchItemTrigerABusPcie(device, f"{self._cmd_syntax}:PCIE")

    @property
    def pcie(self) -> SearchSearchItemTrigerABusPcie:
        """Return the ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.syncheader``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE:SYNCHeader`` command.
        """
        return self._pcie


class SearchSearchItemTrigerA(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGer:A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.bus``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._bus = SearchSearchItemTrigerABus(device, f"{self._cmd_syntax}:BUS")

    @property
    def bus(self) -> SearchSearchItemTrigerABus:
        """Return the ``SEARCH:SEARCH<x>:TRIGer:A:BUS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A:BUS?``
              query and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.pcie``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS:PCIE`` command tree.
        """
        return self._bus


class SearchSearchItemTriger(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGer`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.a``: The ``SEARCH:SEARCH<x>:TRIGer:A`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._a = SearchSearchItemTrigerA(device, f"{self._cmd_syntax}:A")

    @property
    def a(self) -> SearchSearchItemTrigerA:
        """Return the ``SEARCH:SEARCH<x>:TRIGer:A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer:A?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.bus``: The ``SEARCH:SEARCH<x>:TRIGer:A:BUS`` command tree.
        """
        return self._a


class SearchSearchItemTotal(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TOTAL`` command.

    **Description:**
        - This query-only command returns the total number of found search marks for this search.
          The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TOTAL?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TOTAL?`` query and
          raise an AssertionError if the returned value does not match ``value``.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TOTAL?
    """


class SearchSearchItemState(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:STATE`` command.

    **Description:**
        - Sets the search state to on or off. <x> is the search number, which is always 1. The query
          form returns the search state. A series of example command sequences showing different
          searches and triggers is included as an appendix.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:STATE?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:STATE?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:STATE value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:STATE {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:STATE?

    **Info:**
        - ``OFF`` or <NR1> = 0 sets the search state to off.
        - ``ON`` or <NR1> ≠ 0 sets the search state to on.
    """


class SearchSearchItemCopy(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:COPy`` command.

    **Description:**
        - This command (no query form) copies the search criteria to the trigger, the trigger
          criteria to a search, or copy search to search. <x> is the search number.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:COPy value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch|FROMSearch<x>}

    **Info:**
        - ``SEARCHtotrigger`` copies the search criteria to the trigger.
        - ``TRIGgertosearch`` copies the trigger criteria to the search.
        - ``FROMSearch<x>`` copies the search criteria to the search, where <x> is 1 to 8.
    """


class SearchSearchItem(ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>`` command.

    **Description:**
        - This command converts the specified search marks to the user marks. <x> can be 1 to 8.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x> value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x> <QString>
        - SEARCH:SEARCH<x>?

    **Info:**
        - ``<QString>`` specifies the user search marks.

    Properties:
        - ``.copy``: The ``SEARCH:SEARCH<x>:COPy`` command.
        - ``.state``: The ``SEARCH:SEARCH<x>:STATE`` command.
        - ``.total``: The ``SEARCH:SEARCH<x>:TOTAL`` command.
        - ``.triger``: The ``SEARCH:SEARCH<x>:TRIGer`` command tree.
        - ``.trigger``: The ``SEARCH:SEARCH<x>:TRIGger`` command tree.
    """

    _WRAP_ARG_WITH_QUOTES = True

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._copy = SearchSearchItemCopy(device, f"{self._cmd_syntax}:COPy")
        self._state = SearchSearchItemState(device, f"{self._cmd_syntax}:STATE")
        self._total = SearchSearchItemTotal(device, f"{self._cmd_syntax}:TOTAL")
        self._triger = SearchSearchItemTriger(device, f"{self._cmd_syntax}:TRIGer")
        self._trigger = SearchSearchItemTrigger(device, f"{self._cmd_syntax}:TRIGger")

    @property
    def copy(self) -> SearchSearchItemCopy:
        """Return the ``SEARCH:SEARCH<x>:COPy`` command.

        **Description:**
            - This command (no query form) copies the search criteria to the trigger, the trigger
              criteria to a search, or copy search to search. <x> is the search number.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:COPy value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch|FROMSearch<x>}

        **Info:**
            - ``SEARCHtotrigger`` copies the search criteria to the trigger.
            - ``TRIGgertosearch`` copies the trigger criteria to the search.
            - ``FROMSearch<x>`` copies the search criteria to the search, where <x> is 1 to 8.
        """
        return self._copy

    @property
    def state(self) -> SearchSearchItemState:
        """Return the ``SEARCH:SEARCH<x>:STATE`` command.

        **Description:**
            - Sets the search state to on or off. <x> is the search number, which is always 1. The
              query form returns the search state. A series of example command sequences showing
              different searches and triggers is included as an appendix.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:STATE?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:STATE?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:STATE value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:STATE {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:STATE?

        **Info:**
            - ``OFF`` or <NR1> = 0 sets the search state to off.
            - ``ON`` or <NR1> ≠ 0 sets the search state to on.
        """
        return self._state

    @property
    def total(self) -> SearchSearchItemTotal:
        """Return the ``SEARCH:SEARCH<x>:TOTAL`` command.

        **Description:**
            - This query-only command returns the total number of found search marks for this
              search. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TOTAL?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TOTAL?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TOTAL?
        """
        return self._total

    @property
    def triger(self) -> SearchSearchItemTriger:
        """Return the ``SEARCH:SEARCH<x>:TRIGer`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGer?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGer?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.a``: The ``SEARCH:SEARCH<x>:TRIGer:A`` command tree.
        """
        return self._triger

    @property
    def trigger(self) -> SearchSearchItemTrigger:
        """Return the ``SEARCH:SEARCH<x>:TRIGger`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger?`` query
              and raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.a``: The ``SEARCH:SEARCH<x>:TRIGger:A`` command tree.
        """
        return self._trigger


class SearchMarkallevents(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:MARKALLevents`` command.

    **Description:**
        - This command sets or queries the mark all trigger events setting.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:MARKALLevents?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:MARKALLevents?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the ``SEARCH:MARKALLevents value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:MARKALLevents {<NR1>|OFF|ON}
        - SEARCH:MARKALLevents?

    **Info:**
        - ``<NR1>`` = 0 disables the function; any other value enables it.
        - ``OFF`` disables the function.
        - ``ON`` enables the mark all trigger events function.
    """


class Search(SCPICmdRead):
    """The ``SEARCH`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.markallevents``: The ``SEARCH:MARKALLevents`` command.
        - ``.search``: The ``SEARCH:SEARCH<x>`` command.
        - ``.stop``: The ``SEARCH:STOP`` command.
    """

    def __init__(self, device: Optional["PIDevice"] = None, cmd_syntax: str = "SEARCH") -> None:
        super().__init__(device, cmd_syntax)
        self._markallevents = SearchMarkallevents(device, f"{self._cmd_syntax}:MARKALLevents")
        self._search: Dict[int, SearchSearchItem] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItem(device, f"{self._cmd_syntax}:SEARCH{x}")
        )
        self._stop = SearchStop(device, f"{self._cmd_syntax}:STOP")

    @property
    def markallevents(self) -> SearchMarkallevents:
        """Return the ``SEARCH:MARKALLevents`` command.

        **Description:**
            - This command sets or queries the mark all trigger events setting.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:MARKALLevents?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:MARKALLevents?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``SEARCH:MARKALLevents value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:MARKALLevents {<NR1>|OFF|ON}
            - SEARCH:MARKALLevents?

        **Info:**
            - ``<NR1>`` = 0 disables the function; any other value enables it.
            - ``OFF`` disables the function.
            - ``ON`` enables the mark all trigger events function.
        """
        return self._markallevents

    @property
    def search(self) -> Dict[int, SearchSearchItem]:
        """Return the ``SEARCH:SEARCH<x>`` command.

        **Description:**
            - This command converts the specified search marks to the user marks. <x> can be 1 to 8.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x> value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x> <QString>
            - SEARCH:SEARCH<x>?

        **Info:**
            - ``<QString>`` specifies the user search marks.

        Sub-properties:
            - ``.copy``: The ``SEARCH:SEARCH<x>:COPy`` command.
            - ``.state``: The ``SEARCH:SEARCH<x>:STATE`` command.
            - ``.total``: The ``SEARCH:SEARCH<x>:TOTAL`` command.
            - ``.triger``: The ``SEARCH:SEARCH<x>:TRIGer`` command tree.
            - ``.trigger``: The ``SEARCH:SEARCH<x>:TRIGger`` command tree.
        """
        return self._search

    @property
    def stop(self) -> SearchStop:
        """Return the ``SEARCH:STOP`` command.

        **Description:**
            - This command sets or queries the stop of acquisitions when a search finds an event.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:STOP?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:STOP?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the ``SEARCH:STOP value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:STOP {<NR1>|OFF|ON|1|0}
            - SEARCH:STOP?

        **Info:**
            - ``<NR1>`` any numerical nonzero, stops the acquisition.
            - ``OFF`` continues the acquisition.
            - ``ON`` stops the acquisition.
            - ``1`` stops the acquisition.
            - ``0`` continues the acquisition.
        """
        return self._stop
