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

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

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

Please report an issue if one is found.

Commands and Queries:

::

    - SEARCH:ADDNew <QString>
    - SEARCH:DELETEALL
    - SEARCH:DELete <QString>
    - SEARCH:LIST?
    - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch}
    - SEARCH:SEARCH<x>:NAVigate {NEXT|PREVious|MIN|NONE|MAX}
    - SEARCH:SEARCH<x>:TOTAL?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA|EOW|ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition {SOF|DATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD {EITher|LEFt|RIGht}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition {SSD|SFD|MACADDRess|MACLENgth|IPHeader| TCPHeader|DATa|EOP|FCSError|QTAG}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual| LESSEQual|MOREEQual| INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition {DATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition {STARt| STATus| DATa| BLOCkid| ERRors| STARTBIT| FUNCTIONCODe| ECUDATa| SENSORADDRess| REGISTERADDRess| SENSORSTATus|CRCERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs {FOURBIT|EIGHTBIT|TWENTYBIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe {ANY|PARity|CRC|RESPONSECODe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess {TWOBIT|SIXBIT|EIGHTBIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe {READy|BUSY|DEFect|SERVICEMODe|UNLocked}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition {SYMbols|ERRors}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition {SOF| FRAMEtype| IDentifier| DATa| IDANDDATA| EOF| ERRor| FDBITS}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection {READ|WRITE|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet?
    - 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 <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor |ANYERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?
    - 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:MODe {EXTENDed|STandard}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:MODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe| WORD| SYMBol}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe {ANY|ECC|CRC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe {HS|LP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe {SHORt|LONG}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition {STARt| FRAMes| FRAMEID| PTYPe| DLC| EXTDLC| NETMN| COUNter| DATa| ERRors}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe {CRC| PARity| FRAMe| IBS| ANY}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe {NORMal| SLEep| LONG| POLLINGNORMal| POLLINGLONG}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND {ON|OFF|EITHer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND {ON|OFF|EITHer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe {ANY|ECC|CRC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe {HS|LP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe {SHORt|LONG}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode {GETSTATus| GETCONFig| SETCONFig| GETNP| GETPC| PUTNP| PUTPC| PUTIORDSHORt| PUTIOWRSHORt| PUTMEMRD32SHORt| PUTMEMWR32SHORt| PUTOOB| GETOOB| PUTFLASHC| GETFLASHNP| PUTVWIRe| GETVWIRe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition {STARt| CHINDependent| PERICHANnel| OOBCHANnel| VWCHANnel| FACHANnel| DATa| STATus| ERRors| WAIT| END}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe {MEMRD32| MEMRD64| MEMWR32| MEMWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| OOBSMBUS| MCTP| FLASHREAD| FLASHWRITe| FLASHERASe| FLSUCCESSNODATa| FLSUCCESSDATa| FLUNSUCCESSNODATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe {CRC| DEFer| FATal| NONFATal| NORESPonse| CMDOPCODe| CYCLETYPe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe {COMMand| RESPONSE| RESPONSEHEADer| RESPONSENOHEADer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe {MEMRDWR32| MEMRDWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| LTR| FLASHREAD| FLASHWRITe| FLASHERASe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe {DEVice|LOGical}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe {NOP| APRD| APWR| APRW| FPRD| FPWR| FPRW| BRD| BWR| BRW| LRD| LWR| LRW| ARMW| FRMW| REServed}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition {SOF| PROTocol| IPHEADer| UDPIPHEADer| MACADDRess| TCI| ECATHEADERLENGth| DATagram| NETWORKVARiable| MAILBOX| FCSERRor| EOF}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM {HEADer|DATa|WKC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer {CMD|IDX|ADDRess|LEN|CIRCulating|IRQ}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess {POSition|OFFSet}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa {TYPe|DETail}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe {BASic|UDPIP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe {ZERo| ONE| TWO| THRee| FOUR| FIVe| RESERved| FIFTeen}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox {MAILBOXHEADer|SERVICEDATa|ERRSERVICEDATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail {ONE| TWO| THRee| FOUR| FIVe| SIX| SEVEn| EIGHt| NINe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer {LENGth| ADDRess| CHANnel| PRIority| TYPe| CNT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable {PUBHEADer|NVHEADer|NVDATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer {INDex|HASH|NVLEN|Q}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe {PDU|NETWORKVARiables|MAILbox}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue?
    - 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:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier?
    - 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:DESTinationaddr:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue?
    - 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:DESTination:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue?
    - 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:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue?
    - 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:QTAG:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue?
    - 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:DESTinationport:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue?
    - 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:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition {SYNC| HANDSHAKEPacket| SPECIALPacket| ERRor| TOKENPacket| DATAPacket| RESET| CONNect| CONTROLMESSage| SUSPEND| DEVICEChirp| HOSTChirp| PORTReset| PORTConfiguration| RESUME| RAP| EOP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| Inrange| OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe {ANY| DATA0| DATA1| DATA2| MDATA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch {OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType {BITSTUFFing|CRC5|CRC16|PID}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType {ANY|ACK|NAK|STALL|NYET}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand {ALL|WRITe|READ|CLEar|SET}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion {COMMand|ADDRess|RAPDATa}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType {ANY| PREamble| ERROr| SPLit| PING| RESERVed}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue {NOCARE| CONTRol| ISOchronous| BULK| INTERRUPT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue {NOCARE| SSPLIT| CSPLIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue {NOCARE| FULLSPEED| LOWSPEED| ISOSTART| ISOMID| ISOEND| ISOALL}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch {OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType {ANY|SOF|OUT|IN|SETUP}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType?
    - 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:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier {EQUal|LESSEQual|MOREEQual|UNEQual|LESSthan|MOREthan| INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue?
    - 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| INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE {ANY|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:FRAMEID:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier {EQual|UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual| INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue?
    - 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 <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?
    - 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:VALue <QString>
    - 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 {NOCARE|READ|WRITE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe {ADDR10|ADDR7}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets {RESPonse|BROadcast}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition {STARt|REPEATStart|ADDRess|DATa| SDRDirect|SDRBroadcast|DDR|ERRors|HOTJoin| DMSGEnd|BMSGEnd|HDRRestart|HDRExit}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection {NOCARE|READ|WRITE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe {NACK|TBIT|PARity| BADDr|DADDr|PREamble|CRC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets {RESPonse|DIRect}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket {ENSLave|DISLave|ENTasx|RSTDya| ENTRDya|SETMwrl|SETMrdl|LSLave|ENTRTSTMode|EXTime>}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket {ENSLave|DISLave|ENTasx|RSTDya| SETMwrl|SETMrdl|SEText|SETDya|SETNdya|GETMWrl|GETMRdl| GETPrid|GETBusch|GETDevch|GETSlave|ACCM|SETBrt| MDATASpeed|HDRCapability}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition {DATA|IDANDDATA|ERRor|IDentifier|SLEEP|SYNCfield|WAKEup}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier {EQual| LESSEQual| MOREEQual| UNEQual| LESSthan| MOREthan| INrange| OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue <QString>
    - 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:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition {SYNCBITS| HEADer| DATa| packetOffData| TRAiler| ERRors}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe {MANChester|PARity}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition {STARTPACKet| PHYSICALADDRess| REGISTERADDRess| DEVICETYPe| DATA| ADDRess| ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType {OPCODEERRor| DEVERRor| ANY}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - 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?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity {ONE|ZERo|NOCARE}
    - 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?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit {RX|TX|X}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition {SYNC|COMMAND|STATus|DATA|ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:PARity {ONE|ZERo|NOCARE}
    - 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|DATA}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:QUALifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
    - 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 {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BCR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition {RESet| PREsence| COMMand| DATa| READROM| MATCHROM| OVERDRIVEMATCh| SKIPROM| OVERDRIVESKIP| SEARCHROM| ALARMSEARch| CRCERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?
    - 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:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity {POSITIVe|NEGAtive|EITHer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor {SYMBol|DISParity}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe {EBIT|TBIT|SYMB}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe {DATa|CONTrol}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe {BROadcast|NOSTATion|STATIONADDr}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition {STARt| DATa| ABORt| ADDRess| UNNumbered| INFormation| SUPervisory| ERRors| END}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe {FCS|NUMERICORDer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe {COMMand|RESPonse|BOTH}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe {RR|RNR|REJ}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe {UP| UI| SNRM| SNRME| REQDISConnect| UACK| REQSETINIT| DISCMODe| FRAMEREJ| TEST| XID| CONFigure| BEACon}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition {START|FAST|SLOW|PAUSE|ERRor}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType {FRAMELENgth|CRC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC {FAST|SLOW}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQualINrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition {STARt| REPEATSTARt| ADDRess| HOSTADDR| DEVICEADDR| COMMand| DATa| UDIDDATa| ERRor| STOP| IDLe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe {ANY|ACK|NACK|PEC}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe {ONE|TWO|FOUR}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue?
    - 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:SPACEWIRe:CONDition {SYNC|DATa|ERRors|CONTROLCODe|CONTROLCHAR}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe {FCT|ESC|ENDOFPACKet}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe {NULL|TIMECODe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe {EEP|ESC|PARity}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition {DATA|SS|STARTofframe}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe {MISo|MOSi}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe <NR2>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue <Qstring>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse {GETReg| GETRegvendor| GETRegtestcfg| SETFast| SETSlow| SETDecay| SETPs| SETRegaddr| SETRegdata| REGAddrvendor| REGDatavendor| REGAddrtestconfg| REGDatatestconfg| TESTmode| SETWp| GETRegpktrecent| GETRegpktalert| GETRegpktbad| GETRegvrevent}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe {GET|SET|OPTional}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe {ANY| NACK| REJect| MIXed| PARity}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe {MASTer|SLAVe|EITHer}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?
    - 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:HIVALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe <NR1>
    - 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 <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?
    - 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:HANDSHAKEType {ACK|ANY|NAK|NYET|STALL}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType {ANY|ERROr|PING|PREamble|RESERVed|SPLit}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue {BULK|CONTROL|NOCARE|INTERRUPT|ISOchronous}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:ET:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue <QString>
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue {CSPLIT|NOCARE|SSPLIT}
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?
    - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue {NOCARE|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:DDRREAD:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive {LOW|HIGH}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode {Auto|Manual}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE {STATIC|DYNAMIC}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode {AUTO|MANUAL}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard {DDR3|LPDDR3}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive {LOW|HIGH}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode {Auto|Manual}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource {CH<x>|CH<x>_D<x>|Math<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode {AUTO|MANUAL}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard {DDR3|LPDDR3}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH <NR1>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive {LOW|HIGH}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode {Auto|Manual}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode {AUTO|MANUAL}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard {DDR3|LPDDR3}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource?
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime?
    - 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:CLOCK:SOUrce {CH<x>|Ch<x>_D<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x> {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x> {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x> {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x> {H|L|X}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge {OFF|ON|0|1}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge?
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:WHEn {TRUe|FALSe|MOREThan|LESSThan|EQual|UNEQual}
    - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:HIGHLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:HIGHLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOWLimit <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOWLimit?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity {POSitive|NEGative}
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold?
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan| EQual|UNEQual|WIThin|OUTside}
    - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity {POSitive|NEGative|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce {CH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn {OCCURS|LESSthan|MOREthan|EQual}NOTEQual}
    - 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>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x> <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x> {INCLude|DONTInclude}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x> {INCLude|DONTInclude}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x> {INCLude|DONTInclude}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x> {INCLude|DONTInclude}
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x>?
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:SETHold:SETTime?
    - SEARCH:SEARCH<x>:TRIGger:A:STATE {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq {<NR1>|OFF|ON}
    - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity {STAYSHigh|STAYSLow|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:SOUrce {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold?
    - 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:LOGICQUALification {ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity {POSitive|NEGative|EITher}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn {FASTERthan|SLOWERthan|EQual|UNEQual}
    - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:TYPe {EDGE|RUNT|TRANsition|PULSEWidth|TIMEOut|LOGIc| SETHold|WINdow|Bus|DDRRead|DDRREADWrite|DDRWrite}
    - SEARCH:SEARCH<x>:TRIGger:A:TYPe?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity {UPPer|LOWer|EITher|NONe}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:SOUrce {CH<x>|MATH<x>|REF<x>}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:SOUrce?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WHEn {ENTERSWindow|EXITSWindow| INSIDEGreater|OUTSIDEGreater}
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WHEn?
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth <NR3>
    - SEARCH:SEARCH<x>:TRIGger:A:WINdow:WIDth?
    - SEARCH:SELected SEARCH1
"""  # noqa: E501
from typing import Dict, Optional, TYPE_CHECKING

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

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


class SearchSelected(SCPICmdWrite):
    """The ``SEARCH:SELected`` command.

    **Description:**
        - This command sets or queries the selected search, for example SEARCH1. The search number
          is specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:SELected value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SELected SEARCH1

    **Info:**
        - ``SEARCH1`` is the specified search.
    """


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 SearchSearchItemTriggerAWindowWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WHEn`` command.

    **Description:**
        - This command sets or queries the window search event. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``ENTERSWindow`` specifies a window search when the signal enters the window.
        - ``EXITSWindow`` specifies a window search when the signal exits the window.
        - ``OUTSIDEGreater`` specifies a search when the signal leaves the window defined by the
          threshold levels for the time specified by Width.
        - ``INSIDEGreater`` specifies a search when the signal enters the window defined by the
          threshold levels for the time specified by Width.
    """  # noqa: E501


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

    **Description:**
        - This command sets or queries the source threshold LOW level 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` the source threshold LOW level for a transition trigger search.
    """


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

    **Description:**
        - This command sets or queries the source threshold HIGH level 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the source threshold HIGH level for a transition trigger search.
    """


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.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command.
    """

    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.

        **Description:**
            - This command sets or queries the source threshold HIGH level 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:HIGH value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the source threshold HIGH level for a transition trigger search.
        """
        return self._high

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

        **Description:**
            - This command sets or queries the source threshold LOW level 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` the source threshold LOW level for a transition trigger search.
        """
        return self._low


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

    **Description:**
        - This command sets and queries the source for the window search input. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
          specified by x.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
    """


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

    **Description:**
        - This command sets or queries the window trigger threshold crossing of the selected trigger
          Source. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity {UPPer|LOWer|EITher|NONe}
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity?

    **Info:**
        - ``UPPer`` specifies that the instrument triggers when the signal remains above the upper
          threshold for longer than the time limit and then crosses downward through the upper
          threshold.
        - ``LOWer`` specifies that the instrument triggers when the signal remains below the lower
          threshold for longer than the time limit and then crosses upwards through the lower
          threshold.
        - ``EITher`` specifies that the instrument triggers when the signal remains either above the
          upper threshold or below the lower threshold for longer than the time limit and then
          crosses a threshold.
        - ``NONe`` specifies that the instrument triggers when the signal remains outside the upper
          and lower thresholds for longer than the time limit without crossing through either the
          upper or lower threshold.
    """


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

    **Description:**
        - This command specifies or queries whether or not to use logic qualification for a window
          search. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification?

    **Info:**
        - ``ON`` specifies to use logic qualification for a window search.
        - ``OFF`` specifies not to us logic qualification for a window search.
    """


class SearchSearchItemTriggerAWindowCrossing(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng`` command.

    **Description:**
        - This command sets or queries the window trigger threshold crossing of the selected trigger
          Source. The threshold crossing selection is only effective when ``:TRIGger:A:WINdow:WHEn``
          is INSIDEGreater or OUTSIDEGreater. The search number is specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

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


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:
        - ``.crossing``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng`` command.
        - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification``
          command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WHEn`` command.
        - ``.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._crossing = SearchSearchItemTriggerAWindowCrossing(
            device, f"{self._cmd_syntax}:CROSSIng"
        )
        self._logicqualification = SearchSearchItemTriggerAWindowLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = SearchSearchItemTriggerAWindowPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._source = SearchSearchItemTriggerAWindowSource(device, f"{self._cmd_syntax}:SOUrce")
        self._threshold = SearchSearchItemTriggerAWindowThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._when = SearchSearchItemTriggerAWindowWhen(device, f"{self._cmd_syntax}:WHEn")
        self._width = SearchSearchItemTriggerAWindowWidth(device, f"{self._cmd_syntax}:WIDth")

    @property
    def crossing(self) -> SearchSearchItemTriggerAWindowCrossing:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng`` command.

        **Description:**
            - This command sets or queries the window trigger threshold crossing of the selected
              trigger Source. The threshold crossing selection is only effective when
              ``:TRIGger:A:WINdow:WHEn`` is INSIDEGreater or OUTSIDEGreater. The search number is
              specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng {UPPer|LOWer|EITher|NONe}

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

    @property
    def logicqualification(self) -> SearchSearchItemTriggerAWindowLogicqualification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification`` command.

        **Description:**
            - This command specifies or queries whether or not to use logic qualification for a
              window search. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification {ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification?

        **Info:**
            - ``ON`` specifies to use logic qualification for a window search.
            - ``OFF`` specifies not to us logic qualification for a window search.
        """
        return self._logicqualification

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

        **Description:**
            - This command sets or queries the window trigger threshold crossing of the selected
              trigger Source. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity {UPPer|LOWer|EITher|NONe}
            - SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity?

        **Info:**
            - ``UPPer`` specifies that the instrument triggers when the signal remains above the
              upper threshold for longer than the time limit and then crosses downward through the
              upper threshold.
            - ``LOWer`` specifies that the instrument triggers when the signal remains below the
              lower threshold for longer than the time limit and then crosses upwards through the
              lower threshold.
            - ``EITher`` specifies that the instrument triggers when the signal remains either above
              the upper threshold or below the lower threshold for longer than the time limit and
              then crosses a threshold.
            - ``NONe`` specifies that the instrument triggers when the signal remains outside the
              upper and lower thresholds for longer than the time limit without crossing through
              either the upper or lower threshold.
        """
        return self._polarity

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

        **Description:**
            - This command sets and queries the source for the window search input. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
              specified by x.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
        """
        return self._source

    @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.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold:LOW`` command.
        """
        return self._threshold

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

        **Description:**
            - This command sets or queries the window search event. The search number is specified
              by x.

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

        **SCPI Syntax:**

        ::

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

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

    @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 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. The search number is specified by x.

    **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|PULSEWidth|TIMEOut|LOGIc| SETHold|WINdow|Bus|DDRRead|DDRREADWrite|DDRWrite}
        - 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.
        - ``PULSEWidth`` triggers on input signal source pulses that are inside or outside of the
          given time range specified by ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:PATtern:WHEn:LESSLimit``
          and ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:PATtern:WHEn:MORELimit``. The polarity is selected
          using the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT``: POLarity command.
        - ``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.
        - ``LOGIc`` specifies that a search occurs when specified conditions are met, and is
          controlled by the ``SEARCH:A:LOGIc`` commands.
        - ``SETHold`` triggers on a functional pattern combination of one to three data sources at
          the time of the clock transition.
        - ``WINdow`` triggers on an input signal source that enters or exits the horizontal band
          defined by the two trigger levels.
        - ``Bus`` specifies that a search occurs when a communications signal is found.
        - ``DDRRead`` triggers on a DDR Read event.
        - ``DDRREADWrite`` triggers on a DDR Read or Write event.
        - ``DDRWrite`` triggers on a DDR Write event.
    """  # 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. The search number is specified by x.

    **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|EQual|UNEQual}
        - 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.
        - ``EQual`` sets the trigger to occur when the transitioning signal is equal to the set
          volts/second rate.
        - ``UNEQual`` sets the trigger to occur when the transitioning signal is not equal to the
          set volts/second rate.
    """


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

    **Description:**
        - Sets or queries the source threshold LOW level 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the source threshold LOW level for a transition trigger searchk.
    """


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

    **Description:**
        - Sets or queries the source threshold HIGH level 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` the source threshold HIGH level for a transition trigger search.
    """


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.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command.
    """

    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.

        **Description:**
            - Sets or queries the source threshold HIGH level 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:HIGH value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` the source threshold HIGH level for a transition trigger search.
        """
        return self._high

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

        **Description:**
            - Sets or queries the source threshold LOW level 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the source threshold LOW level for a transition trigger searchk.
        """
        return self._low


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

    **Description:**
        - This command sets and queries the source for the transition search input. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
          specified by x.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
    """


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

    **Description:**
        - This command specifies the polarity for the transition search. The search number is
          specified by x.

    **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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity {POSitive|NEGative|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity?

    **Info:**
        - ``EITher`` places a mark on a transition of either polarity.
        - ``NEGative`` places a mark on a transition of negative polarity.
        - ``POSitive`` places a mark on a transition of positive polarity.
    """


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

    **Description:**
        - This command specifies whether or not to use logic qualification for a transition search.
          The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification {ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification?

    **Info:**
        - ``ON`` specifies to use logic qualification for a transition search.
        - ``OFF`` specifies not to use logic qualification for a transition search.
    """


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.
        - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification``
          command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:SOUrce`` command.
        - ``.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._logicqualification = SearchSearchItemTriggerATransitionLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = SearchSearchItemTriggerATransitionPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._source = SearchSearchItemTriggerATransitionSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )
        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 logicqualification(self) -> SearchSearchItemTriggerATransitionLogicqualification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a transition
              search. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification {ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification?

        **Info:**
            - ``ON`` specifies to use logic qualification for a transition search.
            - ``OFF`` specifies not to use logic qualification for a transition search.
        """
        return self._logicqualification

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

        **Description:**
            - This command specifies the polarity for the transition search. The search number is
              specified by x.

        **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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity {POSitive|NEGative|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity?

        **Info:**
            - ``EITher`` places a mark on a transition of either polarity.
            - ``NEGative`` places a mark on a transition of negative polarity.
            - ``POSitive`` places a mark on a transition of positive polarity.
        """
        return self._polarity

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

        **Description:**
            - This command sets and queries the source for the transition search input. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
              specified by x.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
        """
        return self._source

    @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.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:THReshold:LOW`` command.
        """
        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. The search number is specified by x.

        **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|EQual|UNEQual}
            - 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.
            - ``EQual`` sets the trigger to occur when the transitioning signal is equal to the set
              volts/second rate.
            - ``UNEQual`` sets the trigger to occur when the transitioning signal is not equal to
              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 SearchSearchItemTriggerATimeoutThreshold(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold`` command.

    **Description:**
        - Sets or queries the source threshold level 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:THReshold?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold?`` query and 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:THReshold value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the source threshold level for a timeout trigger search.
    """


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

    **Description:**
        - This command sets and queries the source for timeout search input. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
        - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
          specified by x.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
        - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
    """


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

    **Description:**
        - The polarity to be used for a Timeout search. The search number is specified by x.

    **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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity value`` command.

    **SCPI Syntax:**

    ::

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

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


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

    **Description:**
        - This command specifies whether or not to use logic qualification for a timeout search. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification?

    **Info:**
        - ``ON`` specifies to use logic qualification.
        - ``OFF`` specifies not to use logic qualification.
    """


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:
        - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification``
          command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold`` command.
        - ``.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._logicqualification = SearchSearchItemTriggerATimeoutLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = SearchSearchItemTriggerATimeoutPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._source = SearchSearchItemTriggerATimeoutSource(device, f"{self._cmd_syntax}:SOUrce")
        self._threshold = SearchSearchItemTriggerATimeoutThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._time = SearchSearchItemTriggerATimeoutTime(device, f"{self._cmd_syntax}:TIMe")

    @property
    def logicqualification(self) -> SearchSearchItemTriggerATimeoutLogicqualification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a timeout search.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification {ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification?

        **Info:**
            - ``ON`` specifies to use logic qualification.
            - ``OFF`` specifies not to use logic qualification.
        """
        return self._logicqualification

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

        **Description:**
            - The polarity to be used for a Timeout search. The search number is specified by x.

        **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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity value`` command.

        **SCPI Syntax:**

        ::

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

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

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

        **Description:**
            - This command sets and queries the source for timeout search input. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
            - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
              specified by x.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
            - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
        """  # noqa: E501
        return self._source

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

        **Description:**
            - Sets or queries the source threshold level 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:THReshold?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold?`` query and 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:THReshold value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the source threshold level for a timeout trigger search.
        """
        return self._threshold

    @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 SearchSearchItemTriggerAStopacq(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq`` command.

    **Description:**
        - This command sets or queries whether acquisitions are stopped when a search hit is found.
          The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq {<NR1>|OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq?

    **Info:**
        - ``<x>`` is the number of the search on which to enable or disable the stop acquisition
          function.
        - ``<NR1>`` = 1 enables stopping when a search hit is found. Any other character disables
          the feature.
        - ``ON`` enables stopping when a search hit is found.
        - ``OFF`` disables stopping on a search hit.
    """


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

    **Description:**
        - This command sets or queries the enabled state of the search. The search number is
          specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:STATE value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:STATE {<NR1>|OFF|ON}

    **Info:**
        - ``<NR1>`` = 1 enables the search. Any other character disables the search.
        - ``ON`` enables the search.
        - ``OFF`` disables the search.
    """


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 SearchSearchItemTriggerASetholdLogicpatternRefItem(
    ValidatedDynamicNumberCmd, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x>`` command.

    **Description:**
        - This command sets and returns the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x> {INCLude|DONTInclude}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x>?

    **Info:**
        - ``INCLude`` specifies including the specified reference SETHOLD inputs in the specified
          search.
        - ``DONTInclude`` specifies not including the specified reference SETHOLD inputs in the
          specified search.
    """


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

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x> {INCLude|DONTInclude}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x>?

    **Info:**
        - ``INCLude`` specifies including the specified math SETHOLD inputs in the specified search.
        - ``DONTInclude`` specifies not including the specified math SETHOLD inputs in the specified
          search.
    """


class SearchSearchItemTriggerASetholdLogicpatternChannelDigitalBit(
    ValidatedDigitalBit, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>`` command.

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x> {INCLude|DONTInclude}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>?

    **Info:**
        - ``INCLude`` specifies including the specified digital channel SETHOLD inputs in the
          specified search.
        - ``DONTInclude`` specifies not including the specified digital channel SETHOLD inputs in
          the specified search.
    """


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

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x> {INCLude|DONTInclude}
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>?

    **Info:**
        - ``INCLude`` specifies including the specified channel SETHOLD inputs in the specified
          search.
        - ``DONTInclude`` specifies not including the specified channel SETHOLD inputs in the
          specified search.

    Properties:
        - ``.d``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>`` command.
    """

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

    @property
    def d(self) -> Dict[int, SearchSearchItemTriggerASetholdLogicpatternChannelDigitalBit]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>`` command.

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x> {INCLude|DONTInclude}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>?

        **Info:**
            - ``INCLude`` specifies including the specified digital channel SETHOLD inputs in the
              specified search.
            - ``DONTInclude`` specifies not including the specified digital channel SETHOLD inputs
              in the specified search.
        """
        return self._d


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

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

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

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

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

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x> {INCLude|DONTInclude}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>?

        **Info:**
            - ``INCLude`` specifies including the specified channel SETHOLD inputs in the specified
              search.
            - ``DONTInclude`` specifies not including the specified channel SETHOLD inputs in the
              specified search.

        Sub-properties:
            - ``.d``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:CH<x>_D<x>`` command.
        """
        return self._ch

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

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x> {INCLude|DONTInclude}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:MATH<x>?

        **Info:**
            - ``INCLude`` specifies including the specified math SETHOLD inputs in the specified
              search.
            - ``DONTInclude`` specifies not including the specified math SETHOLD inputs in the
              specified search.
        """
        return self._math

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

        **Description:**
            - This command sets and returns the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x> {INCLude|DONTInclude}
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern:REF<x>?

        **Info:**
            - ``INCLude`` specifies including the specified reference SETHOLD inputs in the
              specified search.
            - ``DONTInclude`` specifies not including the specified reference SETHOLD inputs in the
              specified search.
        """
        return self._ref


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

    **Description:**
        - This command sets or queries the voltage level to use for setup & hold trigger search. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x>?

    **Info:**
        - ``<NR3>`` is the voltage level to use for setup & hold trigger search.
    """


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

    **Description:**
        - This command sets or queries the voltage level to use for setup & hold trigger search. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x>?

    **Info:**
        - ``<NR3>`` isi the voltage level to use for setup & hold trigger search.
    """


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

    **Description:**
        - This command sets or queries the voltage level to use for setup & hold trigger search. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x> <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x>?

    **Info:**
        - ``<NR3>`` the voltage level to use for setup & hold trigger search.
    """


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

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

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

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

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

        **Description:**
            - This command sets or queries the voltage level to use for setup & hold trigger search.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:CH<x>?

        **Info:**
            - ``<NR3>`` the voltage level to use for setup & hold trigger search.
        """
        return self._ch

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

        **Description:**
            - This command sets or queries the voltage level to use for setup & hold trigger search.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:MATH<x>?

        **Info:**
            - ``<NR3>`` isi the voltage level to use for setup & hold trigger search.
        """
        return self._math

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

        **Description:**
            - This command sets or queries the voltage level to use for setup & hold trigger search.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x> <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel:REF<x>?

        **Info:**
            - ``<NR3>`` is the voltage level to use for setup & hold trigger search.
        """
        return self._ref


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 SearchSearchItemTriggerASetholdClockThreshold(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold`` command.

    **Description:**
        - This command sets or queries the clock threshold 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold?

    **Info:**
        - ``<NR3>`` the clock threshold setting for a setup/hold trigger search.
    """


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. The search number is specified by x.

    **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>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<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, 4, 5, 6, 7,
          or 8, depending on the number of channels in your instrument.
        - ``CH<x>_D<x>`` specifies a digital waveform as the setup and hold clock source waveform
          for the specified search.
        - ``MATH<x>`` specifies the math waveform as the search source, where <x> = ≥1.
        - ``REF<x>`` specifies the reference waveform as the search source, where <x> = ≥1.
        - ``REF<x>_D<x>`` specifies a digital reference waveform as the setup and hold clock source
          waveform for the specified search.
    """  # noqa: E501


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.
    """

    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. The search number is specified by x.

        **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>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<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, 4, 5, 6,
              7, or 8, depending on the number of channels in your instrument.
            - ``CH<x>_D<x>`` specifies a digital waveform as the setup and hold clock source
              waveform for the specified search.
            - ``MATH<x>`` specifies the math waveform as the search source, where <x> = ≥1.
            - ``REF<x>`` specifies the reference waveform as the search source, where <x> = ≥1.
            - ``REF<x>_D<x>`` specifies a digital reference waveform as the setup and hold clock
              source waveform for the specified search.
        """  # noqa: E501
        return self._source

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

        **Description:**
            - This command sets or queries the clock threshold 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:SETHold:CLOCk:THReshold?

        **Info:**
            - ``<NR3>`` the clock threshold setting for a setup/hold trigger search.
        """
        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.
        - ``.holdtime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.
        - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel`` command tree.
        - ``.logicpattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern`` command tree.
        - ``.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._holdtime = SearchSearchItemTriggerASetholdHoldtime(
            device, f"{self._cmd_syntax}:HOLDTime"
        )
        self._level = SearchSearchItemTriggerASetholdLevel(device, f"{self._cmd_syntax}:LEVel")
        self._logicpattern = SearchSearchItemTriggerASetholdLogicpattern(
            device, f"{self._cmd_syntax}:LOGICPattern"
        )
        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.
        """
        return self._clock

    @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 level(self) -> SearchSearchItemTriggerASetholdLevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel`` command tree.

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

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

    @property
    def logicpattern(self) -> SearchSearchItemTriggerASetholdLogicpattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern`` command tree.

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

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

    @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 queries the condition 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: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|LESSthan|MOREthan|EQual}NOTEQual}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?

    **Info:**
        - ``LESSthan`` argument sets the instrument to search if the a runt pulse is detected with
          width less than the time set by the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.
        - ``MOREthan`` argument sets the instrument to search if the a runt pulse is detected with
          width more than the time set by the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` command.
        - ``EQual`` argument sets the instrument to search when the pattern is true for a time
          period equal to the time period specified in ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth``
          within a ±5% tolerance.
        - ``NOTEQual`` argument sets the instrument to search when the pattern is true for atime
          period greater than or less than (but not equal) the time period specified in
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` within a ±5% tolerance.
        - ``OCCURS`` argument specifies a search event if a runt of any detectable width occurs.
    """


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

    **Description:**
        - Sets or queries the source threshold LOW level 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the source threshold LOW level for a runt trigger search.
    """


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

    **Description:**
        - This command sets or queries the source threshold HIGH level for a runt trigger search to
          determine where to place a mark.

    **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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the source threshold HIGH level for a runt trigger search.
    """


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.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command.
    """

    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.

        **Description:**
            - This command sets or queries the source threshold HIGH level for a runt trigger search
              to determine where to place a mark.

        **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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:HIGH value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the source threshold HIGH level for a runt trigger search.
        """
        return self._high

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

        **Description:**
            - Sets or queries the source threshold LOW level 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the source threshold LOW level for a runt trigger search.
        """
        return self._low


class SearchSearchItemTriggerARuntSource(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce`` command.

    **Description:**
        - This command sets and queries the source for the Runt search input. The search number is
          specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce {CH<x>|REF<x>}

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
    """


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

    **Description:**
        - This command specifies the polarity for the runt search. The search number is specified by
          x.

    **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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity {POSitive|NEGative|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity?

    **Info:**
        - ``POSitive`` specifies using positive polarity for the runt search.
        - ``NEGative`` specifies using negative polarity for the runt search.
        - ``EITher`` specifies using either positive or negative polarity for the runt search.
    """


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

    **Description:**
        - This command specifies whether or not to use logic qualification for a runt search. The
          search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification?

    **Info:**
        - ``ON`` specifies to use logic qualification for a runt search.
        - ``OFF`` specifies not to use logic qualification for a runt search.
    """


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:
        - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification``
          command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce`` command.
        - ``.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._logicqualification = SearchSearchItemTriggerARuntLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._polarity = SearchSearchItemTriggerARuntPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._source = SearchSearchItemTriggerARuntSource(device, f"{self._cmd_syntax}:SOUrce")
        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 logicqualification(self) -> SearchSearchItemTriggerARuntLogicqualification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a runt search.
              The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification {ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification?

        **Info:**
            - ``ON`` specifies to use logic qualification for a runt search.
            - ``OFF`` specifies not to use logic qualification for a runt search.
        """
        return self._logicqualification

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

        **Description:**
            - This command specifies the polarity for the runt search. The search number is
              specified by x.

        **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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity {POSitive|NEGative|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity?

        **Info:**
            - ``POSitive`` specifies using positive polarity for the runt search.
            - ``NEGative`` specifies using negative polarity for the runt search.
            - ``EITher`` specifies using either positive or negative polarity for the runt search.
        """
        return self._polarity

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

        **Description:**
            - This command sets and queries the source for the Runt search input. The search number
              is specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce {CH<x>|REF<x>}

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
        """
        return self._source

    @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.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:THReshold:LOW`` command.
        """
        return self._threshold

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

        **Description:**
            - This command sets or queries the condition 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: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|LESSthan|MOREthan|EQual}NOTEQual}
            - SEARCH:SEARCH<x>:TRIGger:A:RUNT:WHEn?

        **Info:**
            - ``LESSthan`` argument sets the instrument to search if the a runt pulse is detected
              with width less than the time set by the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth``
              command.
            - ``MOREthan`` argument sets the instrument to search if the a runt pulse is detected
              with width more than the time set by the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth``
              command.
            - ``EQual`` argument sets the instrument to search when the pattern is true for a time
              period equal to the time period specified in ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth``
              within a ±5% tolerance.
            - ``NOTEQual`` argument sets the instrument to search when the pattern is true for atime
              period greater than or less than (but not equal) the time period specified in
              ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:WIDth`` within a ±5% tolerance.
            - ``OCCURS`` argument specifies a search event if a runt of any detectable width occurs.
        """
        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 SearchSearchItemTriggerAPulsewidthWhen(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn`` command.

    **Description:**
        - This command specifies to search for a pulse with a width (duration) that is less than,
          greater than, equal to, or unequal to a specified value (set using
          ``SEARch:A:PULSEWidth:WIDth`` ), OR whose ``SEARch:A:PULSEWidth:LOWLimit`` and
          ``SEARch:A:PULSEWidth:HIGHLimit`` ). The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan| EQual|UNEQual|WIThin|OUTside}
        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn?

    **Info:**
        - ``LESSthan`` causes a search when a pulse is detected with a width less than the time set
          by the ``SEARch:A:PULSEWidth:WIDth`` command.
        - ``MOREthan`` causes a search when a pulse is detected with a width greater than the time
          set by the ``SEARch:A:PULSEWidth:WIDth`` command.
        - ``EQual`` causes a search when a pulse is detected with a width equal to the time period
          specified in ``SEARch:A:PULSEWidth:WIDth`` within a ±5% tolerance.
        - ``UNEQual`` causes a search when a pulse is detected with a width greater than or less
          than (but not equal) the time period specified in ``SEARch:A:PULSEWidth:WIDth`` within a
          ±5% tolerance.
        - ``WIThin`` causes a search when a pulse is detected that is within a range set by two
          values.
        - ``OUTside`` causes a search when a pulse is detected that is outside of a range set by two
          values.
    """  # noqa: E501


class SearchSearchItemTriggerAPulsewidthThreshold(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold`` command.

    **Description:**
        - Sets or queries the source threshold level for a pulse width 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:PULSEWidth:THReshold?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold?

    **Info:**
        - ``<NR3>`` is the source threshold level for a pulse width trigger search.
    """


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

    **Description:**
        - This command sets and queries the source for the pulse width search input. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
        - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
    """


class SearchSearchItemTriggerAPulsewidthPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity`` command.

    **Description:**
        - This command specifies the polarity for a pulse width search. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity {POSitive|NEGative}
        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity?

    **Info:**
        - ``POSitive`` specifies positive polarity for a pulse width search.
        - ``NEGative`` specifies negative polarity for a pulse width search.
    """


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

    **Description:**
        - This command specifies the lower limit to use, in seconds, when searching for a pulse
          whose duration is inside or outside a range of two values. The search number is specified
          by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the lower limit to use, in seconds, when searching for a pulse.
    """


class SearchSearchItemTriggerAPulsewidthLogicqualification(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification`` command.

    **Description:**
        - This command specifies whether or not to use logic qualification for a pulse width search.
          The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
        - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification?

    **Info:**
        - ``ON`` specifies to use logic qualification.
        - ``OFF`` specifies not to use logic qualification.
    """


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

    **Description:**
        - This command specifies the upper limit to use, in seconds, when searching for a pulse
          whose duration is inside or outside a range of two values. The search number is specified
          by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the upper limit to use, in seconds, when searching for a pulse.
    """


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

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

    Properties:
        - ``.highlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:HIGHLimit`` command.
        - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification``
          command.
        - ``.lowlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOWLimit`` command.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity`` command.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold`` command.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._highlimit = SearchSearchItemTriggerAPulsewidthHighlimit(
            device, f"{self._cmd_syntax}:HIGHLimit"
        )
        self._logicqualification = SearchSearchItemTriggerAPulsewidthLogicqualification(
            device, f"{self._cmd_syntax}:LOGICQUALification"
        )
        self._lowlimit = SearchSearchItemTriggerAPulsewidthLowlimit(
            device, f"{self._cmd_syntax}:LOWLimit"
        )
        self._polarity = SearchSearchItemTriggerAPulsewidthPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._source = SearchSearchItemTriggerAPulsewidthSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )
        self._threshold = SearchSearchItemTriggerAPulsewidthThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )
        self._when = SearchSearchItemTriggerAPulsewidthWhen(device, f"{self._cmd_syntax}:WHEn")

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

        **Description:**
            - This command specifies the upper limit to use, in seconds, when searching for a pulse
              whose duration is inside or outside a range of two values. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the upper limit to use, in seconds, when searching for a pulse.
        """
        return self._highlimit

    @property
    def logicqualification(self) -> SearchSearchItemTriggerAPulsewidthLogicqualification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification`` command.

        **Description:**
            - This command specifies whether or not to use logic qualification for a pulse width
              search. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification {ON|OFF}
            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification?

        **Info:**
            - ``ON`` specifies to use logic qualification.
            - ``OFF`` specifies not to use logic qualification.
        """
        return self._logicqualification

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

        **Description:**
            - This command specifies the lower limit to use, in seconds, when searching for a pulse
              whose duration is inside or outside a range of two values. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the lower limit to use, in seconds, when searching for a pulse.
        """
        return self._lowlimit

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

        **Description:**
            - This command specifies the polarity for a pulse width search. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity {POSitive|NEGative}
            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity?

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

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

        **Description:**
            - This command sets and queries the source for the pulse width search input. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce {CH<x>|CH<x>_D<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
            - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
        """
        return self._source

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

        **Description:**
            - Sets or queries the source threshold level for a pulse width 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:PULSEWidth:THReshold?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold?

        **Info:**
            - ``<NR3>`` is the source threshold level for a pulse width trigger search.
        """
        return self._threshold

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

        **Description:**
            - This command specifies to search for a pulse with a width (duration) that is less
              than, greater than, equal to, or unequal to a specified value (set using
              ``SEARch:A:PULSEWidth:WIDth`` ), OR whose ``SEARch:A:PULSEWidth:LOWLimit`` and
              ``SEARch:A:PULSEWidth:HIGHLimit`` ). The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn {LESSthan|MOREthan| EQual|UNEQual|WIThin|OUTside}
            - SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn?

        **Info:**
            - ``LESSthan`` causes a search when a pulse is detected with a width less than the time
              set by the ``SEARch:A:PULSEWidth:WIDth`` command.
            - ``MOREthan`` causes a search when a pulse is detected with a width greater than the
              time set by the ``SEARch:A:PULSEWidth:WIDth`` command.
            - ``EQual`` causes a search when a pulse is detected with a width equal to the time
              period specified in ``SEARch:A:PULSEWidth:WIDth`` within a ±5% tolerance.
            - ``UNEQual`` causes a search when a pulse is detected with a width greater than or less
              than (but not equal) the time period specified in ``SEARch:A:PULSEWidth:WIDth`` within
              a ±5% tolerance.
            - ``WIThin`` causes a search when a pulse is detected that is within a range set by two
              values.
            - ``OUTside`` causes a search when a pulse is detected that is outside of a range set by
              two values.
        """  # noqa: E501
        return self._when


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

    **Description:**
        - This command sets or queries the condition for generating an A or B logic search with
          respect to the defined input pattern.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``TRUe`` searches on an input value that is true.
        - ``FALSe`` searches on an input value that is false.
        - ``MOREthan`` searches on an input value that is greater than a set value.
        - ``LESSthan`` searches on an input value that is less than a set value.
        - ``EQual`` searches on an input value that is equal to a set value.
        - ``UNEQual`` searches on an input value that is not equal to a set value.
    """


class SearchSearchItemTriggerALogicUseclockedge(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge`` command.

    **Description:**
        - This command specifies whether or not Logic search uses a clock source. The search number
          is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge {OFF|ON|0|1}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge?

    **Info:**
        - ``OFF`` specifies not to use the clock source.
        - ``ON`` specifies to use the clock source.
        - ``0`` specifies not to use the clock source.
        - ``1`` specifies to use the clock source.
    """


class SearchSearchItemTriggerALogicPolarity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity`` command.

    **Description:**
        - This command sets or queries the polarity for the clock channel when Use Clock Edge is set
          to Yes for Logic search type. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity?

    **Info:**
        - ``POSitive`` specifies using the positive clock edge.
        - ``NEGative`` specifies using negative clock edge.
        - ``EITher`` specifies using either the positive or negative clock edge.
    """


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

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x> {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x>?

    **Info:**
        - ``H`` specifies triggering when the pattern is high.
        - ``L`` specifies triggering when the pattern is low.
        - ``X`` specifies triggering when the pattern is high or low.
    """


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

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x> {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x>?

    **Info:**
        - ``H`` specifies triggering when the pattern is high.
        - ``L`` specifies triggering when the pattern is low.
        - ``X`` specifies triggering when the pattern is high or low.
    """


class SearchSearchItemTriggerALogicLogicpatternChannelDigitalBit(
    ValidatedDigitalBit, SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>`` command.

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x> {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>?

    **Info:**
        - ``H`` specifies triggering when the pattern is high.
        - ``L`` specifies triggering when the pattern is low.
        - ``X`` specifies triggering when the pattern is high or low.
    """


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

    **Description:**
        - This command sets or queries the conditions used for generating an A logic pattern, with
          respect to the defined input pattern, and identifies the time that the selected pattern
          may be true and still generate the trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x> {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>?

    **Info:**
        - ``H`` specifies triggering when the pattern is high.
        - ``L`` specifies triggering when the pattern is low.
        - ``X`` specifies triggering when the pattern is high or low.

    Properties:
        - ``.d``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>`` command.
    """

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

    @property
    def d(self) -> Dict[int, SearchSearchItemTriggerALogicLogicpatternChannelDigitalBit]:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>`` command.

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x> {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>?

        **Info:**
            - ``H`` specifies triggering when the pattern is high.
            - ``L`` specifies triggering when the pattern is low.
            - ``X`` specifies triggering when the pattern is high or low.
        """
        return self._d


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

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

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

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

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

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x> {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>?

        **Info:**
            - ``H`` specifies triggering when the pattern is high.
            - ``L`` specifies triggering when the pattern is low.
            - ``X`` specifies triggering when the pattern is high or low.

        Sub-properties:
            - ``.d``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>_D<x>`` command.
        """
        return self._ch

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

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x> {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x>?

        **Info:**
            - ``H`` specifies triggering when the pattern is high.
            - ``L`` specifies triggering when the pattern is low.
            - ``X`` specifies triggering when the pattern is high or low.
        """
        return self._math

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

        **Description:**
            - This command sets or queries the conditions used for generating an A logic pattern,
              with respect to the defined input pattern, and identifies the time that the selected
              pattern may be true and still generate the trigger. The search number is specified by
              x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x> {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x>?

        **Info:**
            - ``H`` specifies triggering when the pattern is high.
            - ``L`` specifies triggering when the pattern is low.
            - ``X`` specifies triggering when the pattern is high or low.
        """
        return self._ref


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

    **Description:**
        - This command sets the voltage level to use for logic trigger search. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the voltage level to use for logic trigger search.
    """


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

    **Description:**
        - This command sets the voltage level to use for logic trigger search. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the voltage level to use for logic trigger search.
    """


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

    **Description:**
        - This command sets or queries the voltage level to use for logic trigger search. The search
          number is specified by x.

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

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the voltage level to use for logic trigger search.
    """


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

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

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

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

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

        **Description:**
            - This command sets or queries the voltage level to use for logic trigger search. The
              search number is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the voltage level to use for logic trigger search.
        """
        return self._ch

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

        **Description:**
            - This command sets the voltage level to use for logic trigger search. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the voltage level to use for logic trigger search.
        """
        return self._math

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

        **Description:**
            - This command sets the voltage level to use for logic trigger search. The search number
              is specified by x.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the voltage level to use for logic trigger search.
        """
        return self._ref


class SearchSearchItemTriggerALogicInputClockSource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce`` command.

    **Description:**
        - This command specifies or queries the channel to use as the clock source for logic
          trigger. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce {CH<x>|Ch<x>_D<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce?

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.
        - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
        - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
    """


class SearchSearchItemTriggerALogicInputClock(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK`` command tree.

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

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.

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

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

    @property
    def source(self) -> SearchSearchItemTriggerALogicInputClockSource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce`` command.

        **Description:**
            - This command specifies or queries the channel to use as the clock source for logic
              trigger. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce {CH<x>|Ch<x>_D<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce?

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.
            - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
            - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
        """
        return self._source


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``.

    **Info:**
        - ``CH<x>`` specifies an analog channel as the search source, where the channel number is
          specified by x.

    Properties:
        - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK`` command tree.
    """

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

    @property
    def clock(self) -> SearchSearchItemTriggerALogicInputClock:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK`` command tree.

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

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.

        Sub-properties:
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK:SOUrce`` command.
        """
        return self._clock


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 SearchSearchItemTriggerALogicDeltatime(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime`` command.

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

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime?

    **Info:**
        - ``<NR3>`` is delta time value.
    """


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

    **Description:**
        - This command sets or queries the logic clock threshold for a logic 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:CLOCk:THReshold?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold?`` query and 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:CLOCk:THReshold value`` command.

    **SCPI Syntax:**

    ::

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

    **Info:**
        - ``<NR3>`` is the logic clock threshold.
    """


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

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

    Properties:
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold`` command.
    """

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

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

        **Description:**
            - This command sets or queries the logic clock threshold for a logic 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:CLOCk:THReshold?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold?`` query and 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:CLOCk:THReshold value`` command.

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``<NR3>`` is the logic clock threshold.
        """
        return self._threshold


#  pylint: disable=too-many-instance-attributes
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:
        - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk`` command tree.
        - ``.deltatime``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime`` command.
        - ``.function``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.
        - ``.input``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT`` command tree.
        - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel`` command tree.
        - ``.logicpattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern`` command tree.
        - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity`` command.
        - ``.useclockedge``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge`` command.
        - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:WHEn`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._clock = SearchSearchItemTriggerALogicClock(device, f"{self._cmd_syntax}:CLOCk")
        self._deltatime = SearchSearchItemTriggerALogicDeltatime(
            device, f"{self._cmd_syntax}:DELTatime"
        )
        self._function = SearchSearchItemTriggerALogicFunction(
            device, f"{self._cmd_syntax}:FUNCtion"
        )
        self._input = SearchSearchItemTriggerALogicInput(device, f"{self._cmd_syntax}:INPUT")
        self._level = SearchSearchItemTriggerALogicLevel(device, f"{self._cmd_syntax}:LEVel")
        self._logicpattern = SearchSearchItemTriggerALogicLogicpattern(
            device, f"{self._cmd_syntax}:LOGICPattern"
        )
        self._polarity = SearchSearchItemTriggerALogicPolarity(
            device, f"{self._cmd_syntax}:POLarity"
        )
        self._useclockedge = SearchSearchItemTriggerALogicUseclockedge(
            device, f"{self._cmd_syntax}:USEClockedge"
        )
        self._when = SearchSearchItemTriggerALogicWhen(device, f"{self._cmd_syntax}:WHEn")

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

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

        Sub-properties:
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk:THReshold`` command.
        """
        return self._clock

    @property
    def deltatime(self) -> SearchSearchItemTriggerALogicDeltatime:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime`` command.

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

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime?

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

    @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``.

        **Info:**
            - ``CH<x>`` specifies an analog channel as the search source, where the channel number
              is specified by x.

        Sub-properties:
            - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT:CLOCK`` command tree.
        """
        return self._input

    @property
    def level(self) -> SearchSearchItemTriggerALogicLevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel:REF<x>`` command.
        """
        return self._level

    @property
    def logicpattern(self) -> SearchSearchItemTriggerALogicLogicpattern:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern`` command tree.

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

        Sub-properties:
            - ``.ch``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:CH<x>`` command.
            - ``.math``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:MATH<x>`` command.
            - ``.ref``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern:REF<x>`` command.
        """
        return self._logicpattern

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

        **Description:**
            - This command sets or queries the polarity for the clock channel when Use Clock Edge is
              set to Yes for Logic search type. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity {POSitive|NEGative|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity?

        **Info:**
            - ``POSitive`` specifies using the positive clock edge.
            - ``NEGative`` specifies using negative clock edge.
            - ``EITher`` specifies using either the positive or negative clock edge.
        """
        return self._polarity

    @property
    def useclockedge(self) -> SearchSearchItemTriggerALogicUseclockedge:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge`` command.

        **Description:**
            - This command specifies whether or not Logic search uses a clock source. The search
              number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge {OFF|ON|0|1}
            - SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge?

        **Info:**
            - ``OFF`` specifies not to use the clock source.
            - ``ON`` specifies to use the clock source.
            - ``0`` specifies not to use the clock source.
            - ``1`` specifies to use the clock source.
        """
        return self._useclockedge

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

        **Description:**
            - This command sets or queries the condition for generating an A or B logic search with
              respect to the defined input pattern.

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

        **SCPI Syntax:**

        ::

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

        **Info:**
            - ``TRUe`` searches on an input value that is true.
            - ``FALSe`` searches on an input value that is false.
            - ``MOREthan`` searches on an input value that is greater than a set value.
            - ``LESSthan`` searches on an input value that is less than a set value.
            - ``EQual`` searches on an input value that is equal to a set value.
            - ``UNEQual`` searches on an input value that is not equal to a set value.
        """
        return self._when


class SearchSearchItemTriggerAEdgeThreshold(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold`` command.

    **Description:**
        - This command sets or queries the source threshold level for an edge 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:EDGE:THReshold?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold?`` query and 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:THReshold value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold?

    **Info:**
        - ``<NR3>`` is the source threshold level for an edge trigger search.
    """


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. The search number is specified by x.

    **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>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?

    **Info:**
        - ``CH<x>`` specifies one input channel as the edge source, where the channel number is
          specified by x.
        - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
        - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
          specified by x.
        - ``REF<x>`` specifies the reference waveform as the search source, where the reference
          number is specified by x.
        - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
          specified search.
    """


class SearchSearchItemTriggerAEdgeSlope(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command.

    **Description:**
        - This command sets or queries the slope for an edge 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: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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
        - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe?

    **Info:**
        - ``RISe`` specifies a rising edge.
        - ``FALL`` specifies a falling edge.
        - ``EITher`` specifies either rising or falling edge.
    """


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.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.
        - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold`` 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")
        self._threshold = SearchSearchItemTriggerAEdgeThreshold(
            device, f"{self._cmd_syntax}:THReshold"
        )

    @property
    def slope(self) -> SearchSearchItemTriggerAEdgeSlope:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe`` command.

        **Description:**
            - This command sets or queries the slope for an edge 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: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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe {RISe|FALL|EITher}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SLOpe?

        **Info:**
            - ``RISe`` specifies a rising edge.
            - ``FALL`` specifies a falling edge.
            - ``EITher`` specifies either rising or falling edge.
        """
        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. The search number is specified by x.

        **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>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce?

        **Info:**
            - ``CH<x>`` specifies one input channel as the edge source, where the channel number is
              specified by x.
            - ``CH<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
            - ``MATH<x>`` specifies the math waveform as the search source, where the math number is
              specified by x.
            - ``REF<x>`` specifies the reference waveform as the search source, where the reference
              number is specified by x.
            - ``REF<x>_D<x>`` specifies a digital reference waveform as the source waveform for the
              specified search.
        """
        return self._source

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

        **Description:**
            - This command sets or queries the source threshold level for an edge 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:EDGE:THReshold?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold?`` query and 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:THReshold value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold?

        **Info:**
            - ``<NR3>`` is the source threshold level for an edge trigger search.
        """
        return self._threshold


class SearchSearchItemTriggerADdrwriteTolerance(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance`` command.

    **Description:**
        - This command sets or queries the DDR write logic state tolerance value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state tolerance value.
    """


class SearchSearchItemTriggerADdrwriteStrobesource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource`` command.

    **Description:**
        - This command sets or queries the DDR write strobe source when the search type is DDR
          Write.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR write strobe source for the specified search
          <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write strobe
          source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR write strobe source for the specified
          search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR write strobe source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR write
          strobe source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrwriteStandard(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard`` command.

    **Description:**
        - This command sets or queries the DDR write search standard as DDR3 or LPDDR3.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard {DDR3|LPDDR3}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard?

    **Info:**
        - ``DDR3`` sets the DDR write search standard as DDR3.
        - ``LPDDR3`` sets the DDR write search standard as LPDDR3.
    """


class SearchSearchItemTriggerADdrwriteReflevelStrobeMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID`` command.

    **Description:**
        - This command sets or queries the DDR write reference level strobe mid value, when the
          search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID?

    **Info:**
        - ``NR3`` sets the DDR read search strobe mid reference value.
    """


class SearchSearchItemTriggerADdrwriteReflevelStrobeLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW`` command.

    **Description:**
        - This command sets or queries the DDR write reference level strobe low value, when the
          search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW?

    **Info:**
        - ``NR3`` sets the DDR read search strobe low reference value.
    """


class SearchSearchItemTriggerADdrwriteReflevelStrobeHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR write reference level strobe high value, when the
          search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH?

    **Info:**
        - ``NR3`` sets the DDR write search strobe high value.
    """


class SearchSearchItemTriggerADdrwriteReflevelStrobe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrwriteReflevelStrobeHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR write reference level strobe high value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH?

        **Info:**
            - ``NR3`` sets the DDR write search strobe high value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrwriteReflevelStrobeLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW`` command.

        **Description:**
            - This command sets or queries the DDR write reference level strobe low value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW?

        **Info:**
            - ``NR3`` sets the DDR read search strobe low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrwriteReflevelStrobeMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID`` command.

        **Description:**
            - This command sets or queries the DDR write reference level strobe mid value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID?

        **Info:**
            - ``NR3`` sets the DDR read search strobe mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrwriteReflevelDataMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID`` command.

    **Description:**
        - This command sets or queries the DDR write data mid reference level value, when the search
          type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID?

    **Info:**
        - ``NR3`` sets the DDR read search data mid reference value.
    """


class SearchSearchItemTriggerADdrwriteReflevelDataLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW`` command.

    **Description:**
        - This command sets or queries the DDR write data low reference level value, when the search
          type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW?

    **Info:**
        - ``NR3`` sets the DDR read search data low reference value.
    """


class SearchSearchItemTriggerADdrwriteReflevelDataHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR write data high reference level value, when the
          search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH?

    **Info:**
        - ``NR3`` sets the DDR read search data high reference value.
    """


class SearchSearchItemTriggerADdrwriteReflevelData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrwriteReflevelDataHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR write data high reference level value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH?

        **Info:**
            - ``NR3`` sets the DDR read search data high reference value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrwriteReflevelDataLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW`` command.

        **Description:**
            - This command sets or queries the DDR write data low reference level value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW?

        **Info:**
            - ``NR3`` sets the DDR read search data low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrwriteReflevelDataMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID`` command.

        **Description:**
            - This command sets or queries the DDR write data mid reference level value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID?

        **Info:**
            - ``NR3`` sets the DDR read search data mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrwriteReflevel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA`` command tree.
        - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerADdrwriteReflevelData(
            device, f"{self._cmd_syntax}:DATA"
        )
        self._strobe = SearchSearchItemTriggerADdrwriteReflevelStrobe(
            device, f"{self._cmd_syntax}:STROBE"
        )

    @property
    def data(self) -> SearchSearchItemTriggerADdrwriteReflevelData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA:MID`` command.
        """
        return self._data

    @property
    def strobe(self) -> SearchSearchItemTriggerADdrwriteReflevelStrobe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE:MID`` command.
        """
        return self._strobe


class SearchSearchItemTriggerADdrwriteReflevelmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode`` command.

    **Description:**
        - This command sets or queries the DDR write reference level mode to auto or manual, when
          the search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode {AUTO|MANUAL}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode?

    **Info:**
        - ``AUTO`` sets the DDR write reference level mode to auto.
        - ``MANUAL`` sets the DDR write reference level mode to manual. Use the Related Commands to
          set the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrwritePreambleType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE`` command.

    **Description:**
        - This command sets or queries the DDR write preamble type when the search type is DDR
          WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE?

    **Info:**
        - ``STATIC`` sets the DDR Write preamble type to Static.
        - ``DYNAMIC`` sets the DDR Write preamble type to Dynamic.
    """


class SearchSearchItemTriggerADdrwritePreamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerADdrwritePreambleType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE`` command.

        **Description:**
            - This command sets or queries the DDR write preamble type when the search type is DDR
              WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE?

        **Info:**
            - ``STATIC`` sets the DDR Write preamble type to Static.
            - ``DYNAMIC`` sets the DDR Write preamble type to Dynamic.
        """
        return self._type


class SearchSearchItemTriggerADdrwritePostambleLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth`` command.

    **Description:**
        - This command sets or queries the DDR write postamble length when the search type is DDR
          WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth?

    **Info:**
        - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
        - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
        - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
    """


class SearchSearchItemTriggerADdrwritePostamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE`` command tree.

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

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth`` command.
    """

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

    @property
    def length(self) -> SearchSearchItemTriggerADdrwritePostambleLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth`` command.

        **Description:**
            - This command sets or queries the DDR write postamble length when the search type is
              DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth?

        **Info:**
            - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
            - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
            - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
        """
        return self._length


class SearchSearchItemTriggerADdrwriteMincas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas`` command.

    **Description:**
        - This command sets or queries the DDR write chip select minimum Column Access Strobe (CAS)
          value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR write chip select CAS minimum value.
    """


class SearchSearchItemTriggerADdrwriteMaxcas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS`` command.

    **Description:**
        - This command sets or queries the DDR write chip select maximum Column Access Strobe (CAS)
          value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR write chip select CAS maximum value.
    """


class SearchSearchItemTriggerADdrwriteMargin(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin`` command.

    **Description:**
        - This command sets or queries the DDR write margin reference level value, when the search
          type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin?

    **Info:**
        - ``NR3`` sets the DDR write search margin percent value in the range of 0% to 100%.
    """


class SearchSearchItemTriggerADdrwriteLogic4sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR write logic source 4 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 4 symbol to H (High).
        - ``L`` sets the logic source 4 symbol to L (Low).
        - ``X`` sets the logic source 4 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrwriteLogic4source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrwriteLogic4sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR write logic source 4 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 4 symbol to H (High).
            - ``L`` sets the logic source 4 symbol to L (Low).
            - ``X`` sets the logic source 4 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrwriteLogic3sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR write logic source 3 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 3 symbol to H (High).
        - ``L`` sets the logic source 3 symbol to L (Low).
        - ``X`` sets the logic source 3 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrwriteLogic3source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrwriteLogic3sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR write logic source 3 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 3 symbol to H (High).
            - ``L`` sets the logic source 3 symbol to L (Low).
            - ``X`` sets the logic source 3 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrwriteLogic2sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR write logic source 2 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 2 symbol to H (High).
        - ``L`` sets the logic source 2 symbol to L (Low).
        - ``X`` sets the logic source 2 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrwriteLogic2source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrwriteLogic2sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR write logic source 2 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 2 symbol to H (High).
            - ``L`` sets the logic source 2 symbol to L (Low).
            - ``X`` sets the logic source 2 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrwriteLogic1sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR write logic source 1 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 1 symbol to H (High).
        - ``L`` sets the logic source 1 symbol to L (Low).
        - ``X`` sets the logic source 1 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrwriteLogic1source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrwriteLogic1sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR write logic source 1 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 1 symbol to H (High).
            - ``L`` sets the logic source 1 symbol to L (Low).
            - ``X`` sets the logic source 1 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrwriteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis`` command.

    **Description:**
        - This command sets or queries the DDR write hysteresis reference level value, when the
          search type is DDR WRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis?

    **Info:**
        - ``NR3`` sets the DDR write search hysteresis percent value in the range of 0% to 50%.
    """


class SearchSearchItemTriggerADdrwriteDatasource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource`` command.

    **Description:**
        - This command sets or queries the DDR write data source when the search type is DDR Write.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR write data source for the specified search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write data source
          for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR write data source for the specified
          search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR write data source for the specified
          search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR write
          data source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrwriteDatarate(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate`` command.

    **Description:**
        - This command sets or queries the DDR write search data rate for DDR3 and LPDRR3 standards
          of the specified search. The DDR3 standard supports the following data rates:
          800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data rates:
          333|800|1066|1200|1333|1466|1600|1866|2133.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate?

    **Info:**
        - ``333`` sets the data rate to 333.
        - ``800`` sets the data rate to 800.
        - ``1066`` sets the data rate to 1066.
        - ``1200`` sets the data rate to 1200.
        - ``1333`` sets the data rate to 1333.
        - ``1466`` sets the data rate to 1466.
        - ``1600`` sets the data rate to 1600.
        - ``1866`` sets the data rate to 1866.
        - ``2133`` sets the data rate to 2133.
    """


class SearchSearchItemTriggerADdrwriteCssource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource`` command.

    **Description:**
        - This command sets or queries the DDR Write search chip select source.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``CH<x>`` specifies channel <x> as the DDR write chip select source for the specified
          search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write strobe
          source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR write chip select source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR write chip select source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR write
          strobe source for the specified search <x>.
    """


class SearchSearchItemTriggerADdrwriteCsmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode`` command.

    **Description:**
        - This command sets or queries the DDR Write chip select mode.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode {Auto|Manual}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``Auto`` sets the DDR write chip select mode to auto.
        - ``Manual`` sets the DDR write chip select mode to manual. Use the Related Commands to set
          the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrwriteCslevel(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel`` command.

    **Description:**
        - This command sets or queries the DDR Write chip select level value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR write chip select level value.
    """


class SearchSearchItemTriggerADdrwriteCsactive(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive`` command.

    **Description:**
        - This command sets or queries the DDR write chip select active state.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive {LOW|HIGH}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``LOW`` sets the DDR write chip select active state to low.
        - ``HIGH`` sets the DDR write chip select active state to high.
    """


class SearchSearchItemTriggerADdrwriteBurstlatency(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency`` command.

    **Description:**
        - This command sets or queries the DDR write logic state burst latency value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state burst latency value.
    """


class SearchSearchItemTriggerADdrwriteBurstlength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH`` command.

    **Description:**
        - This command sets or queries the DDR write logic state burst length value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR1`` sets the logic state burst length value.
    """


class SearchSearchItemTriggerADdrwriteBurstdetectmethod(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod`` command.

    **Description:**
        - This command sets or queries the DDRWRITE search burst detection method.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod?

    **Info:**
        - ``DQDQS`` sets the write burst detection method to DQDQS.
        - ``ChipSelect`` sets the write burst detection method to ChipSelect.
        - ``LogicState`` sets the write burst detection method to LogicState.
    """


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class SearchSearchItemTriggerADdrwrite(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE`` command tree.

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

    Properties:
        - ``.burstdetectmethod``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod``
          command.
        - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH`` command.
        - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency`` command.
        - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive`` command.
        - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel`` command.
        - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode`` command.
        - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource`` command.
        - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate`` command.
        - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource`` command.
        - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis`` command.
        - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce`` command tree.
        - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce`` command tree.
        - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce`` command tree.
        - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce`` command tree.
        - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin`` command.
        - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS`` command.
        - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas`` command.
        - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE`` command tree.
        - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE`` command tree.
        - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode`` command.
        - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel`` command tree.
        - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard`` command.
        - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource`` command.
        - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._burstdetectmethod = SearchSearchItemTriggerADdrwriteBurstdetectmethod(
            device, f"{self._cmd_syntax}:BURSTDETectmethod"
        )
        self._burstlength = SearchSearchItemTriggerADdrwriteBurstlength(
            device, f"{self._cmd_syntax}:BURSTLENGTH"
        )
        self._burstlatency = SearchSearchItemTriggerADdrwriteBurstlatency(
            device, f"{self._cmd_syntax}:BURSTLatency"
        )
        self._csactive = SearchSearchItemTriggerADdrwriteCsactive(
            device, f"{self._cmd_syntax}:CSActive"
        )
        self._cslevel = SearchSearchItemTriggerADdrwriteCslevel(
            device, f"{self._cmd_syntax}:CSLevel"
        )
        self._csmode = SearchSearchItemTriggerADdrwriteCsmode(device, f"{self._cmd_syntax}:CSMode")
        self._cssource = SearchSearchItemTriggerADdrwriteCssource(
            device, f"{self._cmd_syntax}:CSSource"
        )
        self._datarate = SearchSearchItemTriggerADdrwriteDatarate(
            device, f"{self._cmd_syntax}:DATARate"
        )
        self._datasource = SearchSearchItemTriggerADdrwriteDatasource(
            device, f"{self._cmd_syntax}:DATASource"
        )
        self._hysteresis = SearchSearchItemTriggerADdrwriteHysteresis(
            device, f"{self._cmd_syntax}:HYSteresis"
        )
        self._logic1source = SearchSearchItemTriggerADdrwriteLogic1source(
            device, f"{self._cmd_syntax}:LOGIC1SOUrce"
        )
        self._logic2source = SearchSearchItemTriggerADdrwriteLogic2source(
            device, f"{self._cmd_syntax}:LOGIC2SOUrce"
        )
        self._logic3source = SearchSearchItemTriggerADdrwriteLogic3source(
            device, f"{self._cmd_syntax}:LOGIC3SOUrce"
        )
        self._logic4source = SearchSearchItemTriggerADdrwriteLogic4source(
            device, f"{self._cmd_syntax}:LOGIC4SOUrce"
        )
        self._margin = SearchSearchItemTriggerADdrwriteMargin(device, f"{self._cmd_syntax}:MARgin")
        self._maxcas = SearchSearchItemTriggerADdrwriteMaxcas(device, f"{self._cmd_syntax}:MAXCAS")
        self._mincas = SearchSearchItemTriggerADdrwriteMincas(device, f"{self._cmd_syntax}:MINCas")
        self._postamble = SearchSearchItemTriggerADdrwritePostamble(
            device, f"{self._cmd_syntax}:POSTAMBLE"
        )
        self._preamble = SearchSearchItemTriggerADdrwritePreamble(
            device, f"{self._cmd_syntax}:PREAMBLE"
        )
        self._reflevelmode = SearchSearchItemTriggerADdrwriteReflevelmode(
            device, f"{self._cmd_syntax}:REFLEVELMode"
        )
        self._reflevel = SearchSearchItemTriggerADdrwriteReflevel(
            device, f"{self._cmd_syntax}:REFLevel"
        )
        self._standard = SearchSearchItemTriggerADdrwriteStandard(
            device, f"{self._cmd_syntax}:STANdard"
        )
        self._strobesource = SearchSearchItemTriggerADdrwriteStrobesource(
            device, f"{self._cmd_syntax}:STROBESource"
        )
        self._tolerance = SearchSearchItemTriggerADdrwriteTolerance(
            device, f"{self._cmd_syntax}:TOLERance"
        )

    @property
    def burstdetectmethod(self) -> SearchSearchItemTriggerADdrwriteBurstdetectmethod:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod`` command.

        **Description:**
            - This command sets or queries the DDRWRITE search burst detection method.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod?

        **Info:**
            - ``DQDQS`` sets the write burst detection method to DQDQS.
            - ``ChipSelect`` sets the write burst detection method to ChipSelect.
            - ``LogicState`` sets the write burst detection method to LogicState.
        """
        return self._burstdetectmethod

    @property
    def burstlength(self) -> SearchSearchItemTriggerADdrwriteBurstlength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH`` command.

        **Description:**
            - This command sets or queries the DDR write logic state burst length value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR1`` sets the logic state burst length value.
        """
        return self._burstlength

    @property
    def burstlatency(self) -> SearchSearchItemTriggerADdrwriteBurstlatency:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency`` command.

        **Description:**
            - This command sets or queries the DDR write logic state burst latency value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state burst latency value.
        """
        return self._burstlatency

    @property
    def csactive(self) -> SearchSearchItemTriggerADdrwriteCsactive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive`` command.

        **Description:**
            - This command sets or queries the DDR write chip select active state.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive {LOW|HIGH}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``LOW`` sets the DDR write chip select active state to low.
            - ``HIGH`` sets the DDR write chip select active state to high.
        """
        return self._csactive

    @property
    def cslevel(self) -> SearchSearchItemTriggerADdrwriteCslevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel`` command.

        **Description:**
            - This command sets or queries the DDR Write chip select level value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR write chip select level value.
        """
        return self._cslevel

    @property
    def csmode(self) -> SearchSearchItemTriggerADdrwriteCsmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode`` command.

        **Description:**
            - This command sets or queries the DDR Write chip select mode.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode {Auto|Manual}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``Auto`` sets the DDR write chip select mode to auto.
            - ``Manual`` sets the DDR write chip select mode to manual. Use the Related Commands to
              set the Reference levels when in Manual mode.
        """
        return self._csmode

    @property
    def cssource(self) -> SearchSearchItemTriggerADdrwriteCssource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource`` command.

        **Description:**
            - This command sets or queries the DDR Write search chip select source.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``CH<x>`` specifies channel <x> as the DDR write chip select source for the specified
              search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write strobe
              source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR write chip select source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR write chip select source for
              the specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              write strobe source for the specified search <x>.
        """  # noqa: E501
        return self._cssource

    @property
    def datarate(self) -> SearchSearchItemTriggerADdrwriteDatarate:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate`` command.

        **Description:**
            - This command sets or queries the DDR write search data rate for DDR3 and LPDRR3
              standards of the specified search. The DDR3 standard supports the following data
              rates: 800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data
              rates: 333|800|1066|1200|1333|1466|1600|1866|2133.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate?

        **Info:**
            - ``333`` sets the data rate to 333.
            - ``800`` sets the data rate to 800.
            - ``1066`` sets the data rate to 1066.
            - ``1200`` sets the data rate to 1200.
            - ``1333`` sets the data rate to 1333.
            - ``1466`` sets the data rate to 1466.
            - ``1600`` sets the data rate to 1600.
            - ``1866`` sets the data rate to 1866.
            - ``2133`` sets the data rate to 2133.
        """  # noqa: E501
        return self._datarate

    @property
    def datasource(self) -> SearchSearchItemTriggerADdrwriteDatasource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource`` command.

        **Description:**
            - This command sets or queries the DDR write data source when the search type is DDR
              Write.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR write data source for the specified search
              <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write data
              source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR write data source for the specified
              search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR write data source for the
              specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              write data source for the specified search <x>.
        """  # noqa: E501
        return self._datasource

    @property
    def hysteresis(self) -> SearchSearchItemTriggerADdrwriteHysteresis:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis`` command.

        **Description:**
            - This command sets or queries the DDR write hysteresis reference level value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis?

        **Info:**
            - ``NR3`` sets the DDR write search hysteresis percent value in the range of 0% to 50%.
        """
        return self._hysteresis

    @property
    def logic1source(self) -> SearchSearchItemTriggerADdrwriteLogic1source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce:SYMBol`` command.
        """
        return self._logic1source

    @property
    def logic2source(self) -> SearchSearchItemTriggerADdrwriteLogic2source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce:SYMBol`` command.
        """
        return self._logic2source

    @property
    def logic3source(self) -> SearchSearchItemTriggerADdrwriteLogic3source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce:SYMBol`` command.
        """
        return self._logic3source

    @property
    def logic4source(self) -> SearchSearchItemTriggerADdrwriteLogic4source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce:SYMBol`` command.
        """
        return self._logic4source

    @property
    def margin(self) -> SearchSearchItemTriggerADdrwriteMargin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin`` command.

        **Description:**
            - This command sets or queries the DDR write margin reference level value, when the
              search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin?

        **Info:**
            - ``NR3`` sets the DDR write search margin percent value in the range of 0% to 100%.
        """
        return self._margin

    @property
    def maxcas(self) -> SearchSearchItemTriggerADdrwriteMaxcas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS`` command.

        **Description:**
            - This command sets or queries the DDR write chip select maximum Column Access Strobe
              (CAS) value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR write chip select CAS maximum value.
        """
        return self._maxcas

    @property
    def mincas(self) -> SearchSearchItemTriggerADdrwriteMincas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas`` command.

        **Description:**
            - This command sets or queries the DDR write chip select minimum Column Access Strobe
              (CAS) value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR write chip select CAS minimum value.
        """
        return self._mincas

    @property
    def postamble(self) -> SearchSearchItemTriggerADdrwritePostamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE`` command tree.

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

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE:LENGth`` command.
        """
        return self._postamble

    @property
    def preamble(self) -> SearchSearchItemTriggerADdrwritePreamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE:TYPE`` command.
        """
        return self._preamble

    @property
    def reflevelmode(self) -> SearchSearchItemTriggerADdrwriteReflevelmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode`` command.

        **Description:**
            - This command sets or queries the DDR write reference level mode to auto or manual,
              when the search type is DDR WRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode {AUTO|MANUAL}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode?

        **Info:**
            - ``AUTO`` sets the DDR write reference level mode to auto.
            - ``MANUAL`` sets the DDR write reference level mode to manual. Use the Related Commands
              to set the Reference levels when in Manual mode.
        """
        return self._reflevelmode

    @property
    def reflevel(self) -> SearchSearchItemTriggerADdrwriteReflevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel`` command tree.

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

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:DATA`` command tree.
            - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel:STROBE`` command tree.
        """
        return self._reflevel

    @property
    def standard(self) -> SearchSearchItemTriggerADdrwriteStandard:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard`` command.

        **Description:**
            - This command sets or queries the DDR write search standard as DDR3 or LPDDR3.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard {DDR3|LPDDR3}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard?

        **Info:**
            - ``DDR3`` sets the DDR write search standard as DDR3.
            - ``LPDDR3`` sets the DDR write search standard as LPDDR3.
        """
        return self._standard

    @property
    def strobesource(self) -> SearchSearchItemTriggerADdrwriteStrobesource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource`` command.

        **Description:**
            - This command sets or queries the DDR write strobe source when the search type is DDR
              Write.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR write strobe source for the specified
              search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR write strobe
              source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR write strobe source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR write strobe source for the
              specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              write strobe source for the specified search <x>.
        """  # noqa: E501
        return self._strobesource

    @property
    def tolerance(self) -> SearchSearchItemTriggerADdrwriteTolerance:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance`` command.

        **Description:**
            - This command sets or queries the DDR write logic state tolerance value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state tolerance value.
        """
        return self._tolerance


class SearchSearchItemTriggerADdrreadwriteTolerance(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic state tolerance value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state tolerance value.
    """


class SearchSearchItemTriggerADdrreadwriteStrobesource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource`` command.

    **Description:**
        - This command sets or queries the DDR readwrite strobe source when the search type is DDR
          READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR read/write strobe source for the specified
          search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write strobe
          source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read/write strobe source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read/write strobe source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
          read/write strobe source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadwriteStandard(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard`` command.

    **Description:**
        - This command sets or queries the DDR read/write search standard as DDR3 or LPDDR3.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard {DDR3|LPDDR3}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard?

    **Info:**
        - ``DDR3`` sets the DDR read/write search standard as DDR3.
        - ``LPDDR3`` sets the DDR read/write search standard as LPDDR3.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelStrobeMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID`` command.

    **Description:**
        - This command sets or queries the DDR read/write reference level strobe mid value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID?

    **Info:**
        - ``NR3`` sets the DDR read/write search strobe mid reference value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelStrobeLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW`` command.

    **Description:**
        - This command sets or queries the DDR read/write reference level strobe low value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW?

    **Info:**
        - ``NR3`` sets the DDR read/write search strobe low reference value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelStrobeHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR read/write reference level strobe high value, when
          the search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH?

    **Info:**
        - ``NR3`` sets the DDR read search strobe high value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelStrobe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrreadwriteReflevelStrobeHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR read/write reference level strobe high value,
              when the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH?

        **Info:**
            - ``NR3`` sets the DDR read search strobe high value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrreadwriteReflevelStrobeLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW`` command.

        **Description:**
            - This command sets or queries the DDR read/write reference level strobe low value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW?

        **Info:**
            - ``NR3`` sets the DDR read/write search strobe low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrreadwriteReflevelStrobeMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID`` command.

        **Description:**
            - This command sets or queries the DDR read/write reference level strobe mid value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID?

        **Info:**
            - ``NR3`` sets the DDR read/write search strobe mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrreadwriteReflevelDataMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID`` command.

    **Description:**
        - This command sets or queries the DDR read/write data mid reference level value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID?

    **Info:**
        - ``NR3`` sets the DDR read/write search data mid reference value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelDataLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW`` command.

    **Description:**
        - This command sets or queries the DDR read/write data low reference level value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW?

    **Info:**
        - ``NR3`` sets the DDR read/write search data low reference value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelDataHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR read/write data high reference level value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH?

    **Info:**
        - ``NR3`` sets the DDR read/write search data high reference value.
    """


class SearchSearchItemTriggerADdrreadwriteReflevelData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrreadwriteReflevelDataHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR read/write data high reference level value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH?

        **Info:**
            - ``NR3`` sets the DDR read/write search data high reference value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrreadwriteReflevelDataLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW`` command.

        **Description:**
            - This command sets or queries the DDR read/write data low reference level value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW?

        **Info:**
            - ``NR3`` sets the DDR read/write search data low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrreadwriteReflevelDataMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID`` command.

        **Description:**
            - This command sets or queries the DDR read/write data mid reference level value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID?

        **Info:**
            - ``NR3`` sets the DDR read/write search data mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrreadwriteReflevel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA`` command tree.
        - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerADdrreadwriteReflevelData(
            device, f"{self._cmd_syntax}:DATA"
        )
        self._strobe = SearchSearchItemTriggerADdrreadwriteReflevelStrobe(
            device, f"{self._cmd_syntax}:STROBE"
        )

    @property
    def data(self) -> SearchSearchItemTriggerADdrreadwriteReflevelData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA:MID`` command.
        """
        return self._data

    @property
    def strobe(self) -> SearchSearchItemTriggerADdrreadwriteReflevelStrobe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:HIGH``
              command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE:MID`` command.
        """
        return self._strobe


class SearchSearchItemTriggerADdrreadwriteReflevelmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode`` command.

    **Description:**
        - This command sets or queries the DDR read/write reference level mode to auto or manual,
          when the search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode {AUTO|MANUAL}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode?

    **Info:**
        - ``AUTO`` sets the DDR read/write reference level mode to auto.
        - ``MANUAL`` sets the DDR read/write reference level mode to manual. Use the Related
          Commands to set the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrreadwritePreambleType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE`` command.

    **Description:**
        - This command sets or queries the DDR read/write preamble type when the search type is DDR
          READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE?

    **Info:**
        - ``STATIC`` sets the DDR Read/Write preamble type to Static.
        - ``DYNAMIC`` sets the DDR Read/Write preamble type to Dynamic.
    """


class SearchSearchItemTriggerADdrreadwritePreamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerADdrreadwritePreambleType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE`` command.

        **Description:**
            - This command sets or queries the DDR read/write preamble type when the search type is
              DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE {STATIC|DYNAMIC}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE?

        **Info:**
            - ``STATIC`` sets the DDR Read/Write preamble type to Static.
            - ``DYNAMIC`` sets the DDR Read/Write preamble type to Dynamic.
        """
        return self._type


class SearchSearchItemTriggerADdrreadwritePostambleLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth`` command.

    **Description:**
        - This command sets or queries the DDR read/write postamble length when the search type is
          DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth?

    **Info:**
        - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
        - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
        - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
    """


class SearchSearchItemTriggerADdrreadwritePostamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE`` command tree.

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

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth`` command.
    """

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

    @property
    def length(self) -> SearchSearchItemTriggerADdrreadwritePostambleLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth`` command.

        **Description:**
            - This command sets or queries the DDR read/write postamble length when the search type
              is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth?

        **Info:**
            - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
            - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
            - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
        """
        return self._length


class SearchSearchItemTriggerADdrreadwriteMincas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas`` command.

    **Description:**
        - This command sets or queries the DDR read/write chip minimum Column Access Strobe (CAS)
          value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read chip select CAS minimum value.
    """


class SearchSearchItemTriggerADdrreadwriteMaxcas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS`` command.

    **Description:**
        - This command sets or queries the DDR read/write chip maximum Column Access Strobe (CAS)
          value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read chip select CAS maximum value.
    """


class SearchSearchItemTriggerADdrreadwriteMargin(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin`` command.

    **Description:**
        - This command sets or queries the DDR read/write margin reference level value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin?

    **Info:**
        - ``NR3`` sets the DDR read/write search margin percent value in the range of 0% to 100%.
    """


class SearchSearchItemTriggerADdrreadwriteLogic4sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic source 4 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 4 symbol to H (High).
        - ``L`` sets the logic source 4 symbol to L (Low).
        - ``X`` sets the logic source 4 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadwriteLogic4source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadwriteLogic4sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic source 4 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 4 symbol to H (High).
            - ``L`` sets the logic source 4 symbol to L (Low).
            - ``X`` sets the logic source 4 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadwriteLogic3sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic source 3 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 3 symbol to H (High).
        - ``L`` sets the logic source 3 symbol to L (Low).
        - ``X`` sets the logic source 3 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadwriteLogic3source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadwriteLogic3sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic source 3 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 3 symbol to H (High).
            - ``L`` sets the logic source 3 symbol to L (Low).
            - ``X`` sets the logic source 3 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadwriteLogic2sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic source 2 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 2 symbol to H (High).
        - ``L`` sets the logic source 2 symbol to L (Low).
        - ``X`` sets the logic source 2 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadwriteLogic2source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadwriteLogic2sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic source 2 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 2 symbol to H (High).
            - ``L`` sets the logic source 2 symbol to L (Low).
            - ``X`` sets the logic source 2 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadwriteLogic1sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic source 1 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 1 symbol to H (High).
        - ``L`` sets the logic source 1 symbol to L (Low).
        - ``X`` sets the logic source 1 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadwriteLogic1source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadwriteLogic1sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic source 1 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 1 symbol to H (High).
            - ``L`` sets the logic source 1 symbol to L (Low).
            - ``X`` sets the logic source 1 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadwriteHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis`` command.

    **Description:**
        - This command sets or queries the DDR read/write hysteresis reference level value, when the
          search type is DDR READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis?

    **Info:**
        - ``NR3`` sets the DDR read/write search hysteresis percent value in the range of 0% to 50%.
    """


class SearchSearchItemTriggerADdrreadwriteDatasource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource`` command.

    **Description:**
        - This command sets or queries the DDR read/write data source when the search type is DDR
          READWRITE.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR read/write data source for the specified search
          <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write data
          source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read/write data source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read/write data source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
          read/write data source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadwriteDatarate(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate`` command.

    **Description:**
        - This command sets or queries the DDR read/write data rate for DDR3 and LPDRR3 standards of
          the specified search. The DDR3 standard supports the following data rates:
          800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data rates:
          333|800|1066|1200|1333|1466|1600|1866|2133.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate?

    **Info:**
        - ``333`` sets the data rate to 333.
        - ``800`` sets the data rate to 800.
        - ``1066`` sets the data rate to 1066.
        - ``1200`` sets the data rate to 1200.
        - ``1333`` sets the data rate to 1333.
        - ``1466`` sets the data rate to 1466.
        - ``1600`` sets the data rate to 1600.
        - ``1866`` sets the data rate to 1866.
        - ``2133`` sets the data rate to 2133.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadwriteCssource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource`` command.

    **Description:**
        - This command sets or queries the DDR Read/Write search chip select source.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource {CH<x>|CH<x>_D<x>|Math<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``CH<x>`` specifies channel <x> as the DDR read/write chip select source for the specified
          search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write strobe
          source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read/write chip select source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read/write chip select source for
          the specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
          read/write strobe source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadwriteCsmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode`` command.

    **Description:**
        - This command sets or queries the DDR read/write chip select mode.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode {Auto|Manual}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``Auto`` sets the DDR read/write chip select mode to auto.
        - ``Manual`` sets the DDR read/write chip select mode to manual. Use the Related Commands to
          set the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrreadwriteCslevel(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel`` command.

    **Description:**
        - This command sets or queries the DDR Read/Write chip select level value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read/write chip select level value.
    """


class SearchSearchItemTriggerADdrreadwriteCsactive(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive`` command.

    **Description:**
        - This command sets or queries the DDR Read/Write chip select active state.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive {LOW|HIGH}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``LOW`` sets the DDR read/write chip select active state to low.
        - ``HIGH`` sets the DDR read/write chip select active state to high.
    """


class SearchSearchItemTriggerADdrreadwriteBurstlatency(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic state burst latency value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state burst latency value.
    """


class SearchSearchItemTriggerADdrreadwriteBurstlength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH`` command.

    **Description:**
        - This command sets or queries the DDR read/write logic state burst length value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR1`` sets the logic state burst length value.
    """


class SearchSearchItemTriggerADdrreadwriteBurstdetectmethod(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod`` command.

    **Description:**
        - This command sets or queries the DDR Read/Write search burst detection method.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod?

    **Info:**
        - ``DQDQS`` sets the read/write burst detection method to DQDQS.
        - ``ChipSelect`` sets the read/write burst detection method to ChipSelect.
        - ``LogicState`` sets the read/write burst detection method to LogicState.
    """


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class SearchSearchItemTriggerADdrreadwrite(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE`` command tree.

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

    Properties:
        - ``.burstdetectmethod``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod``
          command.
        - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH`` command.
        - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency`` command.
        - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive`` command.
        - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel`` command.
        - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode`` command.
        - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource`` command.
        - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate`` command.
        - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource`` command.
        - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis`` command.
        - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce`` command
          tree.
        - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce`` command
          tree.
        - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce`` command
          tree.
        - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce`` command
          tree.
        - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin`` command.
        - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS`` command.
        - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas`` command.
        - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE`` command tree.
        - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE`` command tree.
        - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode`` command.
        - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel`` command tree.
        - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard`` command.
        - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource`` command.
        - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._burstdetectmethod = SearchSearchItemTriggerADdrreadwriteBurstdetectmethod(
            device, f"{self._cmd_syntax}:BURSTDETectmethod"
        )
        self._burstlength = SearchSearchItemTriggerADdrreadwriteBurstlength(
            device, f"{self._cmd_syntax}:BURSTLENGTH"
        )
        self._burstlatency = SearchSearchItemTriggerADdrreadwriteBurstlatency(
            device, f"{self._cmd_syntax}:BURSTLatency"
        )
        self._csactive = SearchSearchItemTriggerADdrreadwriteCsactive(
            device, f"{self._cmd_syntax}:CSActive"
        )
        self._cslevel = SearchSearchItemTriggerADdrreadwriteCslevel(
            device, f"{self._cmd_syntax}:CSLevel"
        )
        self._csmode = SearchSearchItemTriggerADdrreadwriteCsmode(
            device, f"{self._cmd_syntax}:CSMode"
        )
        self._cssource = SearchSearchItemTriggerADdrreadwriteCssource(
            device, f"{self._cmd_syntax}:CSSource"
        )
        self._datarate = SearchSearchItemTriggerADdrreadwriteDatarate(
            device, f"{self._cmd_syntax}:DATARate"
        )
        self._datasource = SearchSearchItemTriggerADdrreadwriteDatasource(
            device, f"{self._cmd_syntax}:DATASource"
        )
        self._hysteresis = SearchSearchItemTriggerADdrreadwriteHysteresis(
            device, f"{self._cmd_syntax}:HYSteresis"
        )
        self._logic1source = SearchSearchItemTriggerADdrreadwriteLogic1source(
            device, f"{self._cmd_syntax}:LOGIC1SOUrce"
        )
        self._logic2source = SearchSearchItemTriggerADdrreadwriteLogic2source(
            device, f"{self._cmd_syntax}:LOGIC2SOUrce"
        )
        self._logic3source = SearchSearchItemTriggerADdrreadwriteLogic3source(
            device, f"{self._cmd_syntax}:LOGIC3SOUrce"
        )
        self._logic4source = SearchSearchItemTriggerADdrreadwriteLogic4source(
            device, f"{self._cmd_syntax}:LOGIC4SOUrce"
        )
        self._margin = SearchSearchItemTriggerADdrreadwriteMargin(
            device, f"{self._cmd_syntax}:MARgin"
        )
        self._maxcas = SearchSearchItemTriggerADdrreadwriteMaxcas(
            device, f"{self._cmd_syntax}:MAXCAS"
        )
        self._mincas = SearchSearchItemTriggerADdrreadwriteMincas(
            device, f"{self._cmd_syntax}:MINCas"
        )
        self._postamble = SearchSearchItemTriggerADdrreadwritePostamble(
            device, f"{self._cmd_syntax}:POSTAMBLE"
        )
        self._preamble = SearchSearchItemTriggerADdrreadwritePreamble(
            device, f"{self._cmd_syntax}:PREAMBLE"
        )
        self._reflevelmode = SearchSearchItemTriggerADdrreadwriteReflevelmode(
            device, f"{self._cmd_syntax}:REFLEVELMode"
        )
        self._reflevel = SearchSearchItemTriggerADdrreadwriteReflevel(
            device, f"{self._cmd_syntax}:REFLevel"
        )
        self._standard = SearchSearchItemTriggerADdrreadwriteStandard(
            device, f"{self._cmd_syntax}:STANdard"
        )
        self._strobesource = SearchSearchItemTriggerADdrreadwriteStrobesource(
            device, f"{self._cmd_syntax}:STROBESource"
        )
        self._tolerance = SearchSearchItemTriggerADdrreadwriteTolerance(
            device, f"{self._cmd_syntax}:TOLERance"
        )

    @property
    def burstdetectmethod(self) -> SearchSearchItemTriggerADdrreadwriteBurstdetectmethod:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod`` command.

        **Description:**
            - This command sets or queries the DDR Read/Write search burst detection method.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod?

        **Info:**
            - ``DQDQS`` sets the read/write burst detection method to DQDQS.
            - ``ChipSelect`` sets the read/write burst detection method to ChipSelect.
            - ``LogicState`` sets the read/write burst detection method to LogicState.
        """  # noqa: E501
        return self._burstdetectmethod

    @property
    def burstlength(self) -> SearchSearchItemTriggerADdrreadwriteBurstlength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic state burst length value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR1`` sets the logic state burst length value.
        """
        return self._burstlength

    @property
    def burstlatency(self) -> SearchSearchItemTriggerADdrreadwriteBurstlatency:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic state burst latency value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state burst latency value.
        """
        return self._burstlatency

    @property
    def csactive(self) -> SearchSearchItemTriggerADdrreadwriteCsactive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive`` command.

        **Description:**
            - This command sets or queries the DDR Read/Write chip select active state.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive {LOW|HIGH}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``LOW`` sets the DDR read/write chip select active state to low.
            - ``HIGH`` sets the DDR read/write chip select active state to high.
        """
        return self._csactive

    @property
    def cslevel(self) -> SearchSearchItemTriggerADdrreadwriteCslevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel`` command.

        **Description:**
            - This command sets or queries the DDR Read/Write chip select level value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read/write chip select level value.
        """
        return self._cslevel

    @property
    def csmode(self) -> SearchSearchItemTriggerADdrreadwriteCsmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode`` command.

        **Description:**
            - This command sets or queries the DDR read/write chip select mode.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode {Auto|Manual}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``Auto`` sets the DDR read/write chip select mode to auto.
            - ``Manual`` sets the DDR read/write chip select mode to manual. Use the Related
              Commands to set the Reference levels when in Manual mode.
        """
        return self._csmode

    @property
    def cssource(self) -> SearchSearchItemTriggerADdrreadwriteCssource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource`` command.

        **Description:**
            - This command sets or queries the DDR Read/Write search chip select source.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource {CH<x>|CH<x>_D<x>|Math<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``CH<x>`` specifies channel <x> as the DDR read/write chip select source for the
              specified search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write
              strobe source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read/write chip select source for
              the specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read/write chip select source
              for the specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read/write strobe source for the specified search <x>.
        """  # noqa: E501
        return self._cssource

    @property
    def datarate(self) -> SearchSearchItemTriggerADdrreadwriteDatarate:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate`` command.

        **Description:**
            - This command sets or queries the DDR read/write data rate for DDR3 and LPDRR3
              standards of the specified search. The DDR3 standard supports the following data
              rates: 800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data
              rates: 333|800|1066|1200|1333|1466|1600|1866|2133.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate?

        **Info:**
            - ``333`` sets the data rate to 333.
            - ``800`` sets the data rate to 800.
            - ``1066`` sets the data rate to 1066.
            - ``1200`` sets the data rate to 1200.
            - ``1333`` sets the data rate to 1333.
            - ``1466`` sets the data rate to 1466.
            - ``1600`` sets the data rate to 1600.
            - ``1866`` sets the data rate to 1866.
            - ``2133`` sets the data rate to 2133.
        """  # noqa: E501
        return self._datarate

    @property
    def datasource(self) -> SearchSearchItemTriggerADdrreadwriteDatasource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource`` command.

        **Description:**
            - This command sets or queries the DDR read/write data source when the search type is
              DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR read/write data source for the specified
              search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write
              data source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read/write data source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read/write data source for the
              specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read/write data source for the specified search <x>.
        """  # noqa: E501
        return self._datasource

    @property
    def hysteresis(self) -> SearchSearchItemTriggerADdrreadwriteHysteresis:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis`` command.

        **Description:**
            - This command sets or queries the DDR read/write hysteresis reference level value, when
              the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis?

        **Info:**
            - ``NR3`` sets the DDR read/write search hysteresis percent value in the range of 0% to
              50%.
        """
        return self._hysteresis

    @property
    def logic1source(self) -> SearchSearchItemTriggerADdrreadwriteLogic1source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce:SYMBol``
              command.
        """
        return self._logic1source

    @property
    def logic2source(self) -> SearchSearchItemTriggerADdrreadwriteLogic2source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce:SYMBol``
              command.
        """
        return self._logic2source

    @property
    def logic3source(self) -> SearchSearchItemTriggerADdrreadwriteLogic3source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce:SYMBol``
              command.
        """
        return self._logic3source

    @property
    def logic4source(self) -> SearchSearchItemTriggerADdrreadwriteLogic4source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce:SYMBol``
              command.
        """
        return self._logic4source

    @property
    def margin(self) -> SearchSearchItemTriggerADdrreadwriteMargin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin`` command.

        **Description:**
            - This command sets or queries the DDR read/write margin reference level value, when the
              search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin?

        **Info:**
            - ``NR3`` sets the DDR read/write search margin percent value in the range of 0% to
              100%.
        """
        return self._margin

    @property
    def maxcas(self) -> SearchSearchItemTriggerADdrreadwriteMaxcas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS`` command.

        **Description:**
            - This command sets or queries the DDR read/write chip maximum Column Access Strobe
              (CAS) value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read chip select CAS maximum value.
        """
        return self._maxcas

    @property
    def mincas(self) -> SearchSearchItemTriggerADdrreadwriteMincas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas`` command.

        **Description:**
            - This command sets or queries the DDR read/write chip minimum Column Access Strobe
              (CAS) value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read chip select CAS minimum value.
        """
        return self._mincas

    @property
    def postamble(self) -> SearchSearchItemTriggerADdrreadwritePostamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE`` command tree.

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

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE:LENGth`` command.
        """
        return self._postamble

    @property
    def preamble(self) -> SearchSearchItemTriggerADdrreadwritePreamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE:TYPE`` command.
        """
        return self._preamble

    @property
    def reflevelmode(self) -> SearchSearchItemTriggerADdrreadwriteReflevelmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode`` command.

        **Description:**
            - This command sets or queries the DDR read/write reference level mode to auto or
              manual, when the search type is DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode {AUTO|MANUAL}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode?

        **Info:**
            - ``AUTO`` sets the DDR read/write reference level mode to auto.
            - ``MANUAL`` sets the DDR read/write reference level mode to manual. Use the Related
              Commands to set the Reference levels when in Manual mode.
        """
        return self._reflevelmode

    @property
    def reflevel(self) -> SearchSearchItemTriggerADdrreadwriteReflevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel`` command tree.

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

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:DATA`` command tree.
            - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel:STROBE`` command
              tree.
        """
        return self._reflevel

    @property
    def standard(self) -> SearchSearchItemTriggerADdrreadwriteStandard:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard`` command.

        **Description:**
            - This command sets or queries the DDR read/write search standard as DDR3 or LPDDR3.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard {DDR3|LPDDR3}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard?

        **Info:**
            - ``DDR3`` sets the DDR read/write search standard as DDR3.
            - ``LPDDR3`` sets the DDR read/write search standard as LPDDR3.
        """
        return self._standard

    @property
    def strobesource(self) -> SearchSearchItemTriggerADdrreadwriteStrobesource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource`` command.

        **Description:**
            - This command sets or queries the DDR readwrite strobe source when the search type is
              DDR READWRITE.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR read/write strobe source for the specified
              search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read/write
              strobe source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read/write strobe source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read/write strobe source for
              the specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read/write strobe source for the specified search <x>.
        """  # noqa: E501
        return self._strobesource

    @property
    def tolerance(self) -> SearchSearchItemTriggerADdrreadwriteTolerance:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance`` command.

        **Description:**
            - This command sets or queries the DDR read/write logic state tolerance value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state tolerance value.
        """
        return self._tolerance


class SearchSearchItemTriggerADdrreadTolerance(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance`` command.

    **Description:**
        - This command sets or queries the DDR read logic state tolerance value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state tolerance value.
    """


class SearchSearchItemTriggerADdrreadStrobesource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource`` command.

    **Description:**
        - This command sets or queries the DDR read strobe source when the search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR read strobe trigger source for the specified
          search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read strobe
          trigger source for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read strobe trigger source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read strobe trigger source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR read
          strobe trigger source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadStandard(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard`` command.

    **Description:**
        - This command sets or queries the DDR read search standard as DDR3 or LPDDR3.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard {DDR3|LPDDR3}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard?

    **Info:**
        - ``DDR3`` sets the DDR read search standard as DDR3.
        - ``LPDDR3`` sets the DDR read search standard as LPDDR3.
    """


class SearchSearchItemTriggerADdrreadReflevelStrobeMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID`` command.

    **Description:**
        - This command sets or queries the DDR read reference level strobe mid value, when the
          search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID?

    **Info:**
        - ``NR3`` sets the DDR read search strobe mid reference value.
    """


class SearchSearchItemTriggerADdrreadReflevelStrobeLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW`` command.

    **Description:**
        - This command sets or queries the DDR read reference level strobe low value, when the
          search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW?

    **Info:**
        - ``NR3`` sets the DDR read search strobe low reference value.
    """


class SearchSearchItemTriggerADdrreadReflevelStrobeHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR read reference level strobe high value, when the
          search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH?

    **Info:**
        - ``NR3`` sets the DDR read search strobe high value.
    """


class SearchSearchItemTriggerADdrreadReflevelStrobe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrreadReflevelStrobeHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR read reference level strobe high value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH?

        **Info:**
            - ``NR3`` sets the DDR read search strobe high value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrreadReflevelStrobeLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW`` command.

        **Description:**
            - This command sets or queries the DDR read reference level strobe low value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW?

        **Info:**
            - ``NR3`` sets the DDR read search strobe low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrreadReflevelStrobeMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID`` command.

        **Description:**
            - This command sets or queries the DDR read reference level strobe mid value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID?

        **Info:**
            - ``NR3`` sets the DDR read search strobe mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrreadReflevelDataMid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID`` command.

    **Description:**
        - This command sets or queries the DDR read data mid reference level value, when the search
          type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID?

    **Info:**
        - ``NR3`` sets the DDR read search data mid reference value.
    """


class SearchSearchItemTriggerADdrreadReflevelDataLow(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW`` command.

    **Description:**
        - This command sets or queries the DDR read data low reference level value, when the search
          type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW?

    **Info:**
        - ``NR3`` sets the DDR read search data low reference value.
    """


class SearchSearchItemTriggerADdrreadReflevelDataHigh(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH`` command.

    **Description:**
        - This command sets or queries the DDR read data high reference level value, when the search
          type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH?

    **Info:**
        - ``NR3`` sets the DDR read search data high reference value.
    """


class SearchSearchItemTriggerADdrreadReflevelData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA`` command tree.

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

    Properties:
        - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH`` command.
        - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW`` command.
        - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID`` command.
    """

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

    @property
    def high(self) -> SearchSearchItemTriggerADdrreadReflevelDataHigh:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH`` command.

        **Description:**
            - This command sets or queries the DDR read data high reference level value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH?

        **Info:**
            - ``NR3`` sets the DDR read search data high reference value.
        """
        return self._high

    @property
    def low(self) -> SearchSearchItemTriggerADdrreadReflevelDataLow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW`` command.

        **Description:**
            - This command sets or queries the DDR read data low reference level value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW?

        **Info:**
            - ``NR3`` sets the DDR read search data low reference value.
        """
        return self._low

    @property
    def mid(self) -> SearchSearchItemTriggerADdrreadReflevelDataMid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID`` command.

        **Description:**
            - This command sets or queries the DDR read data mid reference level value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID?

        **Info:**
            - ``NR3`` sets the DDR read search data mid reference value.
        """
        return self._mid


class SearchSearchItemTriggerADdrreadReflevel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA`` command tree.
        - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerADdrreadReflevelData(device, f"{self._cmd_syntax}:DATA")
        self._strobe = SearchSearchItemTriggerADdrreadReflevelStrobe(
            device, f"{self._cmd_syntax}:STROBE"
        )

    @property
    def data(self) -> SearchSearchItemTriggerADdrreadReflevelData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA:MID`` command.
        """
        return self._data

    @property
    def strobe(self) -> SearchSearchItemTriggerADdrreadReflevelStrobe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE`` command tree.

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

        Sub-properties:
            - ``.high``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:HIGH`` command.
            - ``.low``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:LOW`` command.
            - ``.mid``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE:MID`` command.
        """
        return self._strobe


class SearchSearchItemTriggerADdrreadReflevelmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode`` command.

    **Description:**
        - This command sets or queries the DDR read reference level mode to auto or manual, when the
          search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode {AUTO|MANUAL}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode?

    **Info:**
        - ``AUTO`` sets the DDR read reference level mode to auto.
        - ``MANUAL`` sets the DDR read reference level mode to manual. Use the Related Commands to
          set the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrreadPreambleType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE`` command.

    **Description:**
        - This command sets or queries the DDR read preamble type when the search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE {STATIC|DYNAMIC}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE?

    **Info:**
        - ``STATIC`` sets the DDR Read preamble type to Static.
        - ``DYNAMIC`` sets the DDR Read preamble type to Dynamic.
    """


class SearchSearchItemTriggerADdrreadPreamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerADdrreadPreambleType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE`` command.

        **Description:**
            - This command sets or queries the DDR read preamble type when the search type is DDR
              READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE {STATIC|DYNAMIC}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE?

        **Info:**
            - ``STATIC`` sets the DDR Read preamble type to Static.
            - ``DYNAMIC`` sets the DDR Read preamble type to Dynamic.
        """
        return self._type


class SearchSearchItemTriggerADdrreadPostambleLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth`` command.

    **Description:**
        - This command sets or queries the DDR read postamble length when the search type is DDR
          READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth?

    **Info:**
        - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
        - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
        - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
    """


class SearchSearchItemTriggerADdrreadPostamble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE`` command tree.

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

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth`` command.
    """

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

    @property
    def length(self) -> SearchSearchItemTriggerADdrreadPostambleLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth`` command.

        **Description:**
            - This command sets or queries the DDR read postamble length when the search type is DDR
              READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth {500E-3|500E-1.5|500E-1}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth?

        **Info:**
            - ``500E-1.5`` sets the postamble length to 1.5 tCK (number of clock cycles).
            - ``500E-1`` sets the postamble length to 1 tCK (number of clock cycles).
            - ``500E-3`` sets the postamble length to 0.5 tCK (number of clock cycles).
        """
        return self._length


class SearchSearchItemTriggerADdrreadMincas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas`` command.

    **Description:**
        - This command sets or queries the DDR read chip minimum Column Access Strobe (CAS) value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read chip select CAS minimum value.
    """


class SearchSearchItemTriggerADdrreadMaxcas(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS`` command.

    **Description:**
        - This command sets or queries the DDR read chip maximum Column Access Strobe (CAS) value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read chip select CAS maximum value.
    """


class SearchSearchItemTriggerADdrreadMargin(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin`` command.

    **Description:**
        - This command sets or queries the DDR read margin reference level value, when the search
          type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin?

    **Info:**
        - ``NR3`` sets the DDR read search margin percent value in the range of 0% to 100%.
    """


class SearchSearchItemTriggerADdrreadLogic4sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read logic source 4 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 4 symbol to H (High).
        - ``L`` sets the logic source 4 symbol to L (Low).
        - ``X`` sets the logic source 4 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadLogic4source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadLogic4sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read logic source 4 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 4 symbol to H (High).
            - ``L`` sets the logic source 4 symbol to L (Low).
            - ``X`` sets the logic source 4 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadLogic3sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read logic source 3 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 3 symbol to H (High).
        - ``L`` sets the logic source 3 symbol to L (Low).
        - ``X`` sets the logic source 3 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadLogic3source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadLogic3sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read logic source 3 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 3 symbol to H (High).
            - ``L`` sets the logic source 3 symbol to L (Low).
            - ``X`` sets the logic source 3 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadLogic2sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read logic source 2 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 2 symbol to H (High).
        - ``L`` sets the logic source 2 symbol to L (Low).
        - ``X`` sets the logic source 2 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadLogic2source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadLogic2sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read logic source 2 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 2 symbol to H (High).
            - ``L`` sets the logic source 2 symbol to L (Low).
            - ``X`` sets the logic source 2 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadLogic1sourceSymbol(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol`` command.

    **Description:**
        - This command sets or queries the DDR read logic source 1 symbol.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol {H|L|X}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``H`` sets the logic source 1 symbol to H (High).
        - ``L`` sets the logic source 1 symbol to L (Low).
        - ``X`` sets the logic source 1 symbol to X (Don't care).
    """


class SearchSearchItemTriggerADdrreadLogic1source(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce`` command tree.

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

    **Info:**
        - ``SEARCH<x>`` specifies the search number.

    Properties:
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol`` command.
    """

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

    @property
    def symbol(self) -> SearchSearchItemTriggerADdrreadLogic1sourceSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol`` command.

        **Description:**
            - This command sets or queries the DDR read logic source 1 symbol.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol {H|L|X}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``H`` sets the logic source 1 symbol to H (High).
            - ``L`` sets the logic source 1 symbol to L (Low).
            - ``X`` sets the logic source 1 symbol to X (Don't care).
        """
        return self._symbol


class SearchSearchItemTriggerADdrreadHysteresis(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis`` command.

    **Description:**
        - This command sets or queries the DDR read hysteresis reference level value, when the
          search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis?

    **Info:**
        - ``NR3`` sets the DDR read search hysteresis percent value in the range of 0% to 50%.
    """


class SearchSearchItemTriggerADdrreadDatasource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource`` command.

    **Description:**
        - This command sets or queries the DDR read data source when the search type is DDR READ.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource?

    **Info:**
        - ``CH<x>`` specifies channel <x> as the DDR read data source for the specified search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read data source
          for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read data source for the specified
          search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read data source for the specified
          search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR read
          data source for the specified search <x>.
    """  # noqa: E501


class SearchSearchItemTriggerADdrreadDatarate(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate`` command.

    **Description:**
        - This command sets or queries the DDR read search data rate for DDR3 and LPDRR3 standards
          of the specified search. The DDR3 standard supports the following data rates:
          800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data rates:
          333|800|1066|1200|1333|1466|1600|1866|2133.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate?

    **Info:**
        - ``333`` sets the data rate to 333.
        - ``800`` sets the data rate to 800.
        - ``1066`` sets the data rate to 1066.
        - ``1200`` sets the data rate to 1200.
        - ``1333`` sets the data rate to 1333.
        - ``1466`` sets the data rate to 1466.
        - ``1600`` sets the data rate to 1600.
        - ``1866`` sets the data rate to 1866.
        - ``2133`` sets the data rate to 2133.
    """


class SearchSearchItemTriggerADdrreadCssource(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource`` command.

    **Description:**
        - This command sets or queries the DDR Read search chip select source.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``CH<x>`` specifies channel <x> as the DDR read chip select source for the specified
          search <x>.
        - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read strobe source
          for the specified search <x>.
        - ``MATH<x>`` specifies math waveform <x> as the DDR read chip select source for the
          specified search <x>.
        - ``REF<x>`` specifies reference waveform <x> as the DDR read chip select source for the
          specified search <x>.
        - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR read
          strobe source for the specified search <x>.
    """


class SearchSearchItemTriggerADdrreadCsmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode`` command.

    **Description:**
        - This command sets or queries the DDR Read chip select mode.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode {Auto|Manual}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``Auto`` sets the DDR read chip select mode to auto.
        - ``Manual`` sets the DDR read chip select mode to manual. Use the Related Commands to set
          the Reference levels when in Manual mode.
    """


class SearchSearchItemTriggerADdrreadCslevel(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel`` command.

    **Description:**
        - This command sets or queries the DDR Read chip select level value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the DDR read chip select level value.
    """


class SearchSearchItemTriggerADdrreadCsactive(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive`` command.

    **Description:**
        - This command sets or queries the DDR Read chip select active state.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive {LOW|HIGH}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``LOW`` sets the DDR read chip select active state to low.
        - ``HIGH`` sets the DDR read chip select active state to high.
    """


class SearchSearchItemTriggerADdrreadBurstlatency(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency`` command.

    **Description:**
        - This command sets or queries the DDR read logic state burst latency value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR3`` sets the logic state burst latency value.
    """


class SearchSearchItemTriggerADdrreadBurstlength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH`` command.

    **Description:**
        - This command sets or queries the DDR read logic state burst length value.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH?

    **Info:**
        - ``SEARCH<x>`` specifies the search number.
        - ``NR1`` sets the logic state burst length value.
    """


class SearchSearchItemTriggerADdrreadBurstdetectmethod(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod`` command.

    **Description:**
        - This command sets or queries the DDRRead search burst detection method.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
        - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod?

    **Info:**
        - ``DQDQS`` sets the burst detection method to DQDQS.
        - ``ChipSelect`` sets the burst detection method to ChipSelect.
        - ``LogicState`` sets the burst detection method to LogicState.
    """


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class SearchSearchItemTriggerADdrread(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD`` command tree.

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

    Properties:
        - ``.burstdetectmethod``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod``
          command.
        - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH`` command.
        - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency`` command.
        - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive`` command.
        - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel`` command.
        - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode`` command.
        - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource`` command.
        - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate`` command.
        - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource`` command.
        - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis`` command.
        - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce`` command tree.
        - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce`` command tree.
        - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce`` command tree.
        - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce`` command tree.
        - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin`` command.
        - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS`` command.
        - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas`` command.
        - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE`` command tree.
        - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE`` command tree.
        - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode`` command.
        - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel`` command tree.
        - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard`` command.
        - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource`` command.
        - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._burstdetectmethod = SearchSearchItemTriggerADdrreadBurstdetectmethod(
            device, f"{self._cmd_syntax}:BURSTDETectmethod"
        )
        self._burstlength = SearchSearchItemTriggerADdrreadBurstlength(
            device, f"{self._cmd_syntax}:BURSTLENGTH"
        )
        self._burstlatency = SearchSearchItemTriggerADdrreadBurstlatency(
            device, f"{self._cmd_syntax}:BURSTLatency"
        )
        self._csactive = SearchSearchItemTriggerADdrreadCsactive(
            device, f"{self._cmd_syntax}:CSActive"
        )
        self._cslevel = SearchSearchItemTriggerADdrreadCslevel(
            device, f"{self._cmd_syntax}:CSLevel"
        )
        self._csmode = SearchSearchItemTriggerADdrreadCsmode(device, f"{self._cmd_syntax}:CSMode")
        self._cssource = SearchSearchItemTriggerADdrreadCssource(
            device, f"{self._cmd_syntax}:CSSource"
        )
        self._datarate = SearchSearchItemTriggerADdrreadDatarate(
            device, f"{self._cmd_syntax}:DATARate"
        )
        self._datasource = SearchSearchItemTriggerADdrreadDatasource(
            device, f"{self._cmd_syntax}:DATASource"
        )
        self._hysteresis = SearchSearchItemTriggerADdrreadHysteresis(
            device, f"{self._cmd_syntax}:HYSteresis"
        )
        self._logic1source = SearchSearchItemTriggerADdrreadLogic1source(
            device, f"{self._cmd_syntax}:LOGIC1SOUrce"
        )
        self._logic2source = SearchSearchItemTriggerADdrreadLogic2source(
            device, f"{self._cmd_syntax}:LOGIC2SOUrce"
        )
        self._logic3source = SearchSearchItemTriggerADdrreadLogic3source(
            device, f"{self._cmd_syntax}:LOGIC3SOUrce"
        )
        self._logic4source = SearchSearchItemTriggerADdrreadLogic4source(
            device, f"{self._cmd_syntax}:LOGIC4SOUrce"
        )
        self._margin = SearchSearchItemTriggerADdrreadMargin(device, f"{self._cmd_syntax}:MARgin")
        self._maxcas = SearchSearchItemTriggerADdrreadMaxcas(device, f"{self._cmd_syntax}:MAXCAS")
        self._mincas = SearchSearchItemTriggerADdrreadMincas(device, f"{self._cmd_syntax}:MINCas")
        self._postamble = SearchSearchItemTriggerADdrreadPostamble(
            device, f"{self._cmd_syntax}:POSTAMBLE"
        )
        self._preamble = SearchSearchItemTriggerADdrreadPreamble(
            device, f"{self._cmd_syntax}:PREAMBLE"
        )
        self._reflevelmode = SearchSearchItemTriggerADdrreadReflevelmode(
            device, f"{self._cmd_syntax}:REFLEVELMode"
        )
        self._reflevel = SearchSearchItemTriggerADdrreadReflevel(
            device, f"{self._cmd_syntax}:REFLevel"
        )
        self._standard = SearchSearchItemTriggerADdrreadStandard(
            device, f"{self._cmd_syntax}:STANdard"
        )
        self._strobesource = SearchSearchItemTriggerADdrreadStrobesource(
            device, f"{self._cmd_syntax}:STROBESource"
        )
        self._tolerance = SearchSearchItemTriggerADdrreadTolerance(
            device, f"{self._cmd_syntax}:TOLERance"
        )

    @property
    def burstdetectmethod(self) -> SearchSearchItemTriggerADdrreadBurstdetectmethod:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod`` command.

        **Description:**
            - This command sets or queries the DDRRead search burst detection method.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod {DQDQS|ChipSelect|LogicState}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod?

        **Info:**
            - ``DQDQS`` sets the burst detection method to DQDQS.
            - ``ChipSelect`` sets the burst detection method to ChipSelect.
            - ``LogicState`` sets the burst detection method to LogicState.
        """
        return self._burstdetectmethod

    @property
    def burstlength(self) -> SearchSearchItemTriggerADdrreadBurstlength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH`` command.

        **Description:**
            - This command sets or queries the DDR read logic state burst length value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR1`` sets the logic state burst length value.
        """
        return self._burstlength

    @property
    def burstlatency(self) -> SearchSearchItemTriggerADdrreadBurstlatency:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency`` command.

        **Description:**
            - This command sets or queries the DDR read logic state burst latency value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state burst latency value.
        """
        return self._burstlatency

    @property
    def csactive(self) -> SearchSearchItemTriggerADdrreadCsactive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive`` command.

        **Description:**
            - This command sets or queries the DDR Read chip select active state.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive {LOW|HIGH}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``LOW`` sets the DDR read chip select active state to low.
            - ``HIGH`` sets the DDR read chip select active state to high.
        """
        return self._csactive

    @property
    def cslevel(self) -> SearchSearchItemTriggerADdrreadCslevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel`` command.

        **Description:**
            - This command sets or queries the DDR Read chip select level value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read chip select level value.
        """
        return self._cslevel

    @property
    def csmode(self) -> SearchSearchItemTriggerADdrreadCsmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode`` command.

        **Description:**
            - This command sets or queries the DDR Read chip select mode.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode {Auto|Manual}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``Auto`` sets the DDR read chip select mode to auto.
            - ``Manual`` sets the DDR read chip select mode to manual. Use the Related Commands to
              set the Reference levels when in Manual mode.
        """
        return self._csmode

    @property
    def cssource(self) -> SearchSearchItemTriggerADdrreadCssource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource`` command.

        **Description:**
            - This command sets or queries the DDR Read search chip select source.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``CH<x>`` specifies channel <x> as the DDR read chip select source for the specified
              search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read strobe
              source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read chip select source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read chip select source for the
              specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read strobe source for the specified search <x>.
        """  # noqa: E501
        return self._cssource

    @property
    def datarate(self) -> SearchSearchItemTriggerADdrreadDatarate:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate`` command.

        **Description:**
            - This command sets or queries the DDR read search data rate for DDR3 and LPDRR3
              standards of the specified search. The DDR3 standard supports the following data
              rates: 800|1066|1333|1600|1866|2133. The LPDDR3 standard supports the following data
              rates: 333|800|1066|1200|1333|1466|1600|1866|2133.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate {333|800|1066|1200|1333|1466|1600|1866|2133}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate?

        **Info:**
            - ``333`` sets the data rate to 333.
            - ``800`` sets the data rate to 800.
            - ``1066`` sets the data rate to 1066.
            - ``1200`` sets the data rate to 1200.
            - ``1333`` sets the data rate to 1333.
            - ``1466`` sets the data rate to 1466.
            - ``1600`` sets the data rate to 1600.
            - ``1866`` sets the data rate to 1866.
            - ``2133`` sets the data rate to 2133.
        """  # noqa: E501
        return self._datarate

    @property
    def datasource(self) -> SearchSearchItemTriggerADdrreadDatasource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource`` command.

        **Description:**
            - This command sets or queries the DDR read data source when the search type is DDR
              READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR read data source for the specified search
              <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read data
              source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read data source for the specified
              search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read data source for the
              specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read data source for the specified search <x>.
        """  # noqa: E501
        return self._datasource

    @property
    def hysteresis(self) -> SearchSearchItemTriggerADdrreadHysteresis:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis`` command.

        **Description:**
            - This command sets or queries the DDR read hysteresis reference level value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis?

        **Info:**
            - ``NR3`` sets the DDR read search hysteresis percent value in the range of 0% to 50%.
        """
        return self._hysteresis

    @property
    def logic1source(self) -> SearchSearchItemTriggerADdrreadLogic1source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce:SYMBol`` command.
        """
        return self._logic1source

    @property
    def logic2source(self) -> SearchSearchItemTriggerADdrreadLogic2source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce:SYMBol`` command.
        """
        return self._logic2source

    @property
    def logic3source(self) -> SearchSearchItemTriggerADdrreadLogic3source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce:SYMBol`` command.
        """
        return self._logic3source

    @property
    def logic4source(self) -> SearchSearchItemTriggerADdrreadLogic4source:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce`` command tree.

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

        **Info:**
            - ``SEARCH<x>`` specifies the search number.

        Sub-properties:
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce:SYMBol`` command.
        """
        return self._logic4source

    @property
    def margin(self) -> SearchSearchItemTriggerADdrreadMargin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin`` command.

        **Description:**
            - This command sets or queries the DDR read margin reference level value, when the
              search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin?

        **Info:**
            - ``NR3`` sets the DDR read search margin percent value in the range of 0% to 100%.
        """
        return self._margin

    @property
    def maxcas(self) -> SearchSearchItemTriggerADdrreadMaxcas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS`` command.

        **Description:**
            - This command sets or queries the DDR read chip maximum Column Access Strobe (CAS)
              value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read chip select CAS maximum value.
        """
        return self._maxcas

    @property
    def mincas(self) -> SearchSearchItemTriggerADdrreadMincas:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas`` command.

        **Description:**
            - This command sets or queries the DDR read chip minimum Column Access Strobe (CAS)
              value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the DDR read chip select CAS minimum value.
        """
        return self._mincas

    @property
    def postamble(self) -> SearchSearchItemTriggerADdrreadPostamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE`` command tree.

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

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE:LENGth`` command.
        """
        return self._postamble

    @property
    def preamble(self) -> SearchSearchItemTriggerADdrreadPreamble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE:TYPE`` command.
        """
        return self._preamble

    @property
    def reflevelmode(self) -> SearchSearchItemTriggerADdrreadReflevelmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode`` command.

        **Description:**
            - This command sets or queries the DDR read reference level mode to auto or manual, when
              the search type is DDR READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode {AUTO|MANUAL}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode?

        **Info:**
            - ``AUTO`` sets the DDR read reference level mode to auto.
            - ``MANUAL`` sets the DDR read reference level mode to manual. Use the Related Commands
              to set the Reference levels when in Manual mode.
        """
        return self._reflevelmode

    @property
    def reflevel(self) -> SearchSearchItemTriggerADdrreadReflevel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel`` command tree.

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

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:DATA`` command tree.
            - ``.strobe``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel:STROBE`` command tree.
        """
        return self._reflevel

    @property
    def standard(self) -> SearchSearchItemTriggerADdrreadStandard:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard`` command.

        **Description:**
            - This command sets or queries the DDR read search standard as DDR3 or LPDDR3.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard {DDR3|LPDDR3}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard?

        **Info:**
            - ``DDR3`` sets the DDR read search standard as DDR3.
            - ``LPDDR3`` sets the DDR read search standard as LPDDR3.
        """
        return self._standard

    @property
    def strobesource(self) -> SearchSearchItemTriggerADdrreadStrobesource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource`` command.

        **Description:**
            - This command sets or queries the DDR read strobe source when the search type is DDR
              READ.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource {CH<x>|CH<x>_D<x>|MATH<x>|REF<x>|REF<x>_D<x>}
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource?

        **Info:**
            - ``CH<x>`` specifies channel <x> as the DDR read strobe trigger source for the
              specified search <x>.
            - ``CH<x>_D<x>`` specifies digital waveform <x> of channel <x> as the DDR read strobe
              trigger source for the specified search <x>.
            - ``MATH<x>`` specifies math waveform <x> as the DDR read strobe trigger source for the
              specified search <x>.
            - ``REF<x>`` specifies reference waveform <x> as the DDR read strobe trigger source for
              the specified search <x>.
            - ``REF<x>_D<x>`` specifies digital waveform <x> of reference waveform <x> as the DDR
              read strobe trigger source for the specified search <x>.
        """  # noqa: E501
        return self._strobesource

    @property
    def tolerance(self) -> SearchSearchItemTriggerADdrreadTolerance:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance`` command.

        **Description:**
            - This command sets or queries the DDR read logic state tolerance value.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance?

        **Info:**
            - ``SEARCH<x>`` specifies the search number.
            - ``NR3`` sets the logic state tolerance value.
        """
        return self._tolerance


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. The search number is
          specified by x.

    **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 {NOCARE|FULLSPEED|ISOALL|ISOEND|ISOMID|ISOSTART|LOWSPEED}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?

    **Info:**
        - ``NOCARE`` 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. The search number is
              specified by x.

        **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 {NOCARE|FULLSPEED|ISOALL|ISOEND|ISOMID|ISOSTART|LOWSPEED}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SE:VALue?

        **Info:**
            - ``NOCARE`` 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. The search number is
          specified by x.

    **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|NOCARE|SSPLIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?

    **Info:**
        - ``CSPLIT`` specifies Complete (CSPLIT)(1) Start/Complete value.
        - ``NOCARE`` 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. The search
              number is specified by x.

        **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|NOCARE|SSPLIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:SC:VALue?

        **Info:**
            - ``CSPLIT`` specifies Complete (CSPLIT)(1) Start/Complete value.
            - ``NOCARE`` 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 binary port address used when searching on a USB bus
          signal. The search number is specified by x. The search condition must be set to Special
          with a packet type SPLIT.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?

    **Info:**
        - ``<QString>`` specifies the port address in the valid format. The valid characters are.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._value = SearchSearchItemTriggerABusUsbSplitPortValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 binary port address used when searching on a USB bus
              signal. The search number is specified by x. The search condition must be set to
              Special with a packet type SPLIT.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:PORT:VALue?

        **Info:**
            - ``<QString>`` 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 binary hub address value to be used when searching on a
          USB bus signal. The search number is specified by x. The search condition must be set to
          Special with packet type SPLIT.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?

    **Info:**
        - ``<QString>`` specifies the hub address. The valid characters are .
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._value = SearchSearchItemTriggerABusUsbSplitHubValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 binary hub address value to be used when searching on
              a USB bus signal. The search number is specified by x. The search condition must be
              set to Special with packet type SPLIT.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPLIT:HUB:VALue?

        **Info:**
            - ``<QString>`` 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. The search number is
          specified by x.

    **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|NOCARE|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).
        - ``NOCARE`` 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. The search number is
              specified by x.

        **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|NOCARE|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).
            - ``NOCARE`` 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:
            - ``.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:
            - ``.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 USB search 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: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|ERROr|PING|PREamble|RESERVed|SPLit}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?

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


class SearchSearchItemTriggerABusUsbSofframenumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber`` 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. The search number is
          specified by x. The search condition must be set to TOKEN.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber?

    **Info:**
        - ``<QString>`` specifies the frame number string for the Start of Frame in a valid format
          (binary, hexadecimal, or symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


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 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 SearchSearchItemTriggerABusUsbEndpointValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue`` command.

    **Description:**
        - This command sets or queries the endpoint binary value used for a USB bus search to
          determine where to place a mark. The search number is specified by x. The search condition
          must be set to TOKEN.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._value = SearchSearchItemTriggerABusUsbEndpointValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 binary value used for a USB bus search to
              determine where to place a mark. The search number is specified by x. The search
              condition must be set to TOKEN.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusUsbDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data value used for a USB bus search to determine
          where to place a mark. The search number is specified by x. The search condition must be
          set to DATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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, used for a USB bus
          search to determine where to place a mark. The search number is specified by x. The search
          condition must be set to DATA.

    **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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size in bytes.
    """


class SearchSearchItemTriggerABusUsbDataQualifier(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on a USB bus signal.
          The search condition must be set to IDANDDATA OR DATA. The search number is specified by
          x.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}

    **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 SearchSearchItemTriggerABusUsbDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.

    **Description:**
        - This command sets the byte offset to look for a data pattern at, in bytes, to be used when
          searching on a USB bus signal. The search number is specified by x. The search condition
          must be set to DATA.

    **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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` specifies the data offset in bytes.
    """


class SearchSearchItemTriggerABusUsbDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary data value used with In Range and Out of
          Range qualifiers for a USB bus search to determine where to place a mark. The search
          number is specified by x. The search condition must be set to DATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?

    **Info:**
        - ``<QString>`` specifies the data value in the specified valid format (binary, hexadecimal,
          or symbolic). The valid characters for binary are 0, 1, and X;.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier`` 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._hivalue = SearchSearchItemTriggerABusUsbDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusUsbDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._qualifier = SearchSearchItemTriggerABusUsbDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        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 hivalue(self) -> SearchSearchItemTriggerABusUsbDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary data value used with In Range and Out of
              Range qualifiers for a USB bus search to determine where to place a mark. The search
              number is specified by x. The search condition must be set to DATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue?

        **Info:**
            - ``<QString>`` 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 the byte offset to look for a data pattern at, in bytes, to be used
              when searching on a USB bus signal. The search number is specified by x. The search
              condition must be set to DATA.

        **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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` specifies the data offset in bytes.
        """
        return self._offset

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusUsbDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on a USB bus
              signal. The search condition must be set to IDANDDATA OR DATA. The search number is
              specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}

        **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 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, used for a USB
              bus search to determine where to place a mark. The search number is specified by x.
              The search condition must be set to DATA.

        **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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 binary data value used for a USB bus search to
              determine where to place a mark. The search number is specified by x. The search
              condition must be set to DATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:VALue?

        **Info:**
            - ``<QString>`` 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 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: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 SearchSearchItemTriggerABusUsbAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue`` command.

    **Description:**
        - This command sets or queries the binary address value used for a USB bus search to
          determine where to place a mark. The search number is specified by x. The search condition
          must be set to TOKEN.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusUsbAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary address value used when searching on a USB
          bus signal to determine where to place a mark. The search number is specified by x. The
          search condition must be set to TOKEN. 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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?

    **Info:**
        - ``<QString>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary; for hexadecimal; and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._hivalue = SearchSearchItemTriggerABusUsbAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusUsbAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusUsbAddressHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary address value used when searching on a
              USB bus signal to determine where to place a mark. The search number is specified by
              x. The search condition must be set to TOKEN. 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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:HIVALue?

        **Info:**
            - ``<QString>`` 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 binary address value used for a USB bus search to
              determine where to place a mark. The search number is specified by x. The search
              condition must be set to TOKEN.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ADDress:VALue?

        **Info:**
            - ``<QString>`` 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.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.
        - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.
        - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.
        - ``.sofframenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber`` command.
        - ``.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._condition = SearchSearchItemTriggerABusUsbCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusUsbData(device, f"{self._cmd_syntax}:DATa")
        self._endpoint = SearchSearchItemTriggerABusUsbEndpoint(
            device, f"{self._cmd_syntax}:ENDPoint"
        )
        self._errtype = SearchSearchItemTriggerABusUsbErrtype(device, f"{self._cmd_syntax}:ERRTYPE")
        self._handshaketype = SearchSearchItemTriggerABusUsbHandshaketype(
            device, f"{self._cmd_syntax}:HANDSHAKEType"
        )
        self._sofframenumber = SearchSearchItemTriggerABusUsbSofframenumber(
            device, f"{self._cmd_syntax}:SOFFRAMENUMber"
        )
        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:
            - ``.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 condition(self) -> SearchSearchItemTriggerABusUsbCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition 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: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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:HIVALue`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:OFFSet`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa:QUALifier`` 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 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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint:VALue`` command.
        """
        return self._endpoint

    @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 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 sofframenumber(self) -> SearchSearchItemTriggerABusUsbSofframenumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber`` 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. The search
              number is specified by x. The search condition must be set to TOKEN.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber?

        **Info:**
            - ``<QString>`` specifies the frame number string for the Start of Frame in a valid
              format (binary, hexadecimal, or symbolic).
        """
        return self._sofframenumber

    @property
    def specialtype(self) -> SearchSearchItemTriggerABusUsbSpecialtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType`` command.

        **Description:**
            - This command sets or queries the USB search 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: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|ERROr|PING|PREamble|RESERVed|SPLit}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SPECIALType?

        **Info:**
            - ``ANY`` specifies the PID value as Any (XX00).
            - ``ERROr`` specifies the PID value as ERR (1100).
            - ``PING`` specifies the PID value as PING (0100).
            - ``PREamble`` specifies the PID value as PRE (1100).
            - ``RESERVed`` specifies the PID value as Reserved (0000).
            - ``SPLit`` specifies the PID value as Split (1000).
        """  # noqa: E501
        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 SearchSearchItemTriggerABusSvidSlaveAddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS`` command.

    **Description:**
        - This command sets or queries the slave address to be used when search is on SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<QString>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary; for hexadecimal; and symbolic). the default address is XXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSvidSlave(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS`` command.
    """

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

    @property
    def address(self) -> SearchSearchItemTriggerABusSvidSlaveAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS`` command.

        **Description:**
            - This command sets or queries the slave address to be used when search is on SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<QString>`` specifies the data value in the specified valid format. The valid
              characters are 0, 1, and X for binary; for hexadecimal; and symbolic). the default
              address is XXXX.
        """
        return self._address


class SearchSearchItemTriggerABusSvidPayloadValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue`` command.

    **Description:**
        - This command sets or queries the payload value to be used when search is on SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<QString>`` specifies the data value in the specified valid format. The valid characters
          are 0, 1, and X for binary; for hexadecimal; and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSvidPayloadType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe`` command.

    **Description:**
        - This command sets or queries the payload type for SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe {MASTer|SLAVe|EITHer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``MASTer`` specifies the search condition as MASTer. This is the default payload type
          condition.
        - ``SLAVe`` specifies the search condition as SLAVe.
        - ``EITHer`` specifies the search condition as EITHer.
    """


class SearchSearchItemTriggerABusSvidPayload(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSvidPayloadType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe`` command.

        **Description:**
            - This command sets or queries the payload type for SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe {MASTer|SLAVe|EITHer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``MASTer`` specifies the search condition as MASTer. This is the default payload type
              condition.
            - ``SLAVe`` specifies the search condition as SLAVe.
            - ``EITHer`` specifies the search condition as EITHer.
        """
        return self._type

    @property
    def value(self) -> SearchSearchItemTriggerABusSvidPayloadValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue`` command.

        **Description:**
            - This command sets or queries the payload value to be used when search is on SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<QString>`` 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._value


class SearchSearchItemTriggerABusSvidErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe {ANY| NACK| REJect| MIXed| PARity}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``ANY`` specifies the search condition as ANY. This is the default error type condition.
        - ``NACK`` specifies the search condition as NACK.
        - ``REJect`` specifies the search condition as REJect.
        - ``MIXed`` specifies the search condition as MIXed.
        - ``PARity`` specifies the search condition as PARity.
    """


class SearchSearchItemTriggerABusSvidError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSvidErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe {ANY| NACK| REJect| MIXed| PARity}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``ANY`` specifies the search condition as ANY. This is the default error type
              condition.
            - ``NACK`` specifies the search condition as NACK.
            - ``REJect`` specifies the search condition as REJect.
            - ``MIXed`` specifies the search condition as MIXed.
            - ``PARity`` specifies the search condition as PARity.
        """
        return self._type


class SearchSearchItemTriggerABusSvidCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``STARTCONDition`` specifies the search condition as STARTCONDition. This is the default
          trigger on condition.
        - ``SLAVEADDRess`` specifies the search condition as SLAVEADDRess.
        - ``COMMand`` specifies the search condition as COMMand.
        - ``PAYLoad`` specifies the search condition as PAYLoad.
        - ``ERRors`` specifies the search condition as ERRors.
    """  # noqa: E501


class SearchSearchItemTriggerABusSvidCommandType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe`` command.

    **Description:**
        - This command sets or queries the command type for SVID bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe {GET|SET|OPTional}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``GET`` specifies the search condition as GET. This is the default command type condition.
        - ``SET`` specifies the search condition as SET.
        - ``OPTional`` specifies the search condition as OPTional.
    """


class SearchSearchItemTriggerABusSvidCommandResponse(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse`` command.

    **Description:**
        - This command sets or queries the command response of the respective command type for SVID
          bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse {GETReg| GETRegvendor| GETRegtestcfg| SETFast| SETSlow| SETDecay| SETPs| SETRegaddr| SETRegdata| REGAddrvendor| REGDatavendor| REGAddrtestconfg| REGDatatestconfg| TESTmode| SETWp| GETRegpktrecent| GETRegpktalert| GETRegpktbad| GETRegvrevent}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``GETReg`` specifies the search condition as GETReg. This is the default command response
          condition.
        - ``GETRegvendor`` specifies the search condition as GETRegvendor.
        - ``GETRegtestcfg`` specifies the search condition as GETRegtestcfg.
        - ``SETFast`` specifies the search condition as SETFast.
        - ``SETSlow`` specifies the search condition as SETSlow.
        - ``SETDecay`` specifies the search condition as SETDecay.
        - ``SETPs`` specifies the search condition as SETPs.
        - ``SETRegaddr`` specifies the search condition as SETRegaddr.
        - ``SETRegdata`` specifies the search condition as SETRegdata.
        - ``REGAddrvendor`` specifies the search condition as REGAddrvendor.
        - ``REGDatavendor`` specifies the search condition as REGDatavendor.
        - ``REGAddrtestconfg`` specifies the search condition as REGAddrtestconfg.
        - ``REGDatatestconfg`` specifies the search condition as REGDatatestconfg.
        - ``TESTmode`` specifies the search condition as TESTmode.
        - ``SETWp`` specifies the search condition as SETWp.
        - ``GETRegpktrecent`` specifies the search condition as GETRegpktrecent.
        - ``GETRegpktalert`` specifies the search condition as GETRegpktalert.
        - ``GETRegpktbad`` specifies the search condition as GETRegpktbad.
        - ``GETRegvrevent`` specifies the search condition as GETRegvrevent.
    """  # noqa: E501


class SearchSearchItemTriggerABusSvidCommand(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand`` command tree.

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

    Properties:
        - ``.response``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._response = SearchSearchItemTriggerABusSvidCommandResponse(
            device, f"{self._cmd_syntax}:RESPonse"
        )
        self._type = SearchSearchItemTriggerABusSvidCommandType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def response(self) -> SearchSearchItemTriggerABusSvidCommandResponse:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse`` command.

        **Description:**
            - This command sets or queries the command response of the respective command type for
              SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse {GETReg| GETRegvendor| GETRegtestcfg| SETFast| SETSlow| SETDecay| SETPs| SETRegaddr| SETRegdata| REGAddrvendor| REGDatavendor| REGAddrtestconfg| REGDatatestconfg| TESTmode| SETWp| GETRegpktrecent| GETRegpktalert| GETRegpktbad| GETRegvrevent}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``GETReg`` specifies the search condition as GETReg. This is the default command
              response condition.
            - ``GETRegvendor`` specifies the search condition as GETRegvendor.
            - ``GETRegtestcfg`` specifies the search condition as GETRegtestcfg.
            - ``SETFast`` specifies the search condition as SETFast.
            - ``SETSlow`` specifies the search condition as SETSlow.
            - ``SETDecay`` specifies the search condition as SETDecay.
            - ``SETPs`` specifies the search condition as SETPs.
            - ``SETRegaddr`` specifies the search condition as SETRegaddr.
            - ``SETRegdata`` specifies the search condition as SETRegdata.
            - ``REGAddrvendor`` specifies the search condition as REGAddrvendor.
            - ``REGDatavendor`` specifies the search condition as REGDatavendor.
            - ``REGAddrtestconfg`` specifies the search condition as REGAddrtestconfg.
            - ``REGDatatestconfg`` specifies the search condition as REGDatatestconfg.
            - ``TESTmode`` specifies the search condition as TESTmode.
            - ``SETWp`` specifies the search condition as SETWp.
            - ``GETRegpktrecent`` specifies the search condition as GETRegpktrecent.
            - ``GETRegpktalert`` specifies the search condition as GETRegpktalert.
            - ``GETRegpktbad`` specifies the search condition as GETRegpktbad.
            - ``GETRegvrevent`` specifies the search condition as GETRegvrevent.
        """  # noqa: E501
        return self._response

    @property
    def type(self) -> SearchSearchItemTriggerABusSvidCommandType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe`` command.

        **Description:**
            - This command sets or queries the command type for SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe {GET|SET|OPTional}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``GET`` specifies the search condition as GET. This is the default command type
              condition.
            - ``SET`` specifies the search condition as SET.
            - ``OPTional`` specifies the search condition as OPTional.
        """
        return self._type


class SearchSearchItemTriggerABusSvid(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID`` command tree.

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

    Properties:
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor`` command tree.
        - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad`` command tree.
        - ``.slave``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = SearchSearchItemTriggerABusSvidCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )
        self._condition = SearchSearchItemTriggerABusSvidCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._error = SearchSearchItemTriggerABusSvidError(device, f"{self._cmd_syntax}:ERRor")
        self._payload = SearchSearchItemTriggerABusSvidPayload(
            device, f"{self._cmd_syntax}:PAYLoad"
        )
        self._slave = SearchSearchItemTriggerABusSvidSlave(device, f"{self._cmd_syntax}:SLAVE")

    @property
    def command(self) -> SearchSearchItemTriggerABusSvidCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand`` command tree.

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

        Sub-properties:
            - ``.response``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:RESPonse`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand:TYPe`` command.
        """
        return self._command

    @property
    def condition(self) -> SearchSearchItemTriggerABusSvidCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for SVID bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition {STARTCONDition| SLAVEADDRess| COMMand| PAYLoad| ERRors}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``STARTCONDition`` specifies the search condition as STARTCONDition. This is the
              default trigger on condition.
            - ``SLAVEADDRess`` specifies the search condition as SLAVEADDRess.
            - ``COMMand`` specifies the search condition as COMMand.
            - ``PAYLoad`` specifies the search condition as PAYLoad.
            - ``ERRors`` specifies the search condition as ERRors.
        """  # noqa: E501
        return self._condition

    @property
    def error(self) -> SearchSearchItemTriggerABusSvidError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def payload(self) -> SearchSearchItemTriggerABusSvidPayload:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:TYPe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad:VALue`` command.
        """
        return self._payload

    @property
    def slave(self) -> SearchSearchItemTriggerABusSvidSlave:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE`` command tree.

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

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE:ADDRESS`` command.
        """
        return self._slave


class SearchSearchItemTriggerABusSpmiSlaveaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the slave address used
          in SPMI when the search condition is RESet, SLEep, SHUTdown, WAKeup, AUTHenticate,
          REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, LONGEXTREGWRIte,
          DEVICEDESCSLAVEREAd, or REG0WRIte.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` is the binary data string that identifies the slave address for which to
          search.
    """


class SearchSearchItemTriggerABusSpmiSlaveaddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSpmiSlaveaddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the slave address
              used in SPMI when the search condition is RESet, SLEep, SHUTdown, WAKeup,
              AUTHenticate, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd,
              LONGEXTREGWRIte, DEVICEDESCSLAVEREAd, or REG0WRIte.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` is the binary data string that identifies the slave address for which to
              search.
        """
        return self._value


class SearchSearchItemTriggerABusSpmiRegisteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the register address
          used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte, REGREAd,
          REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` is the binary data string that identifies the register address for which to
          search.
    """


class SearchSearchItemTriggerABusSpmiRegisteraddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSpmiRegisteraddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the register
              address used in SPMI triggering if the trigger condition is MASTERREAd, MASTERWRIte,
              REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd, or LONGEXTREGWRIte.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` is the binary data string that identifies the register address for which
              to search.
        """
        return self._value


class SearchSearchItemTriggerABusSpmiNoresponse(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse`` command.

    **Description:**
        - This command sets or queries whether or not to search for No Response frames.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` is either 'TRUE' or 'FALSE' boolean value for searching on SPMI No Response
          frames.
    """


class SearchSearchItemTriggerABusSpmiMasteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string that identifies the master address
          used in SPMI when the search condition is MASTERREAd, MASTERWRIte, or
          DEVICEDESCMASTERREAd.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` is the binary data string that identifies the master address for which to
          search.
    """


class SearchSearchItemTriggerABusSpmiMasteraddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSpmiMasteraddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string that identifies the master address
              used in SPMI when the search condition is MASTERREAd, MASTERWRIte, or
              DEVICEDESCMASTERREAd.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` is the binary data string that identifies the master address for which
              to search.
        """
        return self._value


class SearchSearchItemTriggerABusSpmiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SPMI when the search condition is
          MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte, LONGEXTREGREAd,
          LONGEXTREGWRIte, or REG0WRIte.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` is the binary data string that identifies the data value for which to
          search.
    """


class SearchSearchItemTriggerABusSpmiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to be used when
          searching on an SPMI bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe <NR2>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<NR2>`` is the size of the data string in bytes.
    """


class SearchSearchItemTriggerABusSpmiData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusSpmiDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string, in bytes, to be used when
              searching on an SPMI bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe <NR2>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<NR2>`` is the size of the data string in bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusSpmiDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SPMI when the search condition
              is MASTERREAd, MASTERWRIte, REGREAd, REGWRIte, EXTREGREAd, EXTREGWRIte,
              LONGEXTREGREAd, LONGEXTREGWRIte, or REG0WRIte.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` is the binary data string that identifies the data value for which to
              search.
        """
        return self._value


class SearchSearchItemTriggerABusSpmiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for an SPMI bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``SSC`` specifies searching for the Sequence Start Condition.
        - ``RESet`` specifies searching for the Reset command sequence.
        - ``SLEep`` specifies searching for the Sleep command sequnce.
        - ``SHUTdown`` specifies searching for the Shutdown command sequence.
        - ``WAKeup`` specifies searching for the Wakeup command sequence.
        - ``MASTERREAd`` specifies searching for the Master Read command sequence.
        - ``MASTERWRIte`` specifies searching for the Master Write command sequence.
        - ``REGREAd`` specifies searching for the Register Read command sequence.
        - ``REGWRIte`` specifies searching for the Register Write command sequence.
        - ``DEVICEDESCMASTERREAd`` specifies searching for the Device Descriptor Block Master Read
          command sequence.
        - ``DEVICEDESCSLAVEREAd`` specifies searching for the Device Descriptor Block Slave Read
          command sequence.
        - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
        - ``EXTREGWRIte`` specifies searching for the Extended Register Write command sequence.
        - ``LONGEXTREGREAd`` specifies searching for the Extended Register Read Long command
          sequence.
        - ``LONGEXTREGWRIte`` specifies searching for the Extended Register Write Long command
          sequence.
        - ``REG0WRIte`` specifies searching for the Register 0 Write command sequence.
        - ``AUTHenticate`` specifies searching for the Authentication command sequence.
        - ``TRANSferbusownership`` specifies searching for the Transfer Bus Ownership (TBO) command
          sequence.
        - ``PARItyerror`` specifies searching for the parity errors.
    """  # noqa: E501


class SearchSearchItemTriggerABusSpmi(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa`` command tree.
        - ``.masteraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess`` command
          tree.
        - ``.noresponse``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse`` command.
        - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess`` command
          tree.
        - ``.slaveaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusSpmiCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusSpmiData(device, f"{self._cmd_syntax}:DATa")
        self._masteraddress = SearchSearchItemTriggerABusSpmiMasteraddress(
            device, f"{self._cmd_syntax}:MASTERADDRess"
        )
        self._noresponse = SearchSearchItemTriggerABusSpmiNoresponse(
            device, f"{self._cmd_syntax}:NORESPonse"
        )
        self._registeraddress = SearchSearchItemTriggerABusSpmiRegisteraddress(
            device, f"{self._cmd_syntax}:REGISTERADDRess"
        )
        self._slaveaddress = SearchSearchItemTriggerABusSpmiSlaveaddress(
            device, f"{self._cmd_syntax}:SLAVEADDRess"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusSpmiCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for an SPMI bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition {SSC|RESet|SLEep| SHUTdown|WAKeup|MASTERREAd|MASTERWRIte|REGREAd|REGWRIte| DEVICEDESCMASTERREAd|DEVICEDESCSLAVEREAd|EXTREGREAd| EXTREGWRIte|LONGEXTREGREAd|LONGEXTREGWRIte|REG0WRIte| AUTHenticate|TRANSferbusownership|PARItyerror}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``SSC`` specifies searching for the Sequence Start Condition.
            - ``RESet`` specifies searching for the Reset command sequence.
            - ``SLEep`` specifies searching for the Sleep command sequnce.
            - ``SHUTdown`` specifies searching for the Shutdown command sequence.
            - ``WAKeup`` specifies searching for the Wakeup command sequence.
            - ``MASTERREAd`` specifies searching for the Master Read command sequence.
            - ``MASTERWRIte`` specifies searching for the Master Write command sequence.
            - ``REGREAd`` specifies searching for the Register Read command sequence.
            - ``REGWRIte`` specifies searching for the Register Write command sequence.
            - ``DEVICEDESCMASTERREAd`` specifies searching for the Device Descriptor Block Master
              Read command sequence.
            - ``DEVICEDESCSLAVEREAd`` specifies searching for the Device Descriptor Block Slave Read
              command sequence.
            - ``EXTREGREAd`` specifies triggering on the Extended Register Read command sequence.
            - ``EXTREGWRIte`` specifies searching for the Extended Register Write command sequence.
            - ``LONGEXTREGREAd`` specifies searching for the Extended Register Read Long command
              sequence.
            - ``LONGEXTREGWRIte`` specifies searching for the Extended Register Write Long command
              sequence.
            - ``REG0WRIte`` specifies searching for the Register 0 Write command sequence.
            - ``AUTHenticate`` specifies searching for the Authentication command sequence.
            - ``TRANSferbusownership`` specifies searching for the Transfer Bus Ownership (TBO)
              command sequence.
            - ``PARItyerror`` specifies searching for the parity errors.
        """  # noqa: E501
        return self._condition

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa:VALue`` command.
        """
        return self._data

    @property
    def masteraddress(self) -> SearchSearchItemTriggerABusSpmiMasteraddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess:VALue`` command.
        """
        return self._masteraddress

    @property
    def noresponse(self) -> SearchSearchItemTriggerABusSpmiNoresponse:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse`` command.

        **Description:**
            - This command sets or queries whether or not to search for No Response frames.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` is either 'TRUE' or 'FALSE' boolean value for searching on SPMI No
              Response frames.
        """
        return self._noresponse

    @property
    def registeraddress(self) -> SearchSearchItemTriggerABusSpmiRegisteraddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess:VALue`` command.
        """
        return self._registeraddress

    @property
    def slaveaddress(self) -> SearchSearchItemTriggerABusSpmiSlaveaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess:VALue`` command.
        """
        return self._slaveaddress


class SearchSearchItemTriggerABusSpiSourcetype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe`` command.

    **Description:**
        - This command sets or queries trigger Source for SPI bus. The search number is specified by
          x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe {MISo|MOSi}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe?

    **Info:**
        - ``MISo`` specifies the trigger source as MISo. The default search source type is MISo.
        - ``MOSi`` specifies the trigger source as MOSi.
    """


class SearchSearchItemTriggerABusSpiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue`` command.

    **Description:**
        - The command sets or queries the binary data string used for an SPI bus search to determine
          where to place a mark. The search number is specified by x. The search condition must be
          DATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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. The search condition must be
          DATA. The search number is specified by x.

    **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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of contiguous data bytes.
    """


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:
        - ``.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._size = SearchSearchItemTriggerABusSpiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusSpiDataValue(device, f"{self._cmd_syntax}:VALue")

    @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. The search
              condition must be DATA. The search number is specified by x.

        **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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 binary data string used for an SPI bus search to
              determine where to place a mark. The search number is specified by x. The search
              condition must be DATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:DATa:VALue?

        **Info:**
            - ``<QString>`` 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 search condition for an SPI 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: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|STARTofframe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?

    **Info:**
        - ``DATA`` specifies the trigger condition as Data.
        - ``SS`` specifies the trigger condition as Slave Selection.
        - ``STARTofframe`` specifies the trigger condition as start of frame.
    """


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.
        - ``.sourcetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe`` command.
    """

    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")
        self._sourcetype = SearchSearchItemTriggerABusSpiSourcetype(
            device, f"{self._cmd_syntax}:SOURCETYpe"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusSpiCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for an SPI 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: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|STARTofframe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:CONDition?

        **Info:**
            - ``DATA`` specifies the trigger condition as Data.
            - ``SS`` specifies the trigger condition as Slave Selection.
            - ``STARTofframe`` specifies the trigger condition as start of frame.
        """
        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:
            - ``.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

    @property
    def sourcetype(self) -> SearchSearchItemTriggerABusSpiSourcetype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe`` command.

        **Description:**
            - This command sets or queries trigger Source for SPI bus. The search number is
              specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe {MISo|MOSi}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe?

        **Info:**
            - ``MISo`` specifies the trigger source as MISo. The default search source type is MISo.
            - ``MOSi`` specifies the trigger source as MOSi.
        """
        return self._sourcetype


class SearchSearchItemTriggerABusSpacewireTimecodeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for SpaceWire search if the
          search condition is Time Code.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``QString`` sets the binary data value to be used when searching on an SpaceWire bus
          signal.
    """


class SearchSearchItemTriggerABusSpacewireTimecode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSpacewireTimecodeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for SpaceWire search if the
              search condition is Time Code.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``QString`` sets the binary data value to be used when searching on an SpaceWire bus
              signal.
        """
        return self._value


class SearchSearchItemTriggerABusSpacewireErrortype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe`` command.

    **Description:**
        - This command sets or queries the error type for which to search on the SpaceWire bus
          signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe {EEP|ESC|PARity}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``EEP`` sets the error search type to Error end of packet.
        - ``ESC`` sets the error search type to Escape error.
        - ``PARity`` sets the error search type to Parity error.
    """


class SearchSearchItemTriggerABusSpacewireDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data value to be used when searching on an
          SpaceWire bus signal. The search condition must be set to Data (see Related Commands ).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``QString`` specifies the binary data value to search for on a SpaceWire bus signal.
    """


class SearchSearchItemTriggerABusSpacewireDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to use when
          searching on a SpaceWire bus signal. The search condition needs to be set to Data (see
          Related Commands ).

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``NR1`` is an integer value that specifies the number of contiguous data bytes to use when
          searching on the SpaceWire data field. The valid range is 1 to 10.
    """


class SearchSearchItemTriggerABusSpacewireData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusSpacewireDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string, in bytes, to use when
              searching on a SpaceWire bus signal. The search condition needs to be set to Data (see
              Related Commands ).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``NR1`` is an integer value that specifies the number of contiguous data bytes to use
              when searching on the SpaceWire data field. The valid range is 1 to 10.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusSpacewireDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data value to be used when searching on an
              SpaceWire bus signal. The search condition must be set to Data (see Related Commands
              ).

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``QString`` specifies the binary data value to search for on a SpaceWire bus signal.
        """
        return self._value


class SearchSearchItemTriggerABusSpacewireControlcodetype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe`` command.

    **Description:**
        - This command sets or queries the control code type to use when searching on a SpaceWire
          bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe {NULL|TIMECODe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``NULL`` sets the control code type to Null code.
        - ``TIMECODe`` sets the control code type to Time code (only varying part of Time code [6
          bits] is considered for search).
    """


class SearchSearchItemTriggerABusSpacewireControlchartype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe`` command.

    **Description:**
        - This command sets or queries the control character type to use when searching on a
          SpaceWire bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe {FCT|ESC|ENDOFPACKet}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``FCT`` sets the control character type to Flow Control Token.
        - ``ESC`` sets the control character type to Escape.
        - ``ENDOFPACKet`` sets the control character type to End of Packet.
    """


class SearchSearchItemTriggerABusSpacewireCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition`` command.

    **Description:**
        - This command sets or queries the field or condition for which to search on a SpaceWire
          bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition {SYNC|DATa|ERRors|CONTROLCODe|CONTROLCHAR}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``SYNC`` sets the search condition to Synchronization.
        - ``DATa`` sets the search condition to Data Characters.
        - ``ERRors`` sets the search condition to SpaceWire Bus Decode Errors.
        - ``CONTROLCODe`` sets the search condition to control code.
        - ``CONTROLCHAR`` sets the search condition to control character.
    """  # noqa: E501


class SearchSearchItemTriggerABusSpacewire(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition`` command.
        - ``.controlchartype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe``
          command.
        - ``.controlcodetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe``
          command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa`` command tree.
        - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe`` command.
        - ``.timecode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusSpacewireCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._controlchartype = SearchSearchItemTriggerABusSpacewireControlchartype(
            device, f"{self._cmd_syntax}:CONTROLCHARTYPe"
        )
        self._controlcodetype = SearchSearchItemTriggerABusSpacewireControlcodetype(
            device, f"{self._cmd_syntax}:CONTROLCODETYPe"
        )
        self._data = SearchSearchItemTriggerABusSpacewireData(device, f"{self._cmd_syntax}:DATa")
        self._errortype = SearchSearchItemTriggerABusSpacewireErrortype(
            device, f"{self._cmd_syntax}:ERRORTYPe"
        )
        self._timecode = SearchSearchItemTriggerABusSpacewireTimecode(
            device, f"{self._cmd_syntax}:TIMECode"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusSpacewireCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition`` command.

        **Description:**
            - This command sets or queries the field or condition for which to search on a SpaceWire
              bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition {SYNC|DATa|ERRors|CONTROLCODe|CONTROLCHAR}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``SYNC`` sets the search condition to Synchronization.
            - ``DATa`` sets the search condition to Data Characters.
            - ``ERRors`` sets the search condition to SpaceWire Bus Decode Errors.
            - ``CONTROLCODe`` sets the search condition to control code.
            - ``CONTROLCHAR`` sets the search condition to control character.
        """  # noqa: E501
        return self._condition

    @property
    def controlchartype(self) -> SearchSearchItemTriggerABusSpacewireControlchartype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe`` command.

        **Description:**
            - This command sets or queries the control character type to use when searching on a
              SpaceWire bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe {FCT|ESC|ENDOFPACKet}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``FCT`` sets the control character type to Flow Control Token.
            - ``ESC`` sets the control character type to Escape.
            - ``ENDOFPACKet`` sets the control character type to End of Packet.
        """
        return self._controlchartype

    @property
    def controlcodetype(self) -> SearchSearchItemTriggerABusSpacewireControlcodetype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe`` command.

        **Description:**
            - This command sets or queries the control code type to use when searching on a
              SpaceWire bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe {NULL|TIMECODe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``NULL`` sets the control code type to Null code.
            - ``TIMECODe`` sets the control code type to Time code (only varying part of Time code
              [6 bits] is considered for search).
        """
        return self._controlcodetype

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa:VALue`` command.
        """
        return self._data

    @property
    def errortype(self) -> SearchSearchItemTriggerABusSpacewireErrortype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe`` command.

        **Description:**
            - This command sets or queries the error type for which to search on the SpaceWire bus
              signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe {EEP|ESC|PARity}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``EEP`` sets the error search type to Error end of packet.
            - ``ESC`` sets the error search type to Escape error.
            - ``PARity`` sets the error search type to Parity error.
        """
        return self._errortype

    @property
    def timecode(self) -> SearchSearchItemTriggerABusSpacewireTimecode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode:VALue`` command.
        """
        return self._timecode


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 SearchSearchItemTriggerABusSmbusUdiddataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SMBUS triggering if the trigger
          condition is UDID data.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` specifies the UDID data value as the field within a SMBUS frame to search
          on. The default value is XXXXXXXX.
    """


class SearchSearchItemTriggerABusSmbusUdiddata(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSmbusUdiddataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SMBUS triggering if the trigger
              condition is UDID data.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` specifies the UDID data value as the field within a SMBUS frame to
              search on. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusSmbusFieldbyte(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe`` command.

    **Description:**
        - This command sets or queries the field byte for a SMBUS bus if trigger condition is UDID
          data.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe {ONE|TWO|FOUR}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``ONE`` sets the field byte size to 8 bits. This is the default value.
        - ``TWO`` sets the field byte size to 16 bits.
        - ``FOUR`` sets the field byte size to 32 bits.
    """


class SearchSearchItemTriggerABusSmbusErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for a SMBus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe {ANY|ACK|NACK|PEC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``ANY`` sets the error search type to ANY. This is the default value.
        - ``ACK`` sets the error search type to ACK.
        - ``NACK`` sets the error search type to NACK.
        - ``PEC`` sets the error search type to PEC.
    """


class SearchSearchItemTriggerABusSmbusError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSmbusErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for a SMBus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe {ANY|ACK|NACK|PEC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``ANY`` sets the error search type to ANY. This is the default value.
            - ``ACK`` sets the error search type to ACK.
            - ``NACK`` sets the error search type to NACK.
            - ``PEC`` sets the error search type to PEC.
        """
        return self._type


class SearchSearchItemTriggerABusSmbusDeviceaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue`` command.

    **Description:**
        - This command specifies the binary physical address string is used for SMBUS triggering if
          the trigger condition is device address.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` specifies the device address value as the field within a SMBUS frame to
          search on. The default value is XXXXXXX.
    """


class SearchSearchItemTriggerABusSmbusDeviceaddr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSmbusDeviceaddrValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue`` command.

        **Description:**
            - This command specifies the binary physical address string is used for SMBUS triggering
              if the trigger condition is device address.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` specifies the device address value as the field within a SMBUS frame to
              search on. The default value is XXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusSmbusDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SMBus triggering if the trigger
          condition is DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` specifies the data value as the field within a SMBUS frame to search on. The
          default value is XXXXXXX.
    """


class SearchSearchItemTriggerABusSmbusDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an SMBus
          trigger if the trigger condition is DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``NR1`` sets the data size value. The valid range is 1 to 8. The default data size is 1.
    """


class SearchSearchItemTriggerABusSmbusData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusSmbusDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an SMBus
              trigger if the trigger condition is DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``NR1`` sets the data size value. The valid range is 1 to 8. The default data size is
              1.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusSmbusDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SMBus triggering if the trigger
              condition is DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` specifies the data value as the field within a SMBUS frame to search on.
              The default value is XXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusSmbusCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition`` command.

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

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition {STARt| REPEATSTARt| ADDRess| HOSTADDR| DEVICEADDR| COMMand| DATa| UDIDDATa| ERRor| STOP| IDLe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition?

    **Info:**
        - ``Search<x>`` is the search number.
        - ``STARt`` sets the search condition to start. This is the default value.
        - ``REPEATSTARt`` sets the search condition to repeat start.
        - ``ADDRess`` sets the search condition to address.
        - ``HOSTADDR`` sets the search condition to host address.
        - ``DEVICEADDR`` sets the search condition to device address.
        - ``COMMand`` sets the search condition to command.
        - ``DATa`` sets the search condition to data.
        - ``UDIDDATa`` sets the search condition to UDID data.
        - ``ERRor`` sets the search condition to error.
        - ``STOP`` sets the search condition to stop.
        - ``IDLe`` sets the search condition to idle.
    """  # noqa: E501


class SearchSearchItemTriggerABusSmbusCommandValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue`` command.

    **Description:**
        - This command specifies the binary command code string used for SMBUS triggering if the
          trigger condition is command code.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` specifies the command value as the field within a SMBUS frame to search on.
          The default value is XXXXXXX.
    """


class SearchSearchItemTriggerABusSmbusCommand(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSmbusCommandValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue`` command.

        **Description:**
            - This command specifies the binary command code string used for SMBUS triggering if the
              trigger condition is command code.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` specifies the command value as the field within a SMBUS frame to search
              on. The default value is XXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusSmbusAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary physical address string used for SMBUS triggering if the
          trigger condition is address.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue?

    **Info:**
        - ``Search<x>`` is the search identifier number.
        - ``<Qstring>`` specifies the address value as the field within a SMBUS frame to search on.
          The default value is XXXXXXX.
    """


class SearchSearchItemTriggerABusSmbusAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSmbusAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary physical address string used for SMBUS triggering if
              the trigger condition is address.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue?

        **Info:**
            - ``Search<x>`` is the search identifier number.
            - ``<Qstring>`` specifies the address value as the field within a SMBUS frame to search
              on. The default value is XXXXXXX.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusSmbus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess`` command tree.
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa`` command tree.
        - ``.deviceaddr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr`` command tree.
        - ``.fieldbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe`` command.
        - ``.udiddata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusSmbusAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._command = SearchSearchItemTriggerABusSmbusCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )
        self._condition = SearchSearchItemTriggerABusSmbusCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusSmbusData(device, f"{self._cmd_syntax}:DATa")
        self._deviceaddr = SearchSearchItemTriggerABusSmbusDeviceaddr(
            device, f"{self._cmd_syntax}:DEVICEADDR"
        )
        self._error = SearchSearchItemTriggerABusSmbusError(device, f"{self._cmd_syntax}:ERROr")
        self._fieldbyte = SearchSearchItemTriggerABusSmbusFieldbyte(
            device, f"{self._cmd_syntax}:FIELDBYTe"
        )
        self._udiddata = SearchSearchItemTriggerABusSmbusUdiddata(
            device, f"{self._cmd_syntax}:UDIDDATa"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusSmbusAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def command(self) -> SearchSearchItemTriggerABusSmbusCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand:VALue`` command.
        """
        return self._command

    @property
    def condition(self) -> SearchSearchItemTriggerABusSmbusCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition`` command.

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

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition {STARt| REPEATSTARt| ADDRess| HOSTADDR| DEVICEADDR| COMMand| DATa| UDIDDATa| ERRor| STOP| IDLe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``STARt`` sets the search condition to start. This is the default value.
            - ``REPEATSTARt`` sets the search condition to repeat start.
            - ``ADDRess`` sets the search condition to address.
            - ``HOSTADDR`` sets the search condition to host address.
            - ``DEVICEADDR`` sets the search condition to device address.
            - ``COMMand`` sets the search condition to command.
            - ``DATa`` sets the search condition to data.
            - ``UDIDDATa`` sets the search condition to UDID data.
            - ``ERRor`` sets the search condition to error.
            - ``STOP`` sets the search condition to stop.
            - ``IDLe`` sets the search condition to idle.
        """  # noqa: E501
        return self._condition

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa:VALue`` command.
        """
        return self._data

    @property
    def deviceaddr(self) -> SearchSearchItemTriggerABusSmbusDeviceaddr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR:VALue`` command.
        """
        return self._deviceaddr

    @property
    def error(self) -> SearchSearchItemTriggerABusSmbusError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr:TYPe`` command.
        """
        return self._error

    @property
    def fieldbyte(self) -> SearchSearchItemTriggerABusSmbusFieldbyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe`` command.

        **Description:**
            - This command sets or queries the field byte for a SMBUS bus if trigger condition is
              UDID data.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe {ONE|TWO|FOUR}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe?

        **Info:**
            - ``Search<x>`` is the search number.
            - ``ONE`` sets the field byte size to 8 bits. This is the default value.
            - ``TWO`` sets the field byte size to 16 bits.
            - ``FOUR`` sets the field byte size to 32 bits.
        """
        return self._fieldbyte

    @property
    def udiddata(self) -> SearchSearchItemTriggerABusSmbusUdiddata:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa:VALue`` command.
        """
        return self._udiddata


class SearchSearchItemTriggerABusSentSlowIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the binary slow identifier value to be used when searching on
          a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the slow channel identifier binary value.
    """


class SearchSearchItemTriggerABusSentSlowIdentifier(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSentSlowIdentifierValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the binary slow identifier value to be used when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the slow channel identifier binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentSlowDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue`` command.

    **Description:**
        - This command sets or queries the binary slow channel data value to be used when searching
          on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the slow channel data binary value.
    """


class SearchSearchItemTriggerABusSentSlowDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on SENT slow packet
          bus data.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQualINrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``LESSThan`` sets the qualifier as Less Than.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``MOREThan`` sets the qualifier as More Than.
        - ``UNEQual`` specifies the qualifier as Unequal.
        - ``INrange`` sets the search qualifier to inside a range.
        - ``OUTrange`` sets the search qualifier to outside a range.
    """  # noqa: E501


class SearchSearchItemTriggerABusSentSlowDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary Slow channel data value to use when searching
          on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` sets the binary Slow channel data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSentSlowData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA`` command tree.

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

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusSentSlowDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusSentSlowDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusSentSlowDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusSentSlowDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary Slow channel data value to use when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` sets the binary Slow channel data value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusSentSlowDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on SENT slow
              packet bus data.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQualINrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``LESSThan`` sets the qualifier as Less Than.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``MOREThan`` sets the qualifier as More Than.
            - ``UNEQual`` specifies the qualifier as Unequal.
            - ``INrange`` sets the search qualifier to inside a range.
            - ``OUTrange`` sets the search qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusSentSlowDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue`` command.

        **Description:**
            - This command sets or queries the binary slow channel data value to be used when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the slow channel data binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentSlow(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA`` command tree.
        - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerABusSentSlowData(device, f"{self._cmd_syntax}:DATA")
        self._identifier = SearchSearchItemTriggerABusSentSlowIdentifier(
            device, f"{self._cmd_syntax}:IDentifier"
        )

    @property
    def data(self) -> SearchSearchItemTriggerABusSentSlowData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA`` command tree.

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

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA:VALue`` command.
        """
        return self._data

    @property
    def identifier(self) -> SearchSearchItemTriggerABusSentSlowIdentifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier:VALue`` command.
        """
        return self._identifier


class SearchSearchItemTriggerABusSentPauseTicksValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue`` command.

    **Description:**
        - This command sets or queries the minimum number of pause clock ticks to be used when
          searching on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<NR1>`` is the minimum number of pause clock ticks to be used when searching.
    """


class SearchSearchItemTriggerABusSentPauseTicksHivalue(SCPICmdWriteNoArguments, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue`` command.

    **Description:**
        - This command sets or queries the maximum number of pause clock ticks to be used when
          searching on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<NR1>`` is the maximum number of pause clock ticks to be used when searching.
    """


class SearchSearchItemTriggerABusSentPauseTicks(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs`` command tree.

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

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue`` command.
    """

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

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusSentPauseTicksHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue`` command.

        **Description:**
            - This command sets or queries the maximum number of pause clock ticks to be used when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<NR1>`` is the maximum number of pause clock ticks to be used when searching.
        """
        return self._hivalue

    @property
    def value(self) -> SearchSearchItemTriggerABusSentPauseTicksValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue`` command.

        **Description:**
            - This command sets or queries the minimum number of pause clock ticks to be used when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<NR1>`` is the minimum number of pause clock ticks to be used when searching.
        """
        return self._value


class SearchSearchItemTriggerABusSentPauseQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on SENT pause pulses.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EQUal`` specifies the qualifier as Equal.
        - ``INrange`` sets the qualifier to be within a range.
        - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
        - ``LESSThan`` sets the qualifier as Less Than.
        - ``MOREEQual`` sets the qualifier as More Than or Equal to.
        - ``MOREThan`` sets the qualifier as More Than.
        - ``OUTrange`` sets the qualifier to be outside a range.
        - ``UNEQual`` specifies the qualifier as Unequal.
    """  # noqa: E501


class SearchSearchItemTriggerABusSentPause(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE`` command tree.

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

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier`` command.
        - ``.ticks``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._qualifier = SearchSearchItemTriggerABusSentPauseQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._ticks = SearchSearchItemTriggerABusSentPauseTicks(device, f"{self._cmd_syntax}:TICKs")

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusSentPauseQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on SENT pause
              pulses.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EQUal`` specifies the qualifier as Equal.
            - ``INrange`` sets the qualifier to be within a range.
            - ``LESSEQual`` sets the qualifier as Less Than or Equal to.
            - ``LESSThan`` sets the qualifier as Less Than.
            - ``MOREEQual`` sets the qualifier as More Than or Equal to.
            - ``MOREThan`` sets the qualifier as More Than.
            - ``OUTrange`` sets the qualifier to be outside a range.
            - ``UNEQual`` specifies the qualifier as Unequal.
        """  # noqa: E501
        return self._qualifier

    @property
    def ticks(self) -> SearchSearchItemTriggerABusSentPauseTicks:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs`` command tree.

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

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:HIVALue`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs:VALue`` command.
        """
        return self._ticks


class SearchSearchItemTriggerABusSentFastStatusValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue`` command.

    **Description:**
        - This command sets or queries the binary status value to be used when searching on a SENT
          bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the binary status binary value.
    """


class SearchSearchItemTriggerABusSentFastStatus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSentFastStatusValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue`` command.

        **Description:**
            - This command sets or queries the binary status value to be used when searching on a
              SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the binary status binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentFastInvertnibbleValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message inverted nibble value to be used when
          searching on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the fast message inverted nibble binary value.
    """


class SearchSearchItemTriggerABusSentFastInvertnibble(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSentFastInvertnibbleValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message inverted nibble value to be used
              when searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the fast message inverted nibble binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentFastCounterValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast message counter value to be used when
          searching on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the Fast Channel 1 counter value.
    """


class SearchSearchItemTriggerABusSentFastCounterQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on SENT fast packet
          bus data for the secure format counter.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``MOREThan`` specifies the qualifier as More Than.
        - ``UNEQual`` specifies the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class SearchSearchItemTriggerABusSentFastCounterHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast message counter value to use when
          searching on a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` sets the Fast Channel 1 counter binary value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSentFastCounter(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer`` command tree.

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

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusSentFastCounterHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusSentFastCounterQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusSentFastCounterValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusSentFastCounterHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast message counter value to use when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` sets the Fast Channel 1 counter binary value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusSentFastCounterQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on SENT fast
              packet bus data for the secure format counter.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``MOREThan`` specifies the qualifier as More Than.
            - ``UNEQual`` specifies the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusSentFastCounterValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast message counter value to be used when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the Fast Channel 1 counter value.
        """
        return self._value


class SearchSearchItemTriggerABusSentFastChan2bValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 2 value to be used when searching on
          a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the Fast Channel 2 binary value.
    """


class SearchSearchItemTriggerABusSentFastChan2bQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on SENT fast packet
          bus data for device channel 2.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``MOREThan`` specifies the qualifier as More Than.
        - ``UNEQual`` specifies the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class SearchSearchItemTriggerABusSentFastChan2bHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 2 value to use when searching on
          a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` sets the Fast Channel 2 high binary data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSentFastChan2b(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B`` command tree.

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

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusSentFastChan2bHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusSentFastChan2bQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusSentFastChan2bValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusSentFastChan2bHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 2 value to use when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` sets the Fast Channel 2 high binary data value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusSentFastChan2bQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on SENT fast
              packet bus data for device channel 2.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``MOREThan`` specifies the qualifier as More Than.
            - ``UNEQual`` specifies the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusSentFastChan2bValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 2 value to be used when searching
              on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the Fast Channel 2 binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentFastChan1aValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue`` command.

    **Description:**
        - This command sets or queries the binary fast channel 1 value to be used when searching on
          a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<Qstring>`` is the Fast Channel 1 binary value.
    """


class SearchSearchItemTriggerABusSentFastChan1aQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on SENT fast packet
          bus data for device channel 1.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EQUal`` specifies the qualifier as Equal.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``LESSThan`` specifies the qualifier as Less Than.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``MOREThan`` specifies the qualifier as More Than.
        - ``UNEQual`` specifies the qualifier as Unequal.
        - ``INrange`` sets the qualifier to inside a range.
        - ``OUTrange`` sets the qualifier to outside a range.
    """  # noqa: E501


class SearchSearchItemTriggerABusSentFastChan1aHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue`` command.

    **Description:**
        - This command sets or queries the high binary fast channel 1 value to use when searching on
          a SENT bus signal.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` sets the Fast Channel 1 binary data high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSentFastChan1a(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A`` command tree.

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

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusSentFastChan1aHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusSentFastChan1aQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusSentFastChan1aValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusSentFastChan1aHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue`` command.

        **Description:**
            - This command sets or queries the high binary fast channel 1 value to use when
              searching on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` sets the Fast Channel 1 binary data high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusSentFastChan1aQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on SENT fast
              packet bus data for device channel 1.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier {EQual|UNEQual|LESSthan|MOREthan| LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EQUal`` specifies the qualifier as Equal.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``LESSThan`` specifies the qualifier as Less Than.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``MOREThan`` specifies the qualifier as More Than.
            - ``UNEQual`` specifies the qualifier as Unequal.
            - ``INrange`` sets the qualifier to inside a range.
            - ``OUTrange`` sets the qualifier to outside a range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusSentFastChan1aValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue`` command.

        **Description:**
            - This command sets or queries the binary fast channel 1 value to be used when searching
              on a SENT bus signal.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<Qstring>`` is the Fast Channel 1 binary value.
        """
        return self._value


class SearchSearchItemTriggerABusSentFast(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST`` command tree.

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

    Properties:
        - ``.chan1a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A`` command tree.
        - ``.chan2b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B`` command tree.
        - ``.counter``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer`` command tree.
        - ``.invertnibble``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble`` command
          tree.
        - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._chan1a = SearchSearchItemTriggerABusSentFastChan1a(
            device, f"{self._cmd_syntax}:CHAN1A"
        )
        self._chan2b = SearchSearchItemTriggerABusSentFastChan2b(
            device, f"{self._cmd_syntax}:CHAN2B"
        )
        self._counter = SearchSearchItemTriggerABusSentFastCounter(
            device, f"{self._cmd_syntax}:COUNTer"
        )
        self._invertnibble = SearchSearchItemTriggerABusSentFastInvertnibble(
            device, f"{self._cmd_syntax}:INVERTNIBble"
        )
        self._status = SearchSearchItemTriggerABusSentFastStatus(
            device, f"{self._cmd_syntax}:STATus"
        )

    @property
    def chan1a(self) -> SearchSearchItemTriggerABusSentFastChan1a:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A`` command tree.

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

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A:VALue`` command.
        """
        return self._chan1a

    @property
    def chan2b(self) -> SearchSearchItemTriggerABusSentFastChan2b:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B`` command tree.

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

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B:VALue`` command.
        """
        return self._chan2b

    @property
    def counter(self) -> SearchSearchItemTriggerABusSentFastCounter:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer`` command tree.

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

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:HIVALue``
              command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer:VALue`` command.
        """
        return self._counter

    @property
    def invertnibble(self) -> SearchSearchItemTriggerABusSentFastInvertnibble:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble:VALue``
              command.
        """
        return self._invertnibble

    @property
    def status(self) -> SearchSearchItemTriggerABusSentFastStatus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus:VALue`` command.
        """
        return self._status


class SearchSearchItemTriggerABusSentErrtypeCrc(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC`` command.

    **Description:**
        - This command sets or queries the CRC error type to be used when searching on SENT data.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC {FAST|SLOW}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``FAST`` specifies searching for CRC errors only in the fast channel.
        - ``SLOW`` specifies searching for CRC errors only in the slow channel.
    """


class SearchSearchItemTriggerABusSentErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType`` command.

    **Description:**
        - This command sets or queries the error type to be used when searching on SENT data.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType {FRAMELENgth|CRC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``FRAMELENgth`` specifies searching for SENT frame length errors.
        - ``CRC`` specifies searching for CRC errors.

    Properties:
        - ``.crc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC`` command.
    """

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

    @property
    def crc(self) -> SearchSearchItemTriggerABusSentErrtypeCrc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC`` command.

        **Description:**
            - This command sets or queries the CRC error type to be used when searching on SENT
              data.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC {FAST|SLOW}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``FAST`` specifies searching for CRC errors only in the fast channel.
            - ``SLOW`` specifies searching for CRC errors only in the slow channel.
        """
        return self._crc


class SearchSearchItemTriggerABusSentCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for a SENT bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition {START|FAST|SLOW|PAUSE|ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``START`` specifies searching for start of packet.
        - ``FAST`` specifies searching for fast channel data.
        - ``SLOW`` specifies searching for slow channel data.
        - ``PAUSE`` specifies searching for pause pulses.
        - ``ERRor`` specifies searching on errors.
    """


class SearchSearchItemTriggerABusSent(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT`` command tree.

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

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition`` command.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType`` command.
        - ``.fast``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST`` command tree.
        - ``.pause``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE`` command tree.
        - ``.slow``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusSentCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._errtype = SearchSearchItemTriggerABusSentErrtype(
            device, f"{self._cmd_syntax}:ERRType"
        )
        self._fast = SearchSearchItemTriggerABusSentFast(device, f"{self._cmd_syntax}:FAST")
        self._pause = SearchSearchItemTriggerABusSentPause(device, f"{self._cmd_syntax}:PAUSE")
        self._slow = SearchSearchItemTriggerABusSentSlow(device, f"{self._cmd_syntax}:SLOW")

    @property
    def condition(self) -> SearchSearchItemTriggerABusSentCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition`` command.

        **Description:**
            - This command sets or queries the search condition for a SENT bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition {START|FAST|SLOW|PAUSE|ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``START`` specifies searching for start of packet.
            - ``FAST`` specifies searching for fast channel data.
            - ``SLOW`` specifies searching for slow channel data.
            - ``PAUSE`` specifies searching for pause pulses.
            - ``ERRor`` specifies searching on errors.
        """
        return self._condition

    @property
    def errtype(self) -> SearchSearchItemTriggerABusSentErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType`` command.

        **Description:**
            - This command sets or queries the error type to be used when searching on SENT data.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType {FRAMELENgth|CRC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``FRAMELENgth`` specifies searching for SENT frame length errors.
            - ``CRC`` specifies searching for CRC errors.

        Sub-properties:
            - ``.crc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType:CRC`` command.
        """
        return self._errtype

    @property
    def fast(self) -> SearchSearchItemTriggerABusSentFast:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST`` command tree.

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

        Sub-properties:
            - ``.chan1a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN1A`` command tree.
            - ``.chan2b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:CHAN2B`` command tree.
            - ``.counter``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:COUNTer`` command tree.
            - ``.invertnibble``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:INVERTNIBble``
              command tree.
            - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST:STATus`` command tree.
        """
        return self._fast

    @property
    def pause(self) -> SearchSearchItemTriggerABusSentPause:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE`` command tree.

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

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:QUALifier`` command.
            - ``.ticks``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE:TICKs`` command tree.
        """
        return self._pause

    @property
    def slow(self) -> SearchSearchItemTriggerABusSentSlow:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW`` command tree.

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

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:DATA`` command tree.
            - ``.identifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW:IDentifier`` command
              tree.
        """
        return self._slow


class SearchSearchItemTriggerABusSdlcUnnumberedFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe`` command.

    **Description:**
        - This command sets or queries the Unnumbered Frame Type in SDLC bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe {UP| UI| SNRM| SNRME| REQDISConnect| UACK| REQSETINIT| DISCMODe| FRAMEREJ| TEST| XID| CONFigure| BEACon}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``UP`` sets the Unnumbered Frame Type as UP.
        - ``UI`` sets the Unnumbered Frame Type as UI.
        - ``SNRM`` sets the Unnumbered Frame Type as SNRM.
        - ``SNRME`` sets the Unnumbered Frame Type as SNRME.
        - ``REQDISConnect`` sets the Unnumbered Frame Type as REQDISConnect.
        - ``UACK`` sets the Unnumbered Frame Type as UACK.
        - ``REQSETINIT`` sets the Unnumbered Frame Type as REQSETINIT.
        - ``DISCMODe`` sets the Unnumbered Frame Type as DISCMODe.
        - ``FRAMEREJ`` sets the Unnumbered Frame Type as FRAMEREJ.
        - ``TEST`` sets the Unnumbered Frame Type as TEST.
        - ``XID`` sets the Unnumbered Frame Type as XID.
        - ``CONFigure`` sets the Unnumbered Frame Type as CONFigure.
        - ``BEACon`` sets the Unnumbered Frame Type as BEACon.
    """  # noqa: E501


class SearchSearchItemTriggerABusSdlcUnnumbered(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered`` command tree.

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

    Properties:
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe`` command.
    """

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

    @property
    def frametype(self) -> SearchSearchItemTriggerABusSdlcUnnumberedFrametype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe`` command.

        **Description:**
            - This command sets or queries the Unnumbered Frame Type in SDLC bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe {UP| UI| SNRM| SNRME| REQDISConnect| UACK| REQSETINIT| DISCMODe| FRAMEREJ| TEST| XID| CONFigure| BEACon}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``UP`` sets the Unnumbered Frame Type as UP.
            - ``UI`` sets the Unnumbered Frame Type as UI.
            - ``SNRM`` sets the Unnumbered Frame Type as SNRM.
            - ``SNRME`` sets the Unnumbered Frame Type as SNRME.
            - ``REQDISConnect`` sets the Unnumbered Frame Type as REQDISConnect.
            - ``UACK`` sets the Unnumbered Frame Type as UACK.
            - ``REQSETINIT`` sets the Unnumbered Frame Type as REQSETINIT.
            - ``DISCMODe`` sets the Unnumbered Frame Type as DISCMODe.
            - ``FRAMEREJ`` sets the Unnumbered Frame Type as FRAMEREJ.
            - ``TEST`` sets the Unnumbered Frame Type as TEST.
            - ``XID`` sets the Unnumbered Frame Type as XID.
            - ``CONFigure`` sets the Unnumbered Frame Type as CONFigure.
            - ``BEACon`` sets the Unnumbered Frame Type as BEACon.
        """  # noqa: E501
        return self._frametype


class SearchSearchItemTriggerABusSdlcSupervisoryFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe`` command.

    **Description:**
        - This command sets or queries the Supervisory Frame Type in SDLC bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe {RR|RNR|REJ}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``RR`` sets the frame type as RR.
        - ``RNR`` sets the frame type as RNR.
        - ``REJ`` sets the frame type as REJ.
    """


class SearchSearchItemTriggerABusSdlcSupervisory(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory`` command tree.

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

    Properties:
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe`` command.
    """

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

    @property
    def frametype(self) -> SearchSearchItemTriggerABusSdlcSupervisoryFrametype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe`` command.

        **Description:**
            - This command sets or queries the Supervisory Frame Type in SDLC bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe {RR|RNR|REJ}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``RR`` sets the frame type as RR.
            - ``RNR`` sets the frame type as RNR.
            - ``REJ`` sets the frame type as REJ.
        """
        return self._frametype


class SearchSearchItemTriggerABusSdlcStaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue`` command.

    **Description:**
        - This command specifies the binary Station Address string used for SDLC triggering if the
          trigger condition is Address. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue?

    **Info:**
        - ``<QString>`` specifies the value of the data string. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSdlcStaddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusSdlcStaddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue`` command.

        **Description:**
            - This command specifies the binary Station Address string used for SDLC triggering if
              the trigger condition is Address. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue?

        **Info:**
            - ``<QString>`` specifies the value of the data string. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusSdlcFrameType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe`` command.

    **Description:**
        - This command sets or queries the Frame Type in SDLC bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe {COMMand|RESPonse|BOTH}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``COMMand`` sets Command as the Frame Type in SDLC bus. The default value of frame type
          for SDLC Unnumbered frame is Command.
        - ``RESPonse`` sets Response as the Frame Type in SDLC bus.
        - ``BOTH`` sets both Command and Response as the Frame Type in SDLC bus.
    """


class SearchSearchItemTriggerABusSdlcFrame(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSdlcFrameType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe`` command.

        **Description:**
            - This command sets or queries the Frame Type in SDLC bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe {COMMand|RESPonse|BOTH}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``COMMand`` sets Command as the Frame Type in SDLC bus. The default value of frame
              type for SDLC Unnumbered frame is Command.
            - ``RESPonse`` sets Response as the Frame Type in SDLC bus.
            - ``BOTH`` sets both Command and Response as the Frame Type in SDLC bus.
        """
        return self._type


class SearchSearchItemTriggerABusSdlcErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe`` command.

    **Description:**
        - This command sets or queries the Error Type in SDLC bus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe {FCS|NUMERICORDer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``FCS`` sets FCS as the Error Type in SDLC bus. The default error type condition is FCS.
        - ``NUMERICORDer`` sets NUMERICORDer as the Error Type in SDLC bus.
    """


class SearchSearchItemTriggerABusSdlcError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSdlcErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe`` command.

        **Description:**
            - This command sets or queries the Error Type in SDLC bus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe {FCS|NUMERICORDer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``FCS`` sets FCS as the Error Type in SDLC bus. The default error type condition is
              FCS.
            - ``NUMERICORDer`` sets NUMERICORDer as the Error Type in SDLC bus.
        """
        return self._type


class SearchSearchItemTriggerABusSdlcDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for SDLC triggering if the trigger
          condition is DATA. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the value of the data string. The default value is XXXXXXXX .
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusSdlcDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for SDLC
          triggering if the trigger condition is DATA. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe <NR3>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe?

    **Info:**
        - ``<NR3>`` is the length of the data string in bytes. The default Data size is 1, otherwise
          ranges between 1 to 5.
    """


class SearchSearchItemTriggerABusSdlcData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusSdlcDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for SDLC
              triggering if the trigger condition is DATA. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe <NR3>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe?

        **Info:**
            - ``<NR3>`` is the length of the data string in bytes. The default Data size is 1,
              otherwise ranges between 1 to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusSdlcDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for SDLC triggering if the trigger
              condition is DATA. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the value of the data string. The default value is XXXXXXXX .
        """
        return self._value


class SearchSearchItemTriggerABusSdlcCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition`` command.

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

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition {STARt| DATa| ABORt| ADDRess| UNNumbered| INFormation| SUPervisory| ERRors| END}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``STARt`` specifies start as the field within a SDLC frame to search on. The default
          Trigger on Condtion is STARt.
        - ``DATa`` specifies data as the field within a SDLC frame to search on.
        - ``ABORt`` specifies abort as the field within a SDLC frame to search on.
        - ``ADDRess`` specifies address as the field within a SDLC frame to search on.
        - ``UNNumbered`` specifies unnumbered as the field within a SDLC frame to search on.
        - ``INFormation`` specifies information as the field within a SDLC frame to search on.
        - ``SUPervisory`` specifies supervisory as the field within a SDLC frame to search on.
        - ``ERRors`` specifies errors as the field within a SDLC frame to search on.
        - ``END`` specifies end as the field within a SDLC frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusSdlcAddressType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe`` command.

    **Description:**
        - This commands specifies the Address type in SDLC frame which can be Broadcast, No-Station
          and Address value can be specified.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe {BROadcast|NOSTATion|STATIONADDr}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``BROadcast`` specifies the Broadcast as the field within a SDLC frame to search on.
          BROadcast is the default value.
        - ``NOSTATion`` specifies the No-Station as the field within a SDLC frame to search on.
        - ``STATIONADDr`` specifies the Address as the field within a SDLC frame to search on.
    """


class SearchSearchItemTriggerABusSdlcAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess`` command tree.

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

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe`` command.
    """

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

    @property
    def type(self) -> SearchSearchItemTriggerABusSdlcAddressType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe`` command.

        **Description:**
            - This commands specifies the Address type in SDLC frame which can be Broadcast,
              No-Station and Address value can be specified.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe {BROadcast|NOSTATion|STATIONADDr}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``BROadcast`` specifies the Broadcast as the field within a SDLC frame to search on.
              BROadcast is the default value.
            - ``NOSTATion`` specifies the No-Station as the field within a SDLC frame to search on.
            - ``STATIONADDr`` specifies the Address as the field within a SDLC frame to search on.
        """
        return self._type


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusSdlc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC`` command tree.

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

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR`` command tree.
        - ``.frame``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe`` command tree.
        - ``.staddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress`` command tree.
        - ``.supervisory``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory`` command tree.
        - ``.unnumbered``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusSdlcAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._condition = SearchSearchItemTriggerABusSdlcCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusSdlcData(device, f"{self._cmd_syntax}:DATa")
        self._error = SearchSearchItemTriggerABusSdlcError(device, f"{self._cmd_syntax}:ERROR")
        self._frame = SearchSearchItemTriggerABusSdlcFrame(device, f"{self._cmd_syntax}:FRAMe")
        self._staddress = SearchSearchItemTriggerABusSdlcStaddress(
            device, f"{self._cmd_syntax}:STADDress"
        )
        self._supervisory = SearchSearchItemTriggerABusSdlcSupervisory(
            device, f"{self._cmd_syntax}:SUPervisory"
        )
        self._unnumbered = SearchSearchItemTriggerABusSdlcUnnumbered(
            device, f"{self._cmd_syntax}:UNNumbered"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusSdlcAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess:TYPe`` command.
        """
        return self._address

    @property
    def condition(self) -> SearchSearchItemTriggerABusSdlcCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition`` command.

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

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition {STARt| DATa| ABORt| ADDRess| UNNumbered| INFormation| SUPervisory| ERRors| END}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``STARt`` specifies start as the field within a SDLC frame to search on. The default
              Trigger on Condtion is STARt.
            - ``DATa`` specifies data as the field within a SDLC frame to search on.
            - ``ABORt`` specifies abort as the field within a SDLC frame to search on.
            - ``ADDRess`` specifies address as the field within a SDLC frame to search on.
            - ``UNNumbered`` specifies unnumbered as the field within a SDLC frame to search on.
            - ``INFormation`` specifies information as the field within a SDLC frame to search on.
            - ``SUPervisory`` specifies supervisory as the field within a SDLC frame to search on.
            - ``ERRors`` specifies errors as the field within a SDLC frame to search on.
            - ``END`` specifies end as the field within a SDLC frame to search on.
        """  # noqa: E501
        return self._condition

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa:VALue`` command.
        """
        return self._data

    @property
    def error(self) -> SearchSearchItemTriggerABusSdlcError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR:TYPe`` command.
        """
        return self._error

    @property
    def frame(self) -> SearchSearchItemTriggerABusSdlcFrame:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe`` command tree.

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

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe:TYPe`` command.
        """
        return self._frame

    @property
    def staddress(self) -> SearchSearchItemTriggerABusSdlcStaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress:VALue`` command.
        """
        return self._staddress

    @property
    def supervisory(self) -> SearchSearchItemTriggerABusSdlcSupervisory:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory`` command tree.

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

        Sub-properties:
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory:FRAMETYPe``
              command.
        """
        return self._supervisory

    @property
    def unnumbered(self) -> SearchSearchItemTriggerABusSdlcUnnumbered:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered`` command tree.

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

        Sub-properties:
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered:FRAMETYPe``
              command.
        """
        return self._unnumbered


class SearchSearchItemTriggerABusS8b10bSymbolType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe`` command.

    **Description:**
        - This command sets or queries the type of symbol when searching on 8b10b signal. The search
          condition must be set to Symbols.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe {DATa|CONTrol}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``DATa`` specifies searching for Data Symbols.
        - ``CONTrol`` specifies searching for Control Symbols.
    """


class SearchSearchItemTriggerABusS8b10bSymbolTbitvalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue`` command.

    **Description:**
        - This command specifies the 10 bit value to be used when searching on an 8b10b signal. The
          default is all X's (don't care). The search condition needs to be set to Symbols. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?`` query and raise 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:SYMbol:TBITVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` specifies the 10 bit value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusS8b10bSymbolTbitrdpos(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos`` command.

    **Description:**
        - This command specifies the 10 bit RD positive value to be used when searching on an 8b10b
          signal. The default is all X's (don't care). The search condition needs to be set to
          Symbols. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?`` query and raise 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:SYMbol:TBITRDPos value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` specifies the 10 bit RD positive value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusS8b10bSymbolTbitrdneg(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg`` command.

    **Description:**
        - This command specifies the 10 bit RD negative value to be used when searching on an 8b10b
          signal. The default is all X's (don't care). The search condition needs to be set to
          Symbols. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?`` query and raise 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:SYMbol:TBITRDNeg value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` specifies the 10 bit RD negative value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusS8b10bSymbolMode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe`` command.

    **Description:**
        - This command sets or queries the mode of data search to be used when searching on 8b10b
          signal. The search condition must be set to Symbols.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe {EBIT|TBIT|SYMB}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``EBIT`` specifies searching for Eight Bit data.
        - ``TBIT`` specifies searching for Ten bit data (6 bits and 4 bits combined). Only valid
          values are considered.
        - ``SYMB`` specifies searching for symbol data with disparity. Takes only K and D with
          possible values.
    """


class SearchSearchItemTriggerABusS8b10bSymbolEbitvalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue`` command.

    **Description:**
        - This command specifies the 8 bit value to be used when searching on an 8b10b signal. The
          default is all X's (don't care). The search condition needs to be set to Symbols. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?`` query and raise 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:SYMbol:EBITVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` specifies the 8 bit value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusS8b10bSymbolCsymvalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue`` command.

    **Description:**
        - This command sets or queries the control symbol value to be used when searching on 8b10b
          signal. The default is all X's (don't care). The search condition needs to be set to
          Symbols. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?`` query and raise 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:SYMbol:CSYMVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``<Qstring>`` specifies the 10 bit value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusS8b10bSymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol`` command tree.

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

    Properties:
        - ``.csymvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue`` command.
        - ``.ebitvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue`` command.
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe`` command.
        - ``.tbitrdneg``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg`` command.
        - ``.tbitrdpos``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos`` command.
        - ``.tbitvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._csymvalue = SearchSearchItemTriggerABusS8b10bSymbolCsymvalue(
            device, f"{self._cmd_syntax}:CSYMVALue"
        )
        self._ebitvalue = SearchSearchItemTriggerABusS8b10bSymbolEbitvalue(
            device, f"{self._cmd_syntax}:EBITVALue"
        )
        self._mode = SearchSearchItemTriggerABusS8b10bSymbolMode(device, f"{self._cmd_syntax}:MODe")
        self._tbitrdneg = SearchSearchItemTriggerABusS8b10bSymbolTbitrdneg(
            device, f"{self._cmd_syntax}:TBITRDNeg"
        )
        self._tbitrdpos = SearchSearchItemTriggerABusS8b10bSymbolTbitrdpos(
            device, f"{self._cmd_syntax}:TBITRDPos"
        )
        self._tbitvalue = SearchSearchItemTriggerABusS8b10bSymbolTbitvalue(
            device, f"{self._cmd_syntax}:TBITVALue"
        )
        self._type = SearchSearchItemTriggerABusS8b10bSymbolType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def csymvalue(self) -> SearchSearchItemTriggerABusS8b10bSymbolCsymvalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue`` command.

        **Description:**
            - This command sets or queries the control symbol value to be used when searching on
              8b10b signal. The default is all X's (don't care). The search condition needs to be
              set to Symbols. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?`` query and raise 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:SYMbol:CSYMVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` specifies the 10 bit value.
        """
        return self._csymvalue

    @property
    def ebitvalue(self) -> SearchSearchItemTriggerABusS8b10bSymbolEbitvalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue`` command.

        **Description:**
            - This command specifies the 8 bit value to be used when searching on an 8b10b signal.
              The default is all X's (don't care). The search condition needs to be set to Symbols.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?`` query and raise 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:SYMbol:EBITVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` specifies the 8 bit value.
        """
        return self._ebitvalue

    @property
    def mode(self) -> SearchSearchItemTriggerABusS8b10bSymbolMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe`` command.

        **Description:**
            - This command sets or queries the mode of data search to be used when searching on
              8b10b signal. The search condition must be set to Symbols.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe {EBIT|TBIT|SYMB}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``EBIT`` specifies searching for Eight Bit data.
            - ``TBIT`` specifies searching for Ten bit data (6 bits and 4 bits combined). Only valid
              values are considered.
            - ``SYMB`` specifies searching for symbol data with disparity. Takes only K and D with
              possible values.
        """
        return self._mode

    @property
    def tbitrdneg(self) -> SearchSearchItemTriggerABusS8b10bSymbolTbitrdneg:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg`` command.

        **Description:**
            - This command specifies the 10 bit RD negative value to be used when searching on an
              8b10b signal. The default is all X's (don't care). The search condition needs to be
              set to Symbols. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?`` query and raise 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:SYMbol:TBITRDNeg value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` specifies the 10 bit RD negative value.
        """
        return self._tbitrdneg

    @property
    def tbitrdpos(self) -> SearchSearchItemTriggerABusS8b10bSymbolTbitrdpos:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos`` command.

        **Description:**
            - This command specifies the 10 bit RD positive value to be used when searching on an
              8b10b signal. The default is all X's (don't care). The search condition needs to be
              set to Symbols. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?`` query and raise 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:SYMbol:TBITRDPos value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` specifies the 10 bit RD positive value.
        """
        return self._tbitrdpos

    @property
    def tbitvalue(self) -> SearchSearchItemTriggerABusS8b10bSymbolTbitvalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue`` command.

        **Description:**
            - This command specifies the 10 bit value to be used when searching on an 8b10b signal.
              The default is all X's (don't care). The search condition needs to be set to Symbols.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?`` query and raise 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:SYMbol:TBITVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``<Qstring>`` specifies the 10 bit value.
        """
        return self._tbitvalue

    @property
    def type(self) -> SearchSearchItemTriggerABusS8b10bSymbolType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe`` command.

        **Description:**
            - This command sets or queries the type of symbol when searching on 8b10b signal. The
              search condition must be set to Symbols.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe {DATa|CONTrol}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``DATa`` specifies searching for Data Symbols.
            - ``CONTrol`` specifies searching for Control Symbols.
        """
        return self._type


class SearchSearchItemTriggerABusS8b10bError(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor`` command.

    **Description:**
        - This command sets or queries the error type to be used when searching on a 8B10b signal.
          The search condition must be set to Errors.

    **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``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor {SYMBol|DISParity}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``SYMBol`` specifies searching for Symbol Errors.
        - ``DISParity`` specifies searching for Disparity Errors.
    """


class SearchSearchItemTriggerABusS8b10bDisparity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.

    **Description:**
        - This command sets or queries the disparity to be used when searching on a 8B10b signal.
          The search condition must be set to Symbols > 8-bit.

    **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 {POSITIVe|NEGAtive|EITHer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?

    **Info:**
        - ``Search<x>`` is the Search identifier number.
        - ``POSITIVe`` specifies searching for positive disparity.
        - ``NEGAtive`` specifies searching for negative disparity.
        - ``EITHer`` specifies searching for neutral or either positive/negative disparity.
    """


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:
        - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor`` command.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._disparity = SearchSearchItemTriggerABusS8b10bDisparity(
            device, f"{self._cmd_syntax}:DISParity"
        )
        self._error = SearchSearchItemTriggerABusS8b10bError(device, f"{self._cmd_syntax}:ERRor")
        self._symbol = SearchSearchItemTriggerABusS8b10bSymbol(device, f"{self._cmd_syntax}:SYMbol")

    @property
    def disparity(self) -> SearchSearchItemTriggerABusS8b10bDisparity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.

        **Description:**
            - This command sets or queries the disparity to be used when searching on a 8B10b
              signal. The search condition must be set to Symbols > 8-bit.

        **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 {POSITIVe|NEGAtive|EITHer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``POSITIVe`` specifies searching for positive disparity.
            - ``NEGAtive`` specifies searching for negative disparity.
            - ``EITHer`` specifies searching for neutral or either positive/negative disparity.
        """
        return self._disparity

    @property
    def error(self) -> SearchSearchItemTriggerABusS8b10bError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor`` command.

        **Description:**
            - This command sets or queries the error type to be used when searching on a 8B10b
              signal. The search condition must be set to Errors.

        **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``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor {SYMBol|DISParity}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor?

        **Info:**
            - ``Search<x>`` is the Search identifier number.
            - ``SYMBol`` specifies searching for Symbol Errors.
            - ``DISParity`` specifies searching for Disparity Errors.
        """
        return self._error

    @property
    def symbol(self) -> SearchSearchItemTriggerABusS8b10bSymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol`` command tree.

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

        Sub-properties:
            - ``.csymvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:CSYMVALue``
              command.
            - ``.ebitvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:EBITVALue``
              command.
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:MODe`` command.
            - ``.tbitrdneg``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDNeg``
              command.
            - ``.tbitrdpos``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITRDPos``
              command.
            - ``.tbitvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TBITVALue``
              command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol:TYPe`` command.
        """
        return self._symbol


class SearchSearchItemTriggerABusRs232cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data string used for the specified RS232C bus trigger
          search to determine where to place a mark. The search condition must be Data. The search
          number is specified by x.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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 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:
        - ``.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._size = SearchSearchItemTriggerABusRs232cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusRs232cDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 used for the specified RS232C bus trigger
              search to determine where to place a mark. The search condition must be Data. The
              search number is specified by x.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C:DATa:VALue?

        **Info:**
            - ``<QString>`` 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:
            - ``.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 SearchSearchItemTriggerABusParallelDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for a parallel 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: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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the data value in a valid format. Valid characters are 0-9.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._value = SearchSearchItemTriggerABusParallelDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusParallelDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for a parallel 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: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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue?

        **Info:**
            - ``<QString>`` 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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusOnewireSearchromRomcode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe`` command.

    **Description:**
        - This command sets or queries the ROM code for Search ROM in ONEWIRE bus. MODe should be
          set to Standard.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the ROM code for Search ROM. The default size and value of ROM
          code for Search ROM is 64 bits and 'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireSearchrom(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM`` command tree.

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

    Properties:
        - ``.romcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe`` command.
    """

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

    @property
    def romcode(self) -> SearchSearchItemTriggerABusOnewireSearchromRomcode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe`` command.

        **Description:**
            - This command sets or queries the ROM code for Search ROM in ONEWIRE bus. MODe should
              be set to Standard.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the ROM code for Search ROM. The default size and value of ROM
              code for Search ROM is 64 bits and 'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
              XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._romcode


class SearchSearchItemTriggerABusOnewireReadromSerialnumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer`` command.

    **Description:**
        - This command sets or queries the serial number for Read ROM in ONEWIRE bus. MODe should be
          set to Standard.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Serial Number triggering. The default
          size and value of serial number for Read ROM is 48 bits and 'XXXXXXXX XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireReadromFamilycode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe`` command.

    **Description:**
        - This command sets or queries the family code for Read ROM in ONEWIRE bus. MODe should be
          set to Standard.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Family Code triggering. The default
          size and value of family code for Read ROM is 8 bits and 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireReadrom(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM`` command tree.

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

    Properties:
        - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe``
          command.
        - ``.serialnumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._familycode = SearchSearchItemTriggerABusOnewireReadromFamilycode(
            device, f"{self._cmd_syntax}:FAMILYCODe"
        )
        self._serialnumber = SearchSearchItemTriggerABusOnewireReadromSerialnumber(
            device, f"{self._cmd_syntax}:SERIALNUMBer"
        )

    @property
    def familycode(self) -> SearchSearchItemTriggerABusOnewireReadromFamilycode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe`` command.

        **Description:**
            - This command sets or queries the family code for Read ROM in ONEWIRE bus. MODe should
              be set to Standard.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Family Code triggering. The default
              size and value of family code for Read ROM is 8 bits and 'XXXXXXXX'.
        """
        return self._familycode

    @property
    def serialnumber(self) -> SearchSearchItemTriggerABusOnewireReadromSerialnumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer`` command.

        **Description:**
            - This command sets or queries the serial number for Read ROM in ONEWIRE bus. MODe
              should be set to Standard.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Serial Number triggering. The
              default size and value of serial number for Read ROM is 48 bits and 'XXXXXXXX XXXXXXXX
              XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._serialnumber


class SearchSearchItemTriggerABusOnewireOverdriveSerialnumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer`` command.

    **Description:**
        - This command sets or queries the serial number for Overdrive Match ROM in ONEWIRE bus.
          MODe should be set to Overdrive.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Serial Number triggering. The default
          size and value of serial number for Overdrive match ROM is 48 bits and 'XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireOverdriveFamilycode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe`` command.

    **Description:**
        - This command sets or queries the Family Code for Overdrive Match ROM in ONEWIRE bus. MODe
          should be set to Overdrive.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Family Code triggering. The default
          size and value of family code for Overdrive match ROM is 8 bits and 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireOverdrive(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe`` command tree.

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

    Properties:
        - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe``
          command.
        - ``.serialnumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._familycode = SearchSearchItemTriggerABusOnewireOverdriveFamilycode(
            device, f"{self._cmd_syntax}:FAMILYCODe"
        )
        self._serialnumber = SearchSearchItemTriggerABusOnewireOverdriveSerialnumber(
            device, f"{self._cmd_syntax}:SERIALNUMBer"
        )

    @property
    def familycode(self) -> SearchSearchItemTriggerABusOnewireOverdriveFamilycode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe`` command.

        **Description:**
            - This command sets or queries the Family Code for Overdrive Match ROM in ONEWIRE bus.
              MODe should be set to Overdrive.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Family Code triggering. The default
              size and value of family code for Overdrive match ROM is 8 bits and 'XXXXXXXX'.
        """
        return self._familycode

    @property
    def serialnumber(self) -> SearchSearchItemTriggerABusOnewireOverdriveSerialnumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer`` command.

        **Description:**
            - This command sets or queries the serial number for Overdrive Match ROM in ONEWIRE bus.
              MODe should be set to Overdrive.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Serial Number triggering. The
              default size and value of serial number for Overdrive match ROM is 48 bits and
              'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._serialnumber


class SearchSearchItemTriggerABusOnewireMatchromSerialnumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer`` command.

    **Description:**
        - This command sets or queries the serial number for Match ROM in ONEWIRE bus. MODe should
          be set to Standard.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Serial Number triggering. The default
          size and value of serial number for Match ROM is 48 bits and 'XXXXXXXX XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireMatchromFamilycode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe`` command.

    **Description:**
        - This command sets or queries the family code for Match ROM in ONEWIRE bus. MODe should be
          set to Standard.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the binary string used for Family Code triggering. The default
          size and value of family code for Match ROM is 8 bits and 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireMatchrom(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM`` command tree.

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

    Properties:
        - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe``
          command.
        - ``.serialnumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._familycode = SearchSearchItemTriggerABusOnewireMatchromFamilycode(
            device, f"{self._cmd_syntax}:FAMILYCODe"
        )
        self._serialnumber = SearchSearchItemTriggerABusOnewireMatchromSerialnumber(
            device, f"{self._cmd_syntax}:SERIALNUMBer"
        )

    @property
    def familycode(self) -> SearchSearchItemTriggerABusOnewireMatchromFamilycode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe`` command.

        **Description:**
            - This command sets or queries the family code for Match ROM in ONEWIRE bus. MODe should
              be set to Standard.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Family Code triggering. The default
              size and value of family code for Match ROM is 8 bits and 'XXXXXXXX'.
        """
        return self._familycode

    @property
    def serialnumber(self) -> SearchSearchItemTriggerABusOnewireMatchromSerialnumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer`` command.

        **Description:**
            - This command sets or queries the serial number for Match ROM in ONEWIRE bus. MODe
              should be set to Standard.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the binary string used for Serial Number triggering. The
              default size and value of serial number for Match ROM is 48 bits and 'XXXXXXXX
              XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._serialnumber


class SearchSearchItemTriggerABusOnewireDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ONEWIRe triggering if the trigger
          condition is DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the data value in a valid format. The default size and value for
          DATA is 8 bits and 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for ONEWIRe
          triggering if the trigger condition is DATA. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<NR1>`` specifies the data string in a valid format. The minimum and default values are
          1. The maximum value is 5.
    """


class SearchSearchItemTriggerABusOnewireData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusOnewireDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for ONEWIRe
              triggering if the trigger condition is DATA. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<NR1>`` specifies the data string in a valid format. The minimum and default values
              are 1. The maximum value is 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusOnewireDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ONEWIRe triggering if the
              trigger condition is DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the data value in a valid format. The default size and value
              for DATA is 8 bits and 'XXXXXXXX'.
        """
        return self._value


class SearchSearchItemTriggerABusOnewireCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a ONEWIRe bus. MODe should be set
          to Overdrive for OVERDRIVEMATCh and OVERDRIVESKIP. MODe should be set to Standard for
          READROM, MATCHROM, SKIPROM, SEARCHROM, ALARMSEARch. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition {RESet| PREsence| COMMand| DATa| READROM| MATCHROM| OVERDRIVEMATCh| SKIPROM| OVERDRIVESKIP| SEARCHROM| ALARMSEARch| CRCERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``RESet`` specifies the search condition as RESet. Reset is the default trigger on
          condition.
        - ``PREsence`` specifies the search condition as PREsence.
        - ``COMMand`` specifies the search condition as COMMand.
        - ``DATa`` specifies the search condition as DATa.
        - ``READROM`` specifies the search condition as READROM.
        - ``MATCHROM`` specifies the search condition as MATCHROM.
        - ``SKIPROM`` specifies the search condition as SKIPROM.
        - ``SEARCHROM`` specifies the search condition as SEARCHROM.
        - ``ALARMSEARch`` specifies the search condition as ALARMSEARch.
        - ``CRCERRor`` specifies the search condition as CRCERRor.
    """  # noqa: E501


class SearchSearchItemTriggerABusOnewireCommandValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ONEWIRe triggering if the trigger
          condition is COMMAND.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the data value in a valid format. The default size and value for
          COMMAND is 8 bits and 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusOnewireCommand(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusOnewireCommandValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ONEWIRe triggering if the
              trigger condition is COMMAND.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the data value in a valid format. The default size and value
              for COMMAND is 8 bits and 'XXXXXXXX'.
        """
        return self._value


class SearchSearchItemTriggerABusOnewire(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe`` command tree.

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

    Properties:
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa`` command tree.
        - ``.matchrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM`` command tree.
        - ``.overdrive``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe`` command tree.
        - ``.readrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM`` command tree.
        - ``.searchrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = SearchSearchItemTriggerABusOnewireCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )
        self._condition = SearchSearchItemTriggerABusOnewireCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusOnewireData(device, f"{self._cmd_syntax}:DATa")
        self._matchrom = SearchSearchItemTriggerABusOnewireMatchrom(
            device, f"{self._cmd_syntax}:MATCHROM"
        )
        self._overdrive = SearchSearchItemTriggerABusOnewireOverdrive(
            device, f"{self._cmd_syntax}:OVERDRIVe"
        )
        self._readrom = SearchSearchItemTriggerABusOnewireReadrom(
            device, f"{self._cmd_syntax}:READROM"
        )
        self._searchrom = SearchSearchItemTriggerABusOnewireSearchrom(
            device, f"{self._cmd_syntax}:SEARCHROM"
        )

    @property
    def command(self) -> SearchSearchItemTriggerABusOnewireCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand`` command tree.

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

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand:VALue`` command.
        """
        return self._command

    @property
    def condition(self) -> SearchSearchItemTriggerABusOnewireCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a ONEWIRe bus. MODe should be
              set to Overdrive for OVERDRIVEMATCh and OVERDRIVESKIP. MODe should be set to Standard
              for READROM, MATCHROM, SKIPROM, SEARCHROM, ALARMSEARch. The search number is specified
              by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition {RESet| PREsence| COMMand| DATa| READROM| MATCHROM| OVERDRIVEMATCh| SKIPROM| OVERDRIVESKIP| SEARCHROM| ALARMSEARch| CRCERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``RESet`` specifies the search condition as RESet. Reset is the default trigger on
              condition.
            - ``PREsence`` specifies the search condition as PREsence.
            - ``COMMand`` specifies the search condition as COMMand.
            - ``DATa`` specifies the search condition as DATa.
            - ``READROM`` specifies the search condition as READROM.
            - ``MATCHROM`` specifies the search condition as MATCHROM.
            - ``SKIPROM`` specifies the search condition as SKIPROM.
            - ``SEARCHROM`` specifies the search condition as SEARCHROM.
            - ``ALARMSEARch`` specifies the search condition as ALARMSEARch.
            - ``CRCERRor`` specifies the search condition as CRCERRor.
        """  # noqa: E501
        return self._condition

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa:VALue`` command.
        """
        return self._data

    @property
    def matchrom(self) -> SearchSearchItemTriggerABusOnewireMatchrom:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM`` command tree.

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

        Sub-properties:
            - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:FAMILYCODe``
              command.
            - ``.serialnumber``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM:SERIALNUMBer`` command.
        """
        return self._matchrom

    @property
    def overdrive(self) -> SearchSearchItemTriggerABusOnewireOverdrive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe`` command tree.

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

        Sub-properties:
            - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:FAMILYCODe``
              command.
            - ``.serialnumber``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe:SERIALNUMBer`` command.
        """
        return self._overdrive

    @property
    def readrom(self) -> SearchSearchItemTriggerABusOnewireReadrom:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM`` command tree.

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

        Sub-properties:
            - ``.familycode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:FAMILYCODe``
              command.
            - ``.serialnumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM:SERIALNUMBer``
              command.
        """
        return self._readrom

    @property
    def searchrom(self) -> SearchSearchItemTriggerABusOnewireSearchrom:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM`` command tree.

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

        Sub-properties:
            - ``.romcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM:ROMCODe``
              command.
        """
        return self._searchrom


class SearchSearchItemTriggerABusNrzDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data value to be used when searching on a NRZ
          signal. The search condition must be set to DATA.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<QString>`` specifies the data value in a valid format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusNrzDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string, in bytes, to use when searching on
          the NRZ 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:NRZ:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ: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:NRZ:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<NR1>`` specifies the data string in a valid format. The minimum and default values are
          1. The maximum value is 5.
    """


class SearchSearchItemTriggerABusNrzData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa`` command tree.

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

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue`` command.
    """

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

    @property
    def size(self) -> SearchSearchItemTriggerABusNrzDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string, in bytes, to use when searching
              on the NRZ 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:NRZ:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ: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:NRZ:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<NR1>`` specifies the data string in a valid format. The minimum and default values
              are 1. The maximum value is 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusNrzDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data value to be used when searching on a NRZ
              signal. The search condition must be set to DATA.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<QString>`` specifies the data value in a valid format.
        """
        return self._value


class SearchSearchItemTriggerABusNrz(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ`` command tree.

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

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa`` command tree.
    """

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

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

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

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa:VALue`` command.
        """
        return self._data


class SearchSearchItemTriggerABusMil1553bStatusParity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity`` command.

    **Description:**
        - This command sets or queries the value of the status word parity bit for a MIL-STD-1553
          bus to search on. The search number is specified by x. The search condition must be set to
          STATus.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity?

    **Info:**
        - ``ONE`` filters status words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the parity bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitTf(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF`` command.

    **Description:**
        - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
          status word for a MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF?

    **Info:**
        - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the TF bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitSubsf(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF`` command.

    **Description:**
        - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17) in a
          status word for a MIL-STD-1553 bus to search on. The search number is specified by x>. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF?

    **Info:**
        - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SUBSF bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitSrq(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ`` command.

    **Description:**
        - This command sets or queries the value of the status word service request bit (SRQ bit,
          bit 11) in a status word for a MIL-STD-1553 bus to search on. The search number is
          specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ?

    **Info:**
        - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the SRQ bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitMe(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME`` command.

    **Description:**
        - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
          status word for a MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME?

    **Info:**
        - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the ME bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitInstr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR`` command.

    **Description:**
        - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10) in a
          status word for a MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR?

    **Info:**
        - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the INSTR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the INSTR bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitDbca(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA`` command.

    **Description:**
        - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
          bit, bit 18) in a status word for a MIL-STD-1553 bus to search on. The search number is
          specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA?

    **Info:**
        - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the DBCA bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitBusy(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY`` command.

    **Description:**
        - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status word
          for a MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY?

    **Info:**
        - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BUSY bit.
    """


class SearchSearchItemTriggerABusMil1553bStatusBitBcr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BCR`` command.

    **Description:**
        - This command sets or queries the value of the broadcast command received bit (BCR bit, bit
          15) in a status word for a MIL-STD-1553 bus to search on. The search number is specified
          by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BCR?

    **Info:**
        - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
        - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
        - ``NOCARE`` disables filtering of status words on the BCR bit.
    """


#  pylint: disable=too-many-instance-attributes
class 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.
        - ``.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._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 sets or queries the value of the broadcast command received bit (BCR bit,
              bit 15) in a status word for a MIL-STD-1553 bus to search on. The search number is
              specified by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BCR?

        **Info:**
            - ``ONE`` filters status words to only match those where the BCR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BCR bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BCR bit.
        """
        return self._bcr

    @property
    def busy(self) -> SearchSearchItemTriggerABusMil1553bStatusBitBusy:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY`` command.

        **Description:**
            - This command sets or queries the value of the busy bit (BUSY bit, bit 16) in a status
              word for a MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:BUSY?

        **Info:**
            - ``ONE`` filters status words to only match those where the BUSY bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the BUSY bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the BUSY bit.
        """
        return self._busy

    @property
    def dbca(self) -> SearchSearchItemTriggerABusMil1553bStatusBitDbca:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA`` command.

        **Description:**
            - This command sets or queries the value of the dynamic bus control acceptance bit (DBCA
              bit, bit 18) in a status word for a MIL-STD-1553 bus to search on. The search number
              is specified by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:DBCA?

        **Info:**
            - ``ONE`` filters status words to only match those where the DBCA bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the DBCA bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the DBCA bit.
        """
        return self._dbca

    @property
    def instr(self) -> SearchSearchItemTriggerABusMil1553bStatusBitInstr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR`` command.

        **Description:**
            - This command sets or queries the value of the instrumentation bit (INSTR bit, bit 10)
              in a status word for a MIL-STD-1553 bus to search on. The search number is specified
              by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:INSTR?

        **Info:**
            - ``ONE`` filters status words to only match those where the INSTR bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the INSTR bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the INSTR bit.
        """
        return self._instr

    @property
    def me(self) -> SearchSearchItemTriggerABusMil1553bStatusBitMe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME`` command.

        **Description:**
            - This command sets or queries the value of the message error bit (ME bit, bit 9) in a
              status word for a MIL-STD-1553 bus to search on. The search number is specified by x.
              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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:ME?

        **Info:**
            - ``ONE`` filters status words to only match those where the ME bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the ME bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the ME bit.
        """
        return self._me

    @property
    def srq(self) -> SearchSearchItemTriggerABusMil1553bStatusBitSrq:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ`` command.

        **Description:**
            - This command sets or queries the value of the status word service request bit (SRQ
              bit, bit 11) in a status word for a MIL-STD-1553 bus to search on. The search number
              is specified by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SRQ?

        **Info:**
            - ``ONE`` filters status words to only match those where the SRQ bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SRQ bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the SRQ bit.
        """
        return self._srq

    @property
    def subsf(self) -> SearchSearchItemTriggerABusMil1553bStatusBitSubsf:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF`` command.

        **Description:**
            - This command sets or queries the value of the subsystem flag bit (SUBSF bit, bit 17)
              in a status word for a MIL-STD-1553 bus to search on. The search number is specified
              by x>. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:SUBSF?

        **Info:**
            - ``ONE`` filters status words to only match those where the SUBSF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the SUBSF bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the SUBSF bit.
        """
        return self._subsf

    @property
    def tf(self) -> SearchSearchItemTriggerABusMil1553bStatusBitTf:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF`` command.

        **Description:**
            - This command sets or queries the value of the terminal flag bit (TF bit, bit 19) in a
              status word for a MIL-STD-1553 bus to search on. The search number is specified by x.
              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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:BIT:TF?

        **Info:**
            - ``ONE`` filters status words to only match those where the TF bit has a value of 1.
            - ``ZERo`` filters status words to only match those where the TF bit has a value of 0.
            - ``NOCARE`` disables filtering of status words on the TF bit.
        """
        return self._tf


class SearchSearchItemTriggerABusMil1553bStatusAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the low value when searching on status word addresses for a
          MIL-STD-1553 bus. The search number is specified by x. 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?

    **Info:**
        - ``<QString>`` is the 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 sets or queries the qualifier used when searching on status word addresses
          for a MIL-STD-1553 bus. The search number is specified by x. 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 {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` 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.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bStatusAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when searching on status word addresses for a
          MIL-STD-1553 bus. The search number is specified by x. The search condition must be set to
          STATus and the address qualifier must be INrange or OUTrange.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue``
          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._hivalue = SearchSearchItemTriggerABusMil1553bStatusAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusMil1553bStatusAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusMil1553bStatusAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusMil1553bStatusAddressHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when searching on status word addresses
              for a MIL-STD-1553 bus. The search number is specified by x. The search condition must
              be set to STATus and the address qualifier must be INrange or OUTrange.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMil1553bStatusAddressQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier used when searching on status word
              addresses for a MIL-STD-1553 bus. The search number is specified by x. 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 {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` 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.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier out of range.
        """  # 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 sets or queries the low value when searching on status word addresses for
              a MIL-STD-1553 bus. The search number is specified by x. 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?

        **Info:**
            - ``<QString>`` is the 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.
        - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity`` command.
    """

    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")
        self._parity = SearchSearchItemTriggerABusMil1553bStatusParity(
            device, f"{self._cmd_syntax}:PARity"
        )

    @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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:ADDRess:HIVALue``
              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.
            - ``.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

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bStatusParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity`` command.

        **Description:**
            - This command sets or queries the value of the status word parity bit for a
              MIL-STD-1553 bus to search on. The search number is specified by x. The search
              condition must be set to STATus.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity?

        **Info:**
            - ``ONE`` filters status words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters status words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of status words on the parity bit.
        """
        return self._parity


class SearchSearchItemTriggerABusMil1553bErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the type of error condition for a MIL-STD-1553 bus to search
          on. 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: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|DATA}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPe?

    **Info:**
        - ``PARity`` specifies searching for an incorrectly calculated parity bit in any word.
        - ``SYNC`` specifies searching for any sync pulse that does not transition in the middle of
          the pulse as required.
        - ``DATA`` specifies searching for any non-contiguous data words.
    """


class SearchSearchItemTriggerABusMil1553bDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the value when searching on data words for a MIL-STD-1553
          bus. The search number is specified by x. 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?

    **Info:**
        - ``<QString>`` is the 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 sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:PARity?

    **Info:**
        - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of data words on the parity bit.
    """


class 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:
        - ``.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._parity = SearchSearchItemTriggerABusMil1553bDataParity(
            device, f"{self._cmd_syntax}:PARity"
        )
        self._value = SearchSearchItemTriggerABusMil1553bDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bDataParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to search on. The search number is specified by x. 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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:PARity?

        **Info:**
            - ``ONE`` filters data words to only match those where the parity bit has a value of 1.
            - ``ZERo`` filters data words to only match those where the parity bit has a value of 0.
            - ``NOCARE`` disables filtering of data words on the parity bit.
        """
        return self._parity

    @property
    def value(self) -> SearchSearchItemTriggerABusMil1553bDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the value when searching on data words for a MIL-STD-1553
              bus. The search number is specified by x. 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?

        **Info:**
            - ``<QString>`` is the data value.
        """
        return self._value


class SearchSearchItemTriggerABusMil1553bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition`` command.

    **Description:**
        - This command sets or queries the field or condition for a MIL-STD-1553 bus to search on.
          The search number is specified by x.

    **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|ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?

    **Info:**
        - ``SYNC`` specifies a search for the sync pulse of any word.
        - ``COMMAND`` specifies a search for a matching command word.
        - ``STATus`` specifies a search for a matching status word.
        - ``DATA`` specifies a search for a matching data word.
        - ``ERRor`` specifies a search for a specified error condition.
    """


class SearchSearchItemTriggerABusMil1553bCommandTrbit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.

    **Description:**
        - This command sets or queries the value of the command word Transmit / Receive bit for a
          MIL-STD-1553 bus to 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: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}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?

    **Info:**
        - ``RX`` filters command words to only match those that are receive packets.
        - ``TX`` filters command words to only match those that are transmit packets.
        - ``X`` disables filtering of command words on the R/T bit.
    """


class 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMil1553bCommandParity(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.

    **Description:**
        - This command sets or queries the value of the command word parity bit for a MIL-STD-1553
          bus to 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: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 {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity?

    **Info:**
        - ``ONE`` filters command words to only match those where the parity bit has a value of 1.
        - ``ZERo`` filters command words to only match those where the parity bit has a value of 0.
        - ``NOCARE`` disables filtering of command words on the parity bit.
    """


class 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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 sets or queries the qualifier to be used 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: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 {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` 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.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusMil1553bCommandAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

    **Description:**
        - This command sets or queries the high 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, and the address qualifier must be INrange or OUTrange.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue?

    **Info:**
        - ``<QString>`` is the address value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue``
          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._hivalue = SearchSearchItemTriggerABusMil1553bCommandAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusMil1553bCommandAddressQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusMil1553bCommandAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusMil1553bCommandAddressHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue`` command.

        **Description:**
            - This command sets or queries the high 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, and the address qualifier must be INrange or OUTrange.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue?

        **Info:**
            - ``<QString>`` is the address value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusMil1553bCommandAddressQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used 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: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 {EQual|UNEQual|LESSthan |MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` 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.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier out of range.
        """  # 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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:ADDRess:HIVALue``
              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.
        """
        return self._count

    @property
    def parity(self) -> SearchSearchItemTriggerABusMil1553bCommandParity:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity`` command.

        **Description:**
            - This command sets or queries the value of the command word parity bit for a
              MIL-STD-1553 bus to 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: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 {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:PARity?

        **Info:**
            - ``ONE`` filters command words to only match those where the parity bit has a value of
              1.
            - ``ZERo`` filters command words to only match those where the parity bit has a value of
              0.
            - ``NOCARE`` disables filtering of command words on the parity bit.
        """
        return self._parity

    @property
    def subaddress(self) -> 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.
        """
        return self._subaddress

    @property
    def trbit(self) -> SearchSearchItemTriggerABusMil1553bCommandTrbit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit`` command.

        **Description:**
            - This command sets or queries the value of the command word Transmit / Receive bit for
              a MIL-STD-1553 bus to 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: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}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:COMMAND:TRBit?

        **Info:**
            - ``RX`` filters command words to only match those that are receive packets.
            - ``TX`` filters command words to only match those that are transmit packets.
            - ``X`` disables filtering of command words on the R/T bit.
        """
        return self._trbit


class 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.
    """

    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"
        )

    @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 sets or queries the field or condition for a MIL-STD-1553 bus to search
              on. The search number is specified by x.

        **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|ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:CONDition?

        **Info:**
            - ``SYNC`` specifies a search for the sync pulse of any word.
            - ``COMMAND`` specifies a search for a matching command word.
            - ``STATus`` specifies a search for a matching status word.
            - ``DATA`` specifies a search for a matching data word.
            - ``ERRor`` specifies a search for a specified error condition.
        """
        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:
            - ``.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 sets or queries the type of error condition for a MIL-STD-1553 bus to
              search on. 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: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|DATA}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:ERRTYPe?

        **Info:**
            - ``PARity`` specifies searching for an incorrectly calculated parity bit in any word.
            - ``SYNC`` specifies searching for any sync pulse that does not transition in the middle
              of the pulse as required.
            - ``DATA`` specifies searching for any non-contiguous data words.
        """
        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.
            - ``.parity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B:STATus:PARity`` command.
        """
        return self._status


class SearchSearchItemTriggerABusMdioRegisteraddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue`` command.

    **Description:**
        - This command specifies the binary register address string used for MDIO triggering if the
          trigger condition is register address. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue?

    **Info:**
        - ``<QString>`` is the register address value. Default register address value is XXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioRegisteraddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioRegisteraddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue`` command.

        **Description:**
            - This command specifies the binary register address string used for MDIO triggering if
              the trigger condition is register address. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue?

        **Info:**
            - ``<QString>`` is the register address value. Default register address value is XXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusMdioPhysicaladdressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue`` command.

    **Description:**
        - This command specifies the binary physical address string used for MDIO triggering if the
          trigger condition is physical address. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue?

    **Info:**
        - ``<QString>`` is the physical address value. Default physical address value is XXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioPhysicaladdress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioPhysicaladdressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue`` command.

        **Description:**
            - This command specifies the binary physical address string used for MDIO triggering if
              the trigger condition is physical address. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue?

        **Info:**
            - ``<QString>`` is the physical address value. Default physical address value is XXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusMdioOpcodeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue`` command.

    **Description:**
        - This command specifies the binary op-code string used for MDIO triggering if the trigger
          condition is op-code. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue?

    **Info:**
        - ``<QString>`` is the op-code value. Default op-code value is XX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioOpcode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioOpcodeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue`` command.

        **Description:**
            - This command specifies the binary op-code string used for MDIO triggering if the
              trigger condition is op-code. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue?

        **Info:**
            - ``<QString>`` is the op-code value. Default op-code value is XX.
        """
        return self._value


class SearchSearchItemTriggerABusMdioErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType`` command.

    **Description:**
        - This command sets or queries the error type to be used when triggering on MDIO data. This
          applies when the MDIO bus trigger condition is set to ERRor. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType {OPCODEERRor| DEVERRor| ANY}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType?

    **Info:**
        - ``OPCODEERRor`` specifies OPCODEERRor as the field within a MDIO frame to search on. This
          is the default trigger on condition.
        - ``DEVERRor`` specifies DEVERRor as the field within a MDIO frame to search on.
        - ``ANY`` specifies ANY as the field within a MDIO frame to search on.
    """


class SearchSearchItemTriggerABusMdioDevicetypeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue`` command.

    **Description:**
        - This command specifies the binary device type string used for MDIO triggering if the
          trigger condition is Device type. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue?

    **Info:**
        - ``<QString>`` is the device type. Default value is XXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioDevicetype(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioDevicetypeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue`` command.

        **Description:**
            - This command specifies the binary device type string used for MDIO triggering if the
              trigger condition is Device type. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue?

        **Info:**
            - ``<QString>`` is the device type. Default value is XXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusMdioDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for MDIO triggering if the trigger
          condition is DATA. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value. Default value is XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue`` command.
    """

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

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for MDIO triggering if the trigger
              condition is DATA. The search number is specified by x.

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

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value. Default value is XXXXXXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusMdioCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for MDIO bus. The search number is
          specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition {STARTPACKet| PHYSICALADDRess| REGISTERADDRess| DEVICETYPe| DATA| ADDRess| ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition?

    **Info:**
        - ``STARTPACKet`` specifies STARTPACKet as the field within a MDIO frame to search on. This
          is the default trigger on condition.
        - ``PHYSICALADDRess`` specifies PHYSICALADDRess as the field within a MDIO frame to search
          on.
        - ``REGISTERADDRess`` specifies REGISTERADDRess as the field within a MDIO frame to search
          on.
        - ``DEVICETYPe`` specifies DEVICETYPe as the field within a MDIO frame to search on.
        - ``DATA`` specifies DATA as the field within a MDIO frame to search on.
        - ``ADDRess`` specifies ADDRess as the field within a MDIO frame to search on.
        - ``ERRor`` specifies ERRor as the field within a MDIO frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusMdioAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue`` command.

    **Description:**
        - This command specifies the binary address string used for MDIO triggering if the trigger
          condition is address. The search number is specified by x.

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

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue?

    **Info:**
        - ``<QString>`` is the address value. Default address value is XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusMdioAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress`` command tree.

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

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusMdioAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusMdioAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue`` command.

        **Description:**
            - This command specifies the binary address string used for MDIO triggering if the
              trigger condition is address. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO: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:MDIO:ADDress:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue?

        **Info:**
            - ``<QString>`` is the address value. Default address value is XXXXXXXXXXXXXXXX.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusMdio(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa`` command tree.
        - ``.devicetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType`` command.
        - ``.opcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode`` command tree.
        - ``.physicaladdress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress`` command
          tree.
        - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusMdioAddress(
            device, f"{self._cmd_syntax}:ADDress"
        )
        self._condition = SearchSearchItemTriggerABusMdioCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusMdioData(device, f"{self._cmd_syntax}:DATa")
        self._devicetype = SearchSearchItemTriggerABusMdioDevicetype(
            device, f"{self._cmd_syntax}:DEVicetype"
        )
        self._errtype = SearchSearchItemTriggerABusMdioErrtype(
            device, f"{self._cmd_syntax}:ERRType"
        )
        self._opcode = SearchSearchItemTriggerABusMdioOpcode(device, f"{self._cmd_syntax}:OPCode")
        self._physicaladdress = SearchSearchItemTriggerABusMdioPhysicaladdress(
            device, f"{self._cmd_syntax}:PHYSicaladdress"
        )
        self._registeraddress = SearchSearchItemTriggerABusMdioRegisteraddress(
            device, f"{self._cmd_syntax}:REGisteraddress"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusMdioAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> SearchSearchItemTriggerABusMdioCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for MDIO bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO: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:MDIO:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition {STARTPACKet| PHYSICALADDRess| REGISTERADDRess| DEVICETYPe| DATA| ADDRess| ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition?

        **Info:**
            - ``STARTPACKet`` specifies STARTPACKet as the field within a MDIO frame to search on.
              This is the default trigger on condition.
            - ``PHYSICALADDRess`` specifies PHYSICALADDRess as the field within a MDIO frame to
              search on.
            - ``REGISTERADDRess`` specifies REGISTERADDRess as the field within a MDIO frame to
              search on.
            - ``DEVICETYPe`` specifies DEVICETYPe as the field within a MDIO frame to search on.
            - ``DATA`` specifies DATA as the field within a MDIO frame to search on.
            - ``ADDRess`` specifies ADDRess as the field within a MDIO frame to search on.
            - ``ERRor`` specifies ERRor as the field within a MDIO frame to search on.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusMdioData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa:VALue`` command.
        """
        return self._data

    @property
    def devicetype(self) -> SearchSearchItemTriggerABusMdioDevicetype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype:VALue`` command.
        """
        return self._devicetype

    @property
    def errtype(self) -> SearchSearchItemTriggerABusMdioErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType`` command.

        **Description:**
            - This command sets or queries the error type to be used when triggering on MDIO data.
              This applies when the MDIO bus trigger condition is set to ERRor. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO: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:MDIO:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType {OPCODEERRor| DEVERRor| ANY}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType?

        **Info:**
            - ``OPCODEERRor`` specifies OPCODEERRor as the field within a MDIO frame to search on.
              This is the default trigger on condition.
            - ``DEVERRor`` specifies DEVERRor as the field within a MDIO frame to search on.
            - ``ANY`` specifies ANY as the field within a MDIO frame to search on.
        """
        return self._errtype

    @property
    def opcode(self) -> SearchSearchItemTriggerABusMdioOpcode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode:VALue`` command.
        """
        return self._opcode

    @property
    def physicaladdress(self) -> SearchSearchItemTriggerABusMdioPhysicaladdress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress:VALue`` command.
        """
        return self._physicaladdress

    @property
    def registeraddress(self) -> SearchSearchItemTriggerABusMdioRegisteraddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress:VALue`` command.
        """
        return self._registeraddress


class SearchSearchItemTriggerABusManchesterPacketoffdataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue`` command.

    **Description:**
        - This command specifies the binary string used for Manchester triggering if the trigger
          condition is DATA. The search number is specified by <x>.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData: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:MANChester:packetOffData:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue?

    **Info:**
        - ``<NR1>`` specifies the data string in a valid format.
    """


class SearchSearchItemTriggerABusManchesterPacketoffdata(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusManchesterPacketoffdataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusManchesterPacketoffdataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue`` command.

        **Description:**
            - This command specifies the binary string used for Manchester triggering if the trigger
              condition is DATA. The search number is specified by <x>.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData: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:MANChester:packetOffData:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue?

        **Info:**
            - ``<NR1>`` specifies the data string in a valid format.
        """
        return self._value


class SearchSearchItemTriggerABusManchesterTrailerValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue`` command.

    **Description:**
        - This command specifies the binary string used for Manchester triggering if the trigger
          condition is Trailer when searching on an Manchester signal. The search condition needs to
          be set to Trailer. The search number is specified by <x>.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER: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:MANChester:TRAILER:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue?

    **Info:**
        - ``<QString>`` specifies the data string in a valid format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusManchesterTrailer(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusManchesterTrailerValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusManchesterTrailerValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue`` command.

        **Description:**
            - This command specifies the binary string used for Manchester triggering if the trigger
              condition is Trailer when searching on an Manchester signal. The search condition
              needs to be set to Trailer. The search number is specified by <x>.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER: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:MANChester:TRAILER:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue?

        **Info:**
            - ``<QString>`` specifies the data string in a valid format.
        """
        return self._value


class SearchSearchItemTriggerABusManchesterSyncValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue`` command.

    **Description:**
        - This command specifies the binary string used for Manchester triggering if the trigger
          condition is Sync when searching on an Manchester signal. The search condition needs to be
          set to Sync. The search number is specified by <x>.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC: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:MANChester:SYNC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue?

    **Info:**
        - ``<QSTRING>`` specifies the data string in a valid format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusManchesterSync(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusManchesterSyncValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusManchesterSyncValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue`` command.

        **Description:**
            - This command specifies the binary string used for Manchester triggering if the trigger
              condition is Sync when searching on an Manchester signal. The search condition needs
              to be set to Sync. The search number is specified by <x>.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC: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:MANChester:SYNC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue?

        **Info:**
            - ``<QSTRING>`` specifies the data string in a valid format.
        """
        return self._value


class SearchSearchItemTriggerABusManchesterHeaderValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue`` command.

    **Description:**
        - This command specifies the binary string used for Manchester triggering if the trigger
          condition is header when searching on an Manchester signal. The search condition needs to
          be set to header. The search number is specified by <x>.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER: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:MANChester:HEADER:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue?

    **Info:**
        - ``<QString>`` is the header value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusManchesterHeader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusManchesterHeaderValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusManchesterHeaderValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue`` command.

        **Description:**
            - This command specifies the binary string used for Manchester triggering if the trigger
              condition is header when searching on an Manchester signal. The search condition needs
              to be set to header. The search number is specified by <x>.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER: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:MANChester:HEADER:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue?

        **Info:**
            - ``<QString>`` is the header value.
        """
        return self._value


class SearchSearchItemTriggerABusManchesterErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error to be used when searching on a Manchester signal.
          The search condition must be set to error. Parity error identifies odd and even parity.
          The search number is specified by <x>.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor: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:MANChester:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe {MANChester|PARity}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe?

    **Info:**
        - ``MANChester`` sets the error type to Manchester.
        - ``PARity`` sets the error type to parity.
    """


class SearchSearchItemTriggerABusManchesterError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusManchesterErrorType(
            device, f"{self._cmd_syntax}:TYPe"
        )

    @property
    def type(self) -> SearchSearchItemTriggerABusManchesterErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error to be used when searching on a Manchester
              signal. The search condition must be set to error. Parity error identifies odd and
              even parity. The search number is specified by <x>.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor: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:MANChester:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe {MANChester|PARity}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe?

        **Info:**
            - ``MANChester`` sets the error type to Manchester.
            - ``PARity`` sets the error type to parity.
        """
        return self._type


class SearchSearchItemTriggerABusManchesterDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary string used for Manchester triggering if the trigger
          condition is data when searching on an Manchester 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:MANChester:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue?

    **Info:**
        - ``<QString>`` is the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusManchesterDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe`` command.

    **Description:**
        - This command specifies the number of bits per word for the specified Manchester bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``<NR1>`` specifies the data string in a valid format. The minimum and default values are
          1. The maximum value is 5.
    """


class SearchSearchItemTriggerABusManchesterData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusManchesterDataSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusManchesterDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusManchesterDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe`` command.

        **Description:**
            - This command specifies the number of bits per word for the specified Manchester bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``<NR1>`` specifies the data string in a valid format. The minimum and default values
              are 1. The maximum value is 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusManchesterDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary string used for Manchester triggering if the trigger
              condition is data when searching on an Manchester 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:MANChester:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue?

        **Info:**
            - ``<QString>`` is the data value.
        """
        return self._value


class SearchSearchItemTriggerABusManchesterCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition`` command.

    **Description:**
        - This command specifies a field or condition for an Manchester bus to search on. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition {SYNCBITS| HEADer| DATa| packetOffData| TRAiler| ERRors}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition?

    **Info:**
        - ``SYNCBITS`` specifies Sync Bits symbols as the field within an Manchester frame to search
          on.
        - ``HEADer`` specifies header symbols as the field within an Manchester frame to search on.
        - ``DATa`` specifies data symbols as the field within an Manchester frame to search on.
        - ``packetOffData`` specifies the binary string used for Manchester triggering if the
          trigger condition is DATA.
        - ``TRAiler`` specifies trailer symbols as the field within an Manchester frame to search
          on.
        - ``ERRors`` specifies error symbols as the field within an Manchester frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusManchester(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor`` command tree.
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER`` command tree.
        - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC`` command tree.
        - ``.trailer``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER`` command tree.
        - ``.packetoffdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusManchesterCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusManchesterData(device, f"{self._cmd_syntax}:DATa")
        self._error = SearchSearchItemTriggerABusManchesterError(
            device, f"{self._cmd_syntax}:ERRor"
        )
        self._header = SearchSearchItemTriggerABusManchesterHeader(
            device, f"{self._cmd_syntax}:HEADER"
        )
        self._sync = SearchSearchItemTriggerABusManchesterSync(device, f"{self._cmd_syntax}:SYNC")
        self._trailer = SearchSearchItemTriggerABusManchesterTrailer(
            device, f"{self._cmd_syntax}:TRAILER"
        )
        self._packetoffdata = SearchSearchItemTriggerABusManchesterPacketoffdata(
            device, f"{self._cmd_syntax}:packetOffData"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusManchesterCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition`` command.

        **Description:**
            - This command specifies a field or condition for an Manchester bus to search on. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester: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:MANChester:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition {SYNCBITS| HEADer| DATa| packetOffData| TRAiler| ERRors}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition?

        **Info:**
            - ``SYNCBITS`` specifies Sync Bits symbols as the field within an Manchester frame to
              search on.
            - ``HEADer`` specifies header symbols as the field within an Manchester frame to search
              on.
            - ``DATa`` specifies data symbols as the field within an Manchester frame to search on.
            - ``packetOffData`` specifies the binary string used for Manchester triggering if the
              trigger condition is DATA.
            - ``TRAiler`` specifies trailer symbols as the field within an Manchester frame to
              search on.
            - ``ERRors`` specifies error symbols as the field within an Manchester frame to search
              on.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusManchesterData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa:VALue`` command.
        """
        return self._data

    @property
    def error(self) -> SearchSearchItemTriggerABusManchesterError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def header(self) -> SearchSearchItemTriggerABusManchesterHeader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER:VALue`` command.
        """
        return self._header

    @property
    def sync(self) -> SearchSearchItemTriggerABusManchesterSync:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC:VALue`` command.
        """
        return self._sync

    @property
    def trailer(self) -> SearchSearchItemTriggerABusManchesterTrailer:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER:VALue`` command.
        """
        return self._trailer

    @property
    def packetoffdata(self) -> SearchSearchItemTriggerABusManchesterPacketoffdata:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData:VALue``
              command.
        """
        return self._packetoffdata


class SearchSearchItemTriggerABusLinIdentifierValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.

    **Description:**
        - This command sets or queries the string used for a LIN bus identifier value. The search
          number is specified by x. The search condition must be IDENTIFIER or IDANDDATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` specifies the identifier value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.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._value = SearchSearchItemTriggerABusLinIdentifierValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusLinIdentifierValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.

        **Description:**
            - This command sets or queries the string used for a LIN bus identifier value. The
              search number is specified by x. The search condition must be IDENTIFIER or IDANDDATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` 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 data string used for a LIN bus search. The search number
          is specified by x. The search condition must be DATA or IDANDDATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusLinDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the stat string in bytes used for a LIN bus
          search. 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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` 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 data qualifier used in a LIN bus search. 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| INrange| OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` 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.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusLinDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high data value string used in a LIN bus search. The
          search number is specified by x. The search condition must be DATA or IDANDDATA and the
          data qualifier must be INRANGE or OUTRANGE.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN: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:LIN:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is a quoted string of 1s, 0s, or Xs representing the binary data string to
          be used in a LIN search if the search condition is IDentifier or IDANDDATA (identifier and
          data).
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue`` 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._hivalue = SearchSearchItemTriggerABusLinDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        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 hivalue(self) -> SearchSearchItemTriggerABusLinDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high data value string used in a LIN bus search. The
              search number is specified by x. The search condition must be DATA or IDANDDATA and
              the data qualifier must be INRANGE or OUTRANGE.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN: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:LIN:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is a quoted string of 1s, 0s, or Xs representing the binary data string
              to be used in a LIN search if the search condition is IDentifier or IDANDDATA
              (identifier and data).
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusLinDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the data qualifier used in a LIN bus search. 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| INrange| OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` 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.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier out of range.
        """  # 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 length of the stat string in bytes used for a LIN bus
              search. 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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 data string used for a LIN bus search. The search
              number is specified by x. The search condition must be DATA or IDANDDATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:VALue?

        **Info:**
            - ``<QString>`` 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 condition for a LIN bus search. 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|SYNCfield|WAKEup}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?

    **Info:**
        - ``DATA`` sets the trigger condition to data.
        - ``IDANDDATA`` sets the trigger condition to ID and data.
        - ``ERRor`` sets the trigger condition to error.
        - ``IDentifier`` sets the trigger condition to identifier.
        - ``SLEEP`` sets the trigger condition to sleep.
        - ``SYNCfield`` sets the trigger condition to sync field.
        - ``WAKEup`` sets the trigger condition to wakeup.
    """  # 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 condition for a LIN bus search. 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|SYNCfield|WAKEup}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:CONDition?

        **Info:**
            - ``DATA`` sets the trigger condition to data.
            - ``IDANDDATA`` sets the trigger condition to ID and data.
            - ``ERRor`` sets the trigger condition to error.
            - ``IDentifier`` sets the trigger condition to identifier.
            - ``SLEEP`` sets the trigger condition to sleep.
            - ``SYNCfield`` sets the trigger condition to sync field.
            - ``WAKEup`` sets the trigger condition to wakeup.
        """  # 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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:DATa:HIVALue`` 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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN:IDentifier:VALue`` command.
        """
        return self._identifier


class SearchSearchItemTriggerABusI3cTestmodeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is TESTMODE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe: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:I3C:TESTMODe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cTestmode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cTestmodeValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cTestmodeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is TESTMODE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe: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:I3C:TESTMODe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cSupportbyteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is SUPPORTEDBYTE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe: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:I3C:SUPPORTBYTe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cSupportbyte(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cSupportbyteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cSupportbyteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is SUPPORTEDBYTE. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe: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:I3C:SUPPORTBYTe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cStaticAddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C search if the
          trigger condition is STATICADDRESS. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the address value for which to search. The valid characters are 0,
          1, or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cStatic(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusI3cStaticAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusI3cStaticAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C search if the
              trigger condition is STATICADDRESS. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the address value for which to search. The valid characters
              are 0, 1, or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._address


class SearchSearchItemTriggerABusI3cStatebyteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is STATEBYTE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe: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:I3C:STATEBYTe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cStatebyte(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cStatebyteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cStatebyteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is STATEBYTE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe: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:I3C:STATEBYTe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cSdrDirectpacket(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket`` command.

    **Description:**
        - This command sets or queries the SDR direct packet types for the specified I3C bus trigger
          search to determine where to place a mark. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket {ENSLave|DISLave|ENTasx|RSTDya| SETMwrl|SETMrdl|SEText|SETDya|SETNdya|GETMWrl|GETMRdl| GETPrid|GETBusch|GETDevch|GETSlave|ACCM|SETBrt| MDATASpeed|HDRCapability}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``ENSLave`` specifies the trigger condition as Enable Slave.
        - ``DISLave`` specifies the trigger condition as Disable Slave.
        - ``ENTasx`` specifies the trigger condition as Enter Activity State.
        - ``RSTDya`` specifies the trigger condition as Reset Dynamic Address.
        - ``SETMwrl`` specifies the trigger condition as Set Max Write Length.
        - ``SETMrdl`` specifies the trigger condition as Set Max Read Length.
        - ``SEText`` specifies the trigger condition as Set Exchange Time.
        - ``SETDya`` specifies the trigger condition as Set Dynamic Address.
        - ``SETNdya`` specifies the trigger condition as Set New Dynamic Address.
        - ``GETMWrl`` specifies the trigger condition as Get Max Write Length.
        - ``GETMRdl`` specifies the trigger condition as Get Max Read Length.
        - ``GETPrid`` specifies the trigger condition as Get Provisional ID.
        - ``GETBusch`` specifies the trigger condition as Get Provisional ID.
        - ``GETDevch`` specifies the trigger condition as Get Dev Characteristics.
        - ``GETSlave`` specifies the trigger condition as Get Slave Current Status.
        - ``ACCM`` specifies the trigger condition as Get Accept Mastership.
        - ``SETBrt`` specifies the trigger condition as Set Bridge Direct Target.
        - ``MDATASpeed`` specifies the trigger condition as Get Max Data Speed.
        - ``HDRCapability`` specifies the trigger condition as Get HDR Capability.
    """  # noqa: E501


class SearchSearchItemTriggerABusI3cSdrBroadcastpacket(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket`` command.

    **Description:**
        - This command sets or queries the SDR broadcast packets for the specified I3C bus trigger
          search to determine where to place a mark. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket {ENSLave|DISLave|ENTasx|RSTDya| ENTRDya|SETMwrl|SETMrdl|LSLave|ENTRTSTMode|EXTime>}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``ENSLave`` specifies the I3C broadcast packet type as Enable Slave.
        - ``DISLave`` specifies the I3C broadcast packet type as Disable Slave.
        - ``ENTasx`` specifies the I3C broadcast packet type as Enter Activity Stat.
        - ``RSTDya`` specifies the I3C broadcast packet type as Reset Dynamic Address.
        - ``ENTRDya`` specifies the I3C broadcast packet type as Reset Dynamic Address.
        - ``SETMwrl`` specifies the I3C broadcast packet type as Set Max Write Length.
        - ``SETMrdl`` specifies the I3C broadcast packet type as Set Max Read Length.
        - ``LSLave`` specifies the I3C broadcast packet type as Define List of Slaves.
        - ``ENTRTSTMode`` specifies the I3C broadcast packet type as Enter Test Mode Broadcast.
        - ``EXTime`` specifies the I3C broadcast packet type as Set Exchange Time.
    """  # noqa: E501


class SearchSearchItemTriggerABusI3cSdr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.broadcastpacket``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket``
          command.
        - ``.directpacket``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._broadcastpacket = SearchSearchItemTriggerABusI3cSdrBroadcastpacket(
            device, f"{self._cmd_syntax}:BROADCASTPacket"
        )
        self._directpacket = SearchSearchItemTriggerABusI3cSdrDirectpacket(
            device, f"{self._cmd_syntax}:DIRECTPacket"
        )

    @property
    def broadcastpacket(self) -> SearchSearchItemTriggerABusI3cSdrBroadcastpacket:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket`` command.

        **Description:**
            - This command sets or queries the SDR broadcast packets for the specified I3C bus
              trigger search to determine where to place a mark. Requires purchase and installation
              of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket {ENSLave|DISLave|ENTasx|RSTDya| ENTRDya|SETMwrl|SETMrdl|LSLave|ENTRTSTMode|EXTime>}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``ENSLave`` specifies the I3C broadcast packet type as Enable Slave.
            - ``DISLave`` specifies the I3C broadcast packet type as Disable Slave.
            - ``ENTasx`` specifies the I3C broadcast packet type as Enter Activity Stat.
            - ``RSTDya`` specifies the I3C broadcast packet type as Reset Dynamic Address.
            - ``ENTRDya`` specifies the I3C broadcast packet type as Reset Dynamic Address.
            - ``SETMwrl`` specifies the I3C broadcast packet type as Set Max Write Length.
            - ``SETMrdl`` specifies the I3C broadcast packet type as Set Max Read Length.
            - ``LSLave`` specifies the I3C broadcast packet type as Define List of Slaves.
            - ``ENTRTSTMode`` specifies the I3C broadcast packet type as Enter Test Mode Broadcast.
            - ``EXTime`` specifies the I3C broadcast packet type as Set Exchange Time.
        """  # noqa: E501
        return self._broadcastpacket

    @property
    def directpacket(self) -> SearchSearchItemTriggerABusI3cSdrDirectpacket:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket`` command.

        **Description:**
            - This command sets or queries the SDR direct packet types for the specified I3C bus
              trigger search to determine where to place a mark. Requires purchase and installation
              of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket {ENSLave|DISLave|ENTasx|RSTDya| SETMwrl|SETMrdl|SEText|SETDya|SETNdya|GETMWrl|GETMRdl| GETPrid|GETBusch|GETDevch|GETSlave|ACCM|SETBrt| MDATASpeed|HDRCapability}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``ENSLave`` specifies the trigger condition as Enable Slave.
            - ``DISLave`` specifies the trigger condition as Disable Slave.
            - ``ENTasx`` specifies the trigger condition as Enter Activity State.
            - ``RSTDya`` specifies the trigger condition as Reset Dynamic Address.
            - ``SETMwrl`` specifies the trigger condition as Set Max Write Length.
            - ``SETMrdl`` specifies the trigger condition as Set Max Read Length.
            - ``SEText`` specifies the trigger condition as Set Exchange Time.
            - ``SETDya`` specifies the trigger condition as Set Dynamic Address.
            - ``SETNdya`` specifies the trigger condition as Set New Dynamic Address.
            - ``GETMWrl`` specifies the trigger condition as Get Max Write Length.
            - ``GETMRdl`` specifies the trigger condition as Get Max Read Length.
            - ``GETPrid`` specifies the trigger condition as Get Provisional ID.
            - ``GETBusch`` specifies the trigger condition as Get Provisional ID.
            - ``GETDevch`` specifies the trigger condition as Get Dev Characteristics.
            - ``GETSlave`` specifies the trigger condition as Get Slave Current Status.
            - ``ACCM`` specifies the trigger condition as Get Accept Mastership.
            - ``SETBrt`` specifies the trigger condition as Set Bridge Direct Target.
            - ``MDATASpeed`` specifies the trigger condition as Get Max Data Speed.
            - ``HDRCapability`` specifies the trigger condition as Get HDR Capability.
        """  # noqa: E501
        return self._directpacket


class SearchSearchItemTriggerABusI3cSaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C bus searchif the
          trigger condition is SLAVEADDRESS. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress: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:I3C:SADDress:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the address value for which to search. The valid characters are 0,
          1, or X for Binary format; and A-F, 0-9, and X for Hexadecimal format.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusI3cSaddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cSaddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cSaddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C bus searchif the
              trigger condition is SLAVEADDRESS. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress: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:I3C:SADDress:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the address value for which to search. 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 SearchSearchItemTriggerABusI3cPackets(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets`` command.

    **Description:**
        - This command sets or queries the I3C Direct Packets to Direct or Response. Requires
          purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:PACKets value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets {RESPonse|DIRect}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``RESPonse`` specifies the packet address mode as Response.
        - ``DIRect`` specifies the packet address mode as Direct.
    """


class SearchSearchItemTriggerABusI3cMaxwriteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is MAXWRITE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe: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:I3C:MAXWRITe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cMaxwrite(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cMaxwriteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cMaxwriteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is MAXWRITE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe: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:I3C:MAXWRITe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cMaxrturnValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is MAXREADTURN. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN: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:I3C:MAXRTURN:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cMaxrturn(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cMaxrturnValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cMaxrturnValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is MAXREADTURN. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN: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:I3C:MAXRTURN:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cMaxreadValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is MAXREAD. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD: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:I3C:MAXREAD:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cMaxread(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cMaxreadValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cMaxreadValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is MAXREAD. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD: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:I3C:MAXREAD:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cInaccbyteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C search if the
          trigger condition is INACCURACYBYTE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe: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:I3C:INACCBYTe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cInaccbyte(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cInaccbyteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cInaccbyteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C search if the
              trigger condition is INACCURACYBYTE. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe: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:I3C:INACCBYTe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cIdValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C search if the
          trigger condition is ENTDAA packet ID. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID: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:I3C:ID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cId(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cIdValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cIdValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C search if the
              trigger condition is ENTDAA packet ID. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID: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:I3C:ID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cGsmsbValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is GETSTATUSMSB. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb: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:I3C:GSMSb:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cGsmsb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cGsmsbValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cGsmsbValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is GETSTATUSMSB. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb: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:I3C:GSMSb:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cGslsbValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is GETSTATUSLSB. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb: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:I3C:GSLSb:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cGslsb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cGslsbValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cGslsbValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is GETSTATUSLSB. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb: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:I3C:GSLSb:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cFreqbyteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is FREQUENCYBYTE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe: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:I3C:FREQBYTe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cFreqbyte(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cFreqbyteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cFreqbyteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is FREQUENCYBYTE. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe: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:I3C:FREQBYTe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cEventbyteValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is EVENTBYTE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe: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:I3C:EVENTBYTe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cEventbyte(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cEventbyteValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cEventbyteValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is EVENTBYTE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe: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:I3C:EVENTBYTe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cErrortype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe`` command.

    **Description:**
        - This command sets or queries the error type condition for the specified I3C bus search to
          determine where to place a mark. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe {NACK|TBIT|PARity| BADDr|DADDr|PREamble|CRC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``NACK`` specifies the error type on which to search as Missing Ack.
        - ``TBIT`` specifies the error type on which to search as T-Bit.
        - ``PARity`` specifies the error type on which to search as Parity.
        - ``BADDr`` specifies the error type on which to search as Broadcast Address.
        - ``DADDr`` specifies the error type on which to search as Dynamic Address.
        - ``PREamble`` specifies the error type on which to search as Preamble.
        - ``CRC`` specifies the error type on which to search as CRC.
    """


class SearchSearchItemTriggerABusI3cDwordValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is DATAWORDS. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd: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:I3C:DWORd:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cDword(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cDwordValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cDwordValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is DATAWORDS. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd: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:I3C:DWORd:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cDcrtypeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C bus search if the
          trigger condition is DCRTYPE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType: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:I3C:DCRType:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the data value for which to search. The valid characters are 0, 1,
          or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cDcrtype(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cDcrtypeValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cDcrtypeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C bus search if
              the trigger condition is DCRTYPE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType: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:I3C:DCRType:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the data value for which to search. The valid characters are
              0, 1, or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cDcrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C bus search if the
          trigger condition is DCR. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR: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:I3C:DCR:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cDcr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cDcrValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cDcrValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C bus search if
              the trigger condition is DCR. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR: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:I3C:DCR:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the data value of the data token for the specified I3C bus
          trigger search to determine where to place a mark. Requires purchase and installation of
          option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` 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 SearchSearchItemTriggerABusI3cDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string in bytes used for the specified
          I3C bus trigger search to determine where to place a mark. Requires purchase and
          installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<NR1>`` specifies the data size in bytes.
    """


class SearchSearchItemTriggerABusI3cDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection`` command.

    **Description:**
        - This command sets or queries the direction of the data for the I3C bus trigger search to
          determine where to place a mark. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection {NOCARE|READ|WRITE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``NOCARE`` specifies the data direction for which to search is Don't Care.
        - ``READ`` specifies the data direction for which to search is Read.
        - ``WRITE`` specifies the data direction for which to search is Write.
    """


class SearchSearchItemTriggerABusI3cData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._direction = SearchSearchItemTriggerABusI3cDataDirection(
            device, f"{self._cmd_syntax}:DIRection"
        )
        self._size = SearchSearchItemTriggerABusI3cDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusI3cDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def direction(self) -> SearchSearchItemTriggerABusI3cDataDirection:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection`` command.

        **Description:**
            - This command sets or queries the direction of the data for the I3C bus trigger search
              to determine where to place a mark. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection {NOCARE|READ|WRITE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``NOCARE`` specifies the data direction for which to search is Don't Care.
            - ``READ`` specifies the data direction for which to search is Read.
            - ``WRITE`` specifies the data direction for which to search is Write.
        """
        return self._direction

    @property
    def size(self) -> SearchSearchItemTriggerABusI3cDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string in bytes used for the
              specified I3C bus trigger search to determine where to place a mark. Requires purchase
              and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<NR1>`` specifies the data size in bytes.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the data value of the data token for the specified I3C
              bus trigger search to determine where to place a mark. Requires purchase and
              installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` 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 SearchSearchItemTriggerABusI3cCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for the specified I3C bus trigger
          search to determine where to place a mark. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition {STARt|REPEATStart|ADDRess|DATa| SDRDirect|SDRBroadcast|DDR|ERRors|HOTJoin| DMSGEnd|BMSGEnd|HDRRestart|HDRExit}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``STARt`` specifies trigger condition as Start.
        - ``REPEATStart`` specifies trigger condition as Repeated Start.
        - ``ADDRess`` specifies trigger condition as Address.
        - ``DATa`` specifies trigger condition as Data.
        - ``SDRDirect`` specifies trigger condition as I3C SDR Direct.
        - ``SDRBroadcast`` specifies trigger condition as I3C SDR Broadcast.
        - ``DDR`` specifies trigger condition as DDR.
        - ``ERRors`` specifies trigger condition as Errors.
        - ``HOTJoin`` specifies trigger condition as Hot-Join.
        - ``DMSGEnd`` specifies trigger condition as Direct Message End.
        - ``BMSGEnd`` specifies trigger condition as Stop.
        - ``HDRRestart`` specifies trigger condition as HDR Restart.
        - ``HDRExit`` specifies trigger condition as HDR Exit.
    """  # noqa: E501


class SearchSearchItemTriggerABusI3cCcodeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is SETBRGTGT packet ID. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe: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:I3C:CCODe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and A-F, 0-9, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cCcode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cCcodeValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cCcodeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is SETBRGTGT packet ID. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe: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:I3C:CCODe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. 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 SearchSearchItemTriggerABusI3cBrgtidValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C trigger if the
          trigger condition is SETBRGTGT packet ID. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID: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:I3C:BRGTID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cBrgtid(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cBrgtidValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cBrgtidValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C trigger if the
              trigger condition is SETBRGTGT packet ID. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID: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:I3C:BRGTID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cBpackets(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets`` command.

    **Description:**
        - This command sets or queries the I3C Broadcast Packets search to Broadcast or Response.
          Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets {RESPonse|BROadcast}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``RESPonse`` specifies the broadcast address mode as Response.
        - ``BROadcast`` specifies the broadcast address mode as Broadcast.
    """


class SearchSearchItemTriggerABusI3cBcrtypeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C bus search if the
          trigger condition is BCRTYPE. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType: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:I3C:BCRType:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the data value for which to search. The valid characters are 0, 1,
          or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cBcrtype(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cBcrtypeValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cBcrtypeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C bus search if
              the trigger condition is BCRTYPE. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType: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:I3C:BCRType:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the data value for which to search. The valid characters are
              0, 1, or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cBcrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue`` command.

    **Description:**
        - This command sets or queries the binary field string used for the I3C search if the
          trigger condition is BCR. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR: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:I3C:BCR:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1, or X
          for Binary format; and 0-9, A-F, and X for Hexadecimal format.
    """


class SearchSearchItemTriggerABusI3cBcr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusI3cBcrValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cBcrValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue`` command.

        **Description:**
            - This command sets or queries the binary field string used for the I3C search if the
              trigger condition is BCR. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR: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:I3C:BCR:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the value for which to search. The valid characters are 0, 1,
              or X for Binary format; and 0-9, A-F, and X for Hexadecimal format.
        """
        return self._value


class SearchSearchItemTriggerABusI3cAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the I3C address value for which to search, to determine where
          to place a search mark. Requires purchase and installation of option SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``<Qstring>`` specifies the address value for the specified Search <x>. 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 Hexadecimal address format; and 0, 1, and X (don't care) for Binary address
          format.
    """


class SearchSearchItemTriggerABusI3cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe`` command.

    **Description:**
        - This command sets or queries the address mode for the specified I3C bus trigger search to
          determine where to place a search mark. Requires purchase and installation of option
          SRI3C.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:ADDRess:MODe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe {ADDR10|ADDR7}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe?

    **Info:**
        - ``Search<x>`` specifies the search number.
        - ``ADDR10`` specifies the address mode as ADDR10.
        - ``ADDR7`` specifies the address mode as ADDR7.
    """


class SearchSearchItemTriggerABusI3cAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._mode = SearchSearchItemTriggerABusI3cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = SearchSearchItemTriggerABusI3cAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def mode(self) -> SearchSearchItemTriggerABusI3cAddressMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe`` command.

        **Description:**
            - This command sets or queries the address mode for the specified I3C bus trigger search
              to determine where to place a search mark. Requires purchase and installation of
              option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:ADDRess:MODe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe {ADDR10|ADDR7}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``ADDR10`` specifies the address mode as ADDR10.
            - ``ADDR7`` specifies the address mode as ADDR7.
        """
        return self._mode

    @property
    def value(self) -> SearchSearchItemTriggerABusI3cAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the I3C address value for which to search, to determine
              where to place a search mark. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``<Qstring>`` specifies the address value for the specified Search <x>. 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 Hexadecimal address format; and 0, 1, and X (don't care) for Binary
              address format.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class SearchSearchItemTriggerABusI3c(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess`` command tree.
        - ``.bcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR`` command tree.
        - ``.bcrtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType`` command tree.
        - ``.bpackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets`` command.
        - ``.brgtid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID`` command tree.
        - ``.ccode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa`` command tree.
        - ``.dcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR`` command tree.
        - ``.dcrtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType`` command tree.
        - ``.dword``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd`` command tree.
        - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe`` command.
        - ``.eventbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe`` command tree.
        - ``.freqbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe`` command tree.
        - ``.gslsb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb`` command tree.
        - ``.gsmsb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb`` command tree.
        - ``.id``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID`` command tree.
        - ``.inaccbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe`` command tree.
        - ``.maxread``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD`` command tree.
        - ``.maxrturn``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN`` command tree.
        - ``.maxwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe`` command tree.
        - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets`` command.
        - ``.saddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress`` command tree.
        - ``.sdr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR`` command tree.
        - ``.statebyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe`` command tree.
        - ``.static``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic`` command tree.
        - ``.supportbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe`` command tree.
        - ``.testmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusI3cAddress(device, f"{self._cmd_syntax}:ADDRess")
        self._bcr = SearchSearchItemTriggerABusI3cBcr(device, f"{self._cmd_syntax}:BCR")
        self._bcrtype = SearchSearchItemTriggerABusI3cBcrtype(device, f"{self._cmd_syntax}:BCRType")
        self._bpackets = SearchSearchItemTriggerABusI3cBpackets(
            device, f"{self._cmd_syntax}:BPACKets"
        )
        self._brgtid = SearchSearchItemTriggerABusI3cBrgtid(device, f"{self._cmd_syntax}:BRGTID")
        self._ccode = SearchSearchItemTriggerABusI3cCcode(device, f"{self._cmd_syntax}:CCODe")
        self._condition = SearchSearchItemTriggerABusI3cCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusI3cData(device, f"{self._cmd_syntax}:DATa")
        self._dcr = SearchSearchItemTriggerABusI3cDcr(device, f"{self._cmd_syntax}:DCR")
        self._dcrtype = SearchSearchItemTriggerABusI3cDcrtype(device, f"{self._cmd_syntax}:DCRType")
        self._dword = SearchSearchItemTriggerABusI3cDword(device, f"{self._cmd_syntax}:DWORd")
        self._errortype = SearchSearchItemTriggerABusI3cErrortype(
            device, f"{self._cmd_syntax}:ERRORTYPe"
        )
        self._eventbyte = SearchSearchItemTriggerABusI3cEventbyte(
            device, f"{self._cmd_syntax}:EVENTBYTe"
        )
        self._freqbyte = SearchSearchItemTriggerABusI3cFreqbyte(
            device, f"{self._cmd_syntax}:FREQBYTe"
        )
        self._gslsb = SearchSearchItemTriggerABusI3cGslsb(device, f"{self._cmd_syntax}:GSLSb")
        self._gsmsb = SearchSearchItemTriggerABusI3cGsmsb(device, f"{self._cmd_syntax}:GSMSb")
        self._id = SearchSearchItemTriggerABusI3cId(device, f"{self._cmd_syntax}:ID")
        self._inaccbyte = SearchSearchItemTriggerABusI3cInaccbyte(
            device, f"{self._cmd_syntax}:INACCBYTe"
        )
        self._maxread = SearchSearchItemTriggerABusI3cMaxread(device, f"{self._cmd_syntax}:MAXREAD")
        self._maxrturn = SearchSearchItemTriggerABusI3cMaxrturn(
            device, f"{self._cmd_syntax}:MAXRTURN"
        )
        self._maxwrite = SearchSearchItemTriggerABusI3cMaxwrite(
            device, f"{self._cmd_syntax}:MAXWRITe"
        )
        self._packets = SearchSearchItemTriggerABusI3cPackets(device, f"{self._cmd_syntax}:PACKets")
        self._saddress = SearchSearchItemTriggerABusI3cSaddress(
            device, f"{self._cmd_syntax}:SADDress"
        )
        self._sdr = SearchSearchItemTriggerABusI3cSdr(device, f"{self._cmd_syntax}:SDR")
        self._statebyte = SearchSearchItemTriggerABusI3cStatebyte(
            device, f"{self._cmd_syntax}:STATEBYTe"
        )
        self._static = SearchSearchItemTriggerABusI3cStatic(device, f"{self._cmd_syntax}:STATic")
        self._supportbyte = SearchSearchItemTriggerABusI3cSupportbyte(
            device, f"{self._cmd_syntax}:SUPPORTBYTe"
        )
        self._testmode = SearchSearchItemTriggerABusI3cTestmode(
            device, f"{self._cmd_syntax}:TESTMODe"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusI3cAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:MODe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def bcr(self) -> SearchSearchItemTriggerABusI3cBcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR:VALue`` command.
        """
        return self._bcr

    @property
    def bcrtype(self) -> SearchSearchItemTriggerABusI3cBcrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType:VALue`` command.
        """
        return self._bcrtype

    @property
    def bpackets(self) -> SearchSearchItemTriggerABusI3cBpackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets`` command.

        **Description:**
            - This command sets or queries the I3C Broadcast Packets search to Broadcast or
              Response. Requires purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets {RESPonse|BROadcast}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``RESPonse`` specifies the broadcast address mode as Response.
            - ``BROadcast`` specifies the broadcast address mode as Broadcast.
        """
        return self._bpackets

    @property
    def brgtid(self) -> SearchSearchItemTriggerABusI3cBrgtid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID:VALue`` command.
        """
        return self._brgtid

    @property
    def ccode(self) -> SearchSearchItemTriggerABusI3cCcode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe:VALue`` command.
        """
        return self._ccode

    @property
    def condition(self) -> SearchSearchItemTriggerABusI3cCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for the specified I3C bus trigger
              search to determine where to place a mark. Requires purchase and installation of
              option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition {STARt|REPEATStart|ADDRess|DATa| SDRDirect|SDRBroadcast|DDR|ERRors|HOTJoin| DMSGEnd|BMSGEnd|HDRRestart|HDRExit}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``STARt`` specifies trigger condition as Start.
            - ``REPEATStart`` specifies trigger condition as Repeated Start.
            - ``ADDRess`` specifies trigger condition as Address.
            - ``DATa`` specifies trigger condition as Data.
            - ``SDRDirect`` specifies trigger condition as I3C SDR Direct.
            - ``SDRBroadcast`` specifies trigger condition as I3C SDR Broadcast.
            - ``DDR`` specifies trigger condition as DDR.
            - ``ERRors`` specifies trigger condition as Errors.
            - ``HOTJoin`` specifies trigger condition as Hot-Join.
            - ``DMSGEnd`` specifies trigger condition as Direct Message End.
            - ``BMSGEnd`` specifies trigger condition as Stop.
            - ``HDRRestart`` specifies trigger condition as HDR Restart.
            - ``HDRExit`` specifies trigger condition as HDR Exit.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusI3cData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:DIRection`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa:VALue`` command.
        """
        return self._data

    @property
    def dcr(self) -> SearchSearchItemTriggerABusI3cDcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR:VALue`` command.
        """
        return self._dcr

    @property
    def dcrtype(self) -> SearchSearchItemTriggerABusI3cDcrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType:VALue`` command.
        """
        return self._dcrtype

    @property
    def dword(self) -> SearchSearchItemTriggerABusI3cDword:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd:VALue`` command.
        """
        return self._dword

    @property
    def errortype(self) -> SearchSearchItemTriggerABusI3cErrortype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe`` command.

        **Description:**
            - This command sets or queries the error type condition for the specified I3C bus search
              to determine where to place a mark. Requires purchase and installation of option
              SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe {NACK|TBIT|PARity| BADDr|DADDr|PREamble|CRC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``NACK`` specifies the error type on which to search as Missing Ack.
            - ``TBIT`` specifies the error type on which to search as T-Bit.
            - ``PARity`` specifies the error type on which to search as Parity.
            - ``BADDr`` specifies the error type on which to search as Broadcast Address.
            - ``DADDr`` specifies the error type on which to search as Dynamic Address.
            - ``PREamble`` specifies the error type on which to search as Preamble.
            - ``CRC`` specifies the error type on which to search as CRC.
        """  # noqa: E501
        return self._errortype

    @property
    def eventbyte(self) -> SearchSearchItemTriggerABusI3cEventbyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe:VALue`` command.
        """
        return self._eventbyte

    @property
    def freqbyte(self) -> SearchSearchItemTriggerABusI3cFreqbyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe:VALue`` command.
        """
        return self._freqbyte

    @property
    def gslsb(self) -> SearchSearchItemTriggerABusI3cGslsb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb:VALue`` command.
        """
        return self._gslsb

    @property
    def gsmsb(self) -> SearchSearchItemTriggerABusI3cGsmsb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb:VALue`` command.
        """
        return self._gsmsb

    @property
    def id(self) -> SearchSearchItemTriggerABusI3cId:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID:VALue`` command.
        """
        return self._id

    @property
    def inaccbyte(self) -> SearchSearchItemTriggerABusI3cInaccbyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe:VALue`` command.
        """
        return self._inaccbyte

    @property
    def maxread(self) -> SearchSearchItemTriggerABusI3cMaxread:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD:VALue`` command.
        """
        return self._maxread

    @property
    def maxrturn(self) -> SearchSearchItemTriggerABusI3cMaxrturn:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN:VALue`` command.
        """
        return self._maxrturn

    @property
    def maxwrite(self) -> SearchSearchItemTriggerABusI3cMaxwrite:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe:VALue`` command.
        """
        return self._maxwrite

    @property
    def packets(self) -> SearchSearchItemTriggerABusI3cPackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets`` command.

        **Description:**
            - This command sets or queries the I3C Direct Packets to Direct or Response. Requires
              purchase and installation of option SRI3C.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C: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:I3C:PACKets value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets {RESPonse|DIRect}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets?

        **Info:**
            - ``Search<x>`` specifies the search number.
            - ``RESPonse`` specifies the packet address mode as Response.
            - ``DIRect`` specifies the packet address mode as Direct.
        """
        return self._packets

    @property
    def saddress(self) -> SearchSearchItemTriggerABusI3cSaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress:VALue`` command.
        """
        return self._saddress

    @property
    def sdr(self) -> SearchSearchItemTriggerABusI3cSdr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.broadcastpacket``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:BROADCASTPacket``
              command.
            - ``.directpacket``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR:DIRECTPacket``
              command.
        """
        return self._sdr

    @property
    def statebyte(self) -> SearchSearchItemTriggerABusI3cStatebyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe:VALue`` command.
        """
        return self._statebyte

    @property
    def static(self) -> SearchSearchItemTriggerABusI3cStatic:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic:ADDRess`` command.
        """
        return self._static

    @property
    def supportbyte(self) -> SearchSearchItemTriggerABusI3cSupportbyte:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe:VALue`` command.
        """
        return self._supportbyte

    @property
    def testmode(self) -> SearchSearchItemTriggerABusI3cTestmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe:VALue`` command.
        """
        return self._testmode


class SearchSearchItemTriggerABusI2cDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for I2C bus search to determine
          where to place a mark. The search number is specified by x. The search condition must be
          DATA or ADDRANDDATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


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 an I2C bus
          search to determine where to place a mark. The search number is specified by x. The search
          condition must be DATA or ADDRANDDATA.

    **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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size in bytes.
    """


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 search to determine
          where to place a mark. The search number is specified by x. Read or write is indicated by
          the R/W bit in the I2C protocol.

    **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 {NOCARE|READ|WRITE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?

    **Info:**
        - ``NOCARE`` 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.
        - ``.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._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 search to
              determine where to place a mark. The search number is specified by x. Read or write is
              indicated by the R/W bit in the I2C protocol.

        **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 {NOCARE|READ|WRITE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:DIRection?

        **Info:**
            - ``NOCARE`` 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 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 an I2C
              bus search to determine where to place a mark. The search number is specified by x.
              The search condition must be DATA or ADDRANDDATA.

        **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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 binary data string used for I2C bus search to
              determine where to place a mark. The search number is specified by x. The search
              condition must be DATA or ADDRANDDATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:DATa:VALue?

        **Info:**
            - ``<QString>`` 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 search condition for an I2C bus. The search number is
          specified by x.

    **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 binary address string used for the I2C search the
          specified search condition is Address or AddressData. The search number is specified by x.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusI2cAddressMode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:MODe`` command.

    **Description:**
        - This command sets or queries the I2C address mode for the specified 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: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 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:
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:MODe`` 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._mode = SearchSearchItemTriggerABusI2cAddressMode(device, f"{self._cmd_syntax}:MODe")
        self._value = SearchSearchItemTriggerABusI2cAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def mode(self) -> SearchSearchItemTriggerABusI2cAddressMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:MODe`` command.

        **Description:**
            - This command sets or queries the I2C address mode for the specified 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: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 value(self) -> SearchSearchItemTriggerABusI2cAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary address string used for the I2C search the
              specified search condition is Address or AddressData. The search number is specified
              by x.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:VALue?

        **Info:**
            - ``<QString>`` 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:
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C:ADDRess:MODe`` 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 search condition for an I2C bus. The search number is
              specified by x.

        **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.
            - ``.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 SearchSearchItemTriggerABusFlexrayHeaderPaylength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth`` command.

    **Description:**
        - This command sets or queries the payload length portion of the binary header string when
          searching on a FlexRay bus search trigger header. The search number is specified by x. The
          search condition must be set to HEADer.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?

    **Info:**
        - ``<QString>`` specifies the header Payload Length.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayHeaderIndbits(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits`` command.

    **Description:**
        - This command sets or queries the Indicator bits portion of the binary header string when
          searching on a FlexRay bus header. The search number is specified by x. The search
          condition must be set to HEADer.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?

    **Info:**
        - ``<QString>`` specifies the header Indicator Bits.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayHeaderFrameid(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID`` command.

    **Description:**
        - This command sets or queries the frame id portion of the binary header string when
          searching on a FlexRay bus header. The search number is specified by x. The search
          condition must be set to HEADer or IDANDDATA.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?

    **Info:**
        - ``<QString>`` specifies the frame ID.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayHeaderCyclecount(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount`` command.

    **Description:**
        - This command sets or queries the cycle count portion of the binary header string when
          searching on a FlexRay bus header. The search number is specified by x. The search
          condition must be set to HEADer.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?

    **Info:**
        - ``<QString>`` specifies the header cycle count.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayHeaderCrc(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC`` command.

    **Description:**
        - This command sets or queries the CRC portion of the binary header string whensearching on
          a FlexRay bus header. 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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?

    **Info:**
        - ``<QString>`` specifies the CRC.
    """

    _WRAP_ARG_WITH_QUOTES = True


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 CRC portion of the binary header string whensearching
              on a FlexRay bus header. 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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CRC?

        **Info:**
            - ``<QString>`` 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 cycle count portion of the binary header string when
              searching on a FlexRay bus header. The search number is specified by x. The search
              condition must be set to HEADer.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:CYCLECount?

        **Info:**
            - ``<QString>`` 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 frame id portion of the binary header string when
              searching on a FlexRay bus header. The search number is specified by x. The search
              condition must be set to HEADer or IDANDDATA.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:FRAMEID?

        **Info:**
            - ``<QString>`` 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 Indicator bits portion of the binary header string
              when searching on a FlexRay bus header. The search number is specified by x. The
              search condition must be set to HEADer.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:INDBits?

        **Info:**
            - ``<QString>`` 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 payload length portion of the binary header string
              when searching on a FlexRay bus search trigger header. The search number is specified
              by x. The search condition must be set to HEADer.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER:PAYLENgth?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusFlexrayFrameidValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue`` command.

    **Description:**
        - This command sets the low value when searching on a FlexRay bus id field. The search
          condition must be set to IDentifier. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FRAMEID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue?

    **Info:**
        - ``<QString>`` is the frame id value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayFrameidQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier`` command.

    **Description:**
        - This command sets the qualifier to be used when searching on a FlexRay bus signal. The
          search condition must be set to Identifier. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FRAMEID:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier {EQual|UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual| INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier?

    **Info:**
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to unequal.
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to more than.
        - ``LESSEQual`` sets the qualifier to less equal.
        - ``MOREEQual`` sets the qualifier to more equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayFrameidHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when searching on a FlexRay bus frame id
          field. The search condition must be set to IDentifier. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FLEXRAY:FRAMEID:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue?

    **Info:**
        - ``<QString>`` is the frame id high value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayFrameid(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusFlexrayFrameidHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusFlexrayFrameidQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusFlexrayFrameidValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusFlexrayFrameidHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when searching on a FlexRay bus frame id
              field. The search condition must be set to IDentifier. The search number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FLEXRAY:FRAMEID:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue?

        **Info:**
            - ``<QString>`` is the frame id high value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusFlexrayFrameidQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier`` command.

        **Description:**
            - This command sets the qualifier to be used when searching on a FlexRay bus signal. The
              search condition must be set to Identifier. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FRAMEID:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier {EQual|UNEQual|LESSthan|MOREthan|LESSEQual|MOREEQual| INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier?

        **Info:**
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to unequal.
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to more than.
            - ``LESSEQual`` sets the qualifier to less equal.
            - ``MOREEQual`` sets the qualifier to more equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusFlexrayFrameidValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue`` command.

        **Description:**
            - This command sets the low value when searching on a FlexRay bus id field. The search
              condition must be set to IDentifier. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID: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:FRAMEID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue?

        **Info:**
            - ``<QString>`` is the frame id value.
        """
        return self._value


class SearchSearchItemTriggerABusFlexrayErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:ERRTYPE`` command.

    **Description:**
        - This command sets or queries the error type when searching on a FlexRay bus signal. 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: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?

    **Info:**
        - ``CRCHeader`` sets the error type to CRCHeader.
        - ``CRCTrailer`` sets the error type to CRCTrailer.
        - ``NULLFRStatic`` sets the error type to NULLFRStatic.
        - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
        - ``SYNCFrame`` sets the error type to SYNCFrame.
        - ``STARTupnosync`` sets the error type to STARTupnosync.
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayEoftype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE`` command.

    **Description:**
        - This command sets or queries the end of frame type when searching on a FlexRay bus signal.
          The search number is specified by x. The search condition must be set to EOF.

    **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 {ANY|STATIC|DYNAMIC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE?

    **Info:**
        - ``ANY`` 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 low value to be used when searching on a FlexRay bus data
          field. 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: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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to be used when
          searching on a FlexRay bus data field. 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: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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?

    **Info:**
        - ``<NR1>`` 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 qualifier to be used when searching on a FlexRay bus
          signal. 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| INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as equal.
        - ``LESSEQual`` specifies the qualifier as less equal.
        - ``MOREEQual`` specifies the qualifier as more equal.
        - ``UNEQual`` specifies the qualifier as unequal.
        - ``LESSthan`` specifies the qualifier as less than.
        - ``MOREthan`` specifies the qualifier as more than.
        - ``INrange`` specifies the qualifier as in range.
        - ``OUTrange`` specifies the qualifier as out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the offset of the data string, in bytes, when searching on a
          FlexRay bus data field. 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: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 SearchSearchItemTriggerABusFlexrayDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when searching on a FlexRay bus data field.
          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:FLEXRAY:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY: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:FLEXRAY:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue?

    **Info:**
        - ``<QString>`` specifies the data value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue`` 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._hivalue = SearchSearchItemTriggerABusFlexrayDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        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 hivalue(self) -> SearchSearchItemTriggerABusFlexrayDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when searching on a FlexRay bus data
              field. 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:FLEXRAY:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY: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:FLEXRAY:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue?

        **Info:**
            - ``<QString>`` specifies the data value.
        """
        return self._hivalue

    @property
    def offset(self) -> SearchSearchItemTriggerABusFlexrayDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the offset of the data string, in bytes, when searching
              on a FlexRay bus data field. 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: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 qualifier to be used when searching on a FlexRay bus
              signal. 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| INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:QUALifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as equal.
            - ``LESSEQual`` specifies the qualifier as less equal.
            - ``MOREEQual`` specifies the qualifier as more equal.
            - ``UNEQual`` specifies the qualifier as unequal.
            - ``LESSthan`` specifies the qualifier as less than.
            - ``MOREthan`` specifies the qualifier as more than.
            - ``INrange`` specifies the qualifier as in range.
            - ``OUTrange`` specifies the qualifier as out of range.
        """  # 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 length of the data string, in bytes, to be used when
              searching on a FlexRay bus data field. 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: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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 low value to be used when searching on a FlexRay bus
              data field. 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: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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:VALue?

        **Info:**
            - ``<QString>`` 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 low value when searching on a FlexRay bus cycle count
          field. The search number is specified by x. The search condition must be set to
          CYCLEcount.

    **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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?

    **Info:**
        - ``<QString>`` specifies the cycle count value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusFlexrayCyclecountQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on a FlexRay bus
          search cycle count field. The search number is specified by x. The search condition must
          be set to CYCLEcount.

    **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| INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?

    **Info:**
        - ``EQUal`` specifies the qualifier as equal.
        - ``LESSEQual`` specifies the qualifier as less equal.
        - ``MOREEQual`` specifies the qualifier as more equal.
        - ``UNEQual`` specifies the qualifier as unequal.
        - ``LESSthan`` specifies the qualifier as less than.
        - ``MOREthan`` specifies the qualifier as more than.
        - ``INrange`` specifies the qualifier as in range.
        - ``OUTrange`` specifies the qualifier as out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusFlexrayCyclecountHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue`` command.

    **Description:**
        - This command sets or queries the heigh value when searching on a FlexRay bus cycle count
          field. The search number is specified by x. The search condition must be set to
          CYCLEcount.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount: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:FLEXRAY:CYCLEcount:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue?

    **Info:**
        - ``<QString>`` specifies the cycle count value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue`` 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._hivalue = SearchSearchItemTriggerABusFlexrayCyclecountHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusFlexrayCyclecountQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusFlexrayCyclecountValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusFlexrayCyclecountHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue`` command.

        **Description:**
            - This command sets or queries the heigh value when searching on a FlexRay bus cycle
              count field. The search number is specified by x. The search condition must be set to
              CYCLEcount.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount: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:FLEXRAY:CYCLEcount:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue?

        **Info:**
            - ``<QString>`` specifies the cycle count value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusFlexrayCyclecountQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on a FlexRay bus
              search cycle count field. The search number is specified by x. The search condition
              must be set to CYCLEcount.

        **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| INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:QUALifier?

        **Info:**
            - ``EQUal`` specifies the qualifier as equal.
            - ``LESSEQual`` specifies the qualifier as less equal.
            - ``MOREEQual`` specifies the qualifier as more equal.
            - ``UNEQual`` specifies the qualifier as unequal.
            - ``LESSthan`` specifies the qualifier as less than.
            - ``MOREthan`` specifies the qualifier as more than.
            - ``INrange`` specifies the qualifier as in range.
            - ``OUTrange`` specifies the qualifier as out of range.
        """  # 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 low value when searching on a FlexRay bus cycle count
              field. The search number is specified by x. The search condition must be set to
              CYCLEcount.

        **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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:VALue?

        **Info:**
            - ``<QString>`` 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 the FlexRay bus search 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?

    **Info:**
        - ``SOF`` sets the trigger condition to start of frame.
        - ``FRAMEType`` sets the trigger condition to frame type.
        - ``IDentifier`` sets the trigger condition to identifier.
        - ``CYCLEcount`` sets the trigger condition to cycle count.
        - ``HEADer`` sets the trigger condition to header.
        - ``DATA`` sets the trigger condition to data.
        - ``IDANDDATA`` sets the trigger condition to ID and data.
        - ``EOF`` sets the trigger condition to end of frame.
        - ``ERRor`` sets the trigger condition to error.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class 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.
        - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID`` command tree.
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` 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._frameid = SearchSearchItemTriggerABusFlexrayFrameid(
            device, f"{self._cmd_syntax}:FRAMEID"
        )
        self._frametype = SearchSearchItemTriggerABusFlexrayFrametype(
            device, f"{self._cmd_syntax}:FRAMEType"
        )
        self._header = SearchSearchItemTriggerABusFlexrayHeader(
            device, f"{self._cmd_syntax}:HEADER"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusFlexrayCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CONDition`` command.

        **Description:**
            - This command sets or queries the FlexRay bus search 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?

        **Info:**
            - ``SOF`` sets the trigger condition to start of frame.
            - ``FRAMEType`` sets the trigger condition to frame type.
            - ``IDentifier`` sets the trigger condition to identifier.
            - ``CYCLEcount`` sets the trigger condition to cycle count.
            - ``HEADer`` sets the trigger condition to header.
            - ``DATA`` sets the trigger condition to data.
            - ``IDANDDATA`` sets the trigger condition to ID and data.
            - ``EOF`` sets the trigger condition to end of frame.
            - ``ERRor`` sets the trigger condition to error.
        """  # noqa: E501
        return self._condition

    @property
    def cyclecount(self) -> 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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:CYCLEcount:HIVALue``
              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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:DATa:HIVALue`` 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 end of frame type when searching on a FlexRay bus
              signal. The search number is specified by x. The search condition must be set to EOF.

        **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 {ANY|STATIC|DYNAMIC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:EOFTYPE?

        **Info:**
            - ``ANY`` 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 error type when searching on a FlexRay bus signal.
              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: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?

        **Info:**
            - ``CRCHeader`` sets the error type to CRCHeader.
            - ``CRCTrailer`` sets the error type to CRCTrailer.
            - ``NULLFRStatic`` sets the error type to NULLFRStatic.
            - ``NULLFRDynamic`` sets the error type to NULLFRDynamic.
            - ``SYNCFrame`` sets the error type to SYNCFrame.
            - ``STARTupnosync`` sets the error type to STARTupnosync.
        """  # noqa: E501
        return self._errtype

    @property
    def frameid(self) -> SearchSearchItemTriggerABusFlexrayFrameid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID:VALue`` command.
        """
        return self._frameid

    @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


class SearchSearchItemTriggerABusEusbTokentype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType`` command.

    **Description:**
        - This command specifies the eUSB trigger type to be valid on any, sof, out, in, or setup
          condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:TOKENType value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType {ANY|SOF|OUT|IN|SETUP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType?

    **Info:**
        - ``ANY`` specifies the token type as Any (XX01).
        - ``SOF`` specifies the token type as Start Of Frame (0101).
        - ``OUT`` specifies the token type as OUT (0001).
        - ``IN`` specifies the token type as IN (1001).
        - ``SETUP`` specifies the token type as SETUP (1101).
    """


class SearchSearchItemTriggerABusEusbSyncsearch(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch`` command.

    **Description:**
        - This command specifies eUSB Search Sync Bits to be On and Off. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch {OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?

    **Info:**
        - ``OFF`` specifies the Sync bits as OFF (for Low Speed and Full Speed).
        - ``ON`` specifies the Sync bits as ON (for High Speed).
    """


class SearchSearchItemTriggerABusEusbSyncbitsMinSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe`` command.

    **Description:**
        - This command sets the number of sync bits, in bits, to be used when triggering on a eUSB
          bus signal. The trigger condition must be set to SYNC. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN: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:EUSB:SYNCBITS:MIN:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of sync bits. The default minimum Sync bits is 12. The
          argument range is 12 to 31 bits.
    """


class SearchSearchItemTriggerABusEusbSyncbitsMin(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbSyncbitsMinSize(
            device, f"{self._cmd_syntax}:SIZe"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbSyncbitsMinSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe`` command.

        **Description:**
            - This command sets the number of sync bits, in bits, to be used when triggering on a
              eUSB bus signal. The trigger condition must be set to SYNC. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN: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:EUSB:SYNCBITS:MIN:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of sync bits. The default minimum Sync bits is 12. The
              argument range is 12 to 31 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbSyncbitsMaxSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe`` command.

    **Description:**
        - This command sets the number of sync bits, to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to SYNC. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX: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:EUSB:SYNCBITS:MAX:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of sync bits. The default maximum Sync bits is 32. The
          argument range is 13 to 32 bits.
    """


class SearchSearchItemTriggerABusEusbSyncbitsMax(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbSyncbitsMaxSize(
            device, f"{self._cmd_syntax}:SIZe"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbSyncbitsMaxSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe`` command.

        **Description:**
            - This command sets the number of sync bits, to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to SYNC. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX: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:EUSB:SYNCBITS:MAX:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of sync bits. The default maximum Sync bits is 32. The
              argument range is 13 to 32 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbSyncbits(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.max``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX`` command tree.
        - ``.min``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._max = SearchSearchItemTriggerABusEusbSyncbitsMax(device, f"{self._cmd_syntax}:MAX")
        self._min = SearchSearchItemTriggerABusEusbSyncbitsMin(device, f"{self._cmd_syntax}:MIN")

    @property
    def max(self) -> SearchSearchItemTriggerABusEusbSyncbitsMax:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX:SIZe`` command.
        """
        return self._max

    @property
    def min(self) -> SearchSearchItemTriggerABusEusbSyncbitsMin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN:SIZe`` command.
        """
        return self._min


class SearchSearchItemTriggerABusEusbSyncQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
          trigger condition must be set to Sync Bits. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC: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:EUSB:SYNC:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier?

    **Info:**
        - ``EQual`` specifies the qualifier as Equal.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``INrange`` specifies the qualifier as Inside Range.
        - ``OUTrange`` specifies the qualifier as Out of Range.
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbSync(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._qualifier = SearchSearchItemTriggerABusEusbSyncQualifier(
            device, f"{self._cmd_syntax}:QUAlifier"
        )

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusEusbSyncQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
              trigger condition must be set to Sync Bits. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC: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:EUSB:SYNC:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier?

        **Info:**
            - ``EQual`` specifies the qualifier as Equal.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``INrange`` specifies the qualifier as Inside Range.
            - ``OUTrange`` specifies the qualifier as Out of Range.
        """  # noqa: E501
        return self._qualifier


class SearchSearchItemTriggerABusEusbSplitSeValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue`` command.

    **Description:**
        - This command specifies the eUSB trigger type start/complete condition. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SE:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue {NOCARE| FULLSPEED| LOWSPEED| ISOSTART| ISOMID| ISOEND| ISOALL}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue?

    **Info:**
        - ``NOCARE`` sets the trigger on any combination of S and E bits.
        - ``FULLSPEED`` sets the trigger on S bit = 0 and E bit = 0.
        - ``LOWSPEED`` sets the trigger on S bit = 1 and E bit = 0.
        - ``ISOSTART`` sets the trigger on S bit = 1, E bit = 0.
        - ``ISOMID`` specifies Isochronous Data is Middle (00) Start/End bit value.
        - ``ISOEND`` specifies Isochronous Data is End (01) Start/End bit value.
        - ``ISOALL`` specifies Isochronous Data is All (11) Start/End bit value.
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbSplitSe(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbSplitSeValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbSplitSeValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue`` command.

        **Description:**
            - This command specifies the eUSB trigger type start/complete condition. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SE:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue {NOCARE| FULLSPEED| LOWSPEED| ISOSTART| ISOMID| ISOEND| ISOALL}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE:VALue?

        **Info:**
            - ``NOCARE`` sets the trigger on any combination of S and E bits.
            - ``FULLSPEED`` sets the trigger on S bit = 0 and E bit = 0.
            - ``LOWSPEED`` sets the trigger on S bit = 1 and E bit = 0.
            - ``ISOSTART`` sets the trigger on S bit = 1, E bit = 0.
            - ``ISOMID`` specifies Isochronous Data is Middle (00) Start/End bit value.
            - ``ISOEND`` specifies Isochronous Data is End (01) Start/End bit value.
            - ``ISOALL`` specifies Isochronous Data is All (11) Start/End bit value.
        """  # noqa: E501
        return self._value


class SearchSearchItemTriggerABusEusbSplitScValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue`` command.

    **Description:**
        - This command specifies the eUSB trigger type start/complete condition. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue {NOCARE| SSPLIT| CSPLIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue?

    **Info:**
        - ``NOCARE`` sets the trigger on either the start or complete phase of the split
          transaction.
        - ``SSPLIT`` sets the trigger on the start phase of the split transaction.
        - ``CSPLIT`` sets the trigger on the complete phase of the split transaction.
    """


class SearchSearchItemTriggerABusEusbSplitSc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbSplitScValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbSplitScValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue`` command.

        **Description:**
            - This command specifies the eUSB trigger type start/complete condition. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue {NOCARE| SSPLIT| CSPLIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC:VALue?

        **Info:**
            - ``NOCARE`` sets the trigger on either the start or complete phase of the split
              transaction.
            - ``SSPLIT`` sets the trigger on the start phase of the split transaction.
            - ``CSPLIT`` sets the trigger on the complete phase of the split transaction.
        """
        return self._value


class SearchSearchItemTriggerABusEusbSplitPortValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue`` command.

    **Description:**
        - This command sets the binary port address value to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to Special with a packet type SPLIT. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:PORT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbSplitPort(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbSplitPortValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbSplitPortValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue`` command.

        **Description:**
            - This command sets the binary port address value to be used when triggering on a eUSB
              bus signal. The trigger condition must be set to Special with a packet type SPLIT. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:PORT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X (for binary, for hexadecimal, and symbolic).
        """
        return self._value


class SearchSearchItemTriggerABusEusbSplitHubValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue`` command.

    **Description:**
        - This command sets the binary hub address value to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to Special with packet type SPLIT. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:HUB:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbSplitHub(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbSplitHubValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbSplitHubValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue`` command.

        **Description:**
            - This command sets the binary hub address value to be used when triggering on a eUSB
              bus signal. The trigger condition must be set to Special with packet type SPLIT. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:HUB:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X (for binary, for hexadecimal, and symbolic).
        """
        return self._value


class SearchSearchItemTriggerABusEusbSplitEtValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue`` command.

    **Description:**
        - This command specifies the eUSB trigger type endpoint condition. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:ET:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue {NOCARE| CONTRol| ISOchronous| BULK| INTERRUPT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue?

    **Info:**
        - ``NOCARE`` specifies the Endpoint Type value as Don't Care.
        - ``CONTRol`` specifies the Endpoint Type value as Control (00).
        - ``ISOchronous`` specifies the Endpoint Type value as Isochronous (01).
        - ``BULK`` specifies the Endpoint Type value as Bulk (10).
        - ``INTERRUPT`` specifies the Endpoint Type value as Interrupt (11).
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbSplitEt(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbSplitEtValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbSplitEtValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue`` command.

        **Description:**
            - This command specifies the eUSB trigger type endpoint condition. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:ET:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue {NOCARE| CONTRol| ISOchronous| BULK| INTERRUPT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET:VALue?

        **Info:**
            - ``NOCARE`` specifies the Endpoint Type value as Don't Care.
            - ``CONTRol`` specifies the Endpoint Type value as Control (00).
            - ``ISOchronous`` specifies the Endpoint Type value as Isochronous (01).
            - ``BULK`` specifies the Endpoint Type value as Bulk (10).
            - ``INTERRUPT`` specifies the Endpoint Type value as Interrupt (11).
        """  # noqa: E501
        return self._value


class SearchSearchItemTriggerABusEusbSplit(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.et``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET`` command tree.
        - ``.hub``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB`` command tree.
        - ``.port``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT`` command tree.
        - ``.sc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC`` command tree.
        - ``.se``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._et = SearchSearchItemTriggerABusEusbSplitEt(device, f"{self._cmd_syntax}:ET")
        self._hub = SearchSearchItemTriggerABusEusbSplitHub(device, f"{self._cmd_syntax}:HUB")
        self._port = SearchSearchItemTriggerABusEusbSplitPort(device, f"{self._cmd_syntax}:PORT")
        self._sc = SearchSearchItemTriggerABusEusbSplitSc(device, f"{self._cmd_syntax}:SC")
        self._se = SearchSearchItemTriggerABusEusbSplitSe(device, f"{self._cmd_syntax}:SE")

    @property
    def et(self) -> SearchSearchItemTriggerABusEusbSplitEt:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:ET:VALue`` command.
        """
        return self._et

    @property
    def hub(self) -> SearchSearchItemTriggerABusEusbSplitHub:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB:VALue`` command.
        """
        return self._hub

    @property
    def port(self) -> SearchSearchItemTriggerABusEusbSplitPort:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT:VALue`` command.
        """
        return self._port

    @property
    def sc(self) -> SearchSearchItemTriggerABusEusbSplitSc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SC:VALue`` command.
        """
        return self._sc

    @property
    def se(self) -> SearchSearchItemTriggerABusEusbSplitSe:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPLit:SE:VALue`` command.
        """
        return self._se


class SearchSearchItemTriggerABusEusbSpecialtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType`` command.

    **Description:**
        - This command specifies the eUSB trigger type to be valid on any, err, split, ping, or
          reserved condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPECIALType value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType {ANY| PREamble| ERROr| SPLit| PING| RESERVed}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType?

    **Info:**
        - ``ANY`` specifies the PID value as Any (XX00).
        - ``PREamble`` specifies the PID value as PRE (1100).
        - ``ERROr`` specifies the PID value as ERR (1100).
        - ``SPLit`` specifies the PID value as Split (1000).
        - ``PING`` specifies the PID value as PING (0100).
        - ``RESERVed`` specifies the PID value as Reserved (0000).
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbSofframenumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber`` command.

    **Description:**
        - This command sets the binary frame number to be used when triggering on a eUSB bus signal.
          The trigger condition must be set to TOKEN. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?

    **Info:**
        - ``<QString>`` specifies the binary frame number within the range 000 0000 0000 to 111 1111
          1111 (000 hex to 7FF hex).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbRapOption(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion`` command.

    **Description:**
        - This command specifies the eUSB Register Access Protocol search option. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion {COMMand|ADDRess|RAPDATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?

    **Info:**
        - ``COMMand`` specifies the RAP option as Command.
        - ``ADDRess`` specifies the RAP option as Address.
        - ``RAPDATa`` specifies the RAP option as RapData.
    """


class SearchSearchItemTriggerABusEusbRapDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue`` command.

    **Description:**
        - This command sets the binary Register Access Protocol data value to be used when
          triggering on a eUSB bus signal. The trigger condition must be set to TOKEN. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP: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:EUSB:RAP:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X for binary; for hexadecimal; and symbolic.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbRapData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbRapDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbRapDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue`` command.

        **Description:**
            - This command sets the binary Register Access Protocol data value to be used when
              triggering on a eUSB bus signal. The trigger condition must be set to TOKEN. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP: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:EUSB:RAP:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X for binary; for hexadecimal; and symbolic.
        """
        return self._value


class SearchSearchItemTriggerABusEusbRapCommand(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand`` command.

    **Description:**
        - This command specifies the eUSB Register Access Protocol search option. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand {ALL|WRITe|READ|CLEar|SET}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?

    **Info:**
        - ``ALL`` specifies the RAP command as All.
        - ``WRITe`` specifies the RAP command as Write.
        - ``READ`` specifies the RAP command as Read.
        - ``CLEar`` specifies the RAP command as Clear.
        - ``SET`` specifies the RAP command as Set.
    """


class SearchSearchItemTriggerABusEusbRapAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue`` command.

    **Description:**
        - This command sets the binary Register Access Protocol address value to be used when
          triggering on a eUSB bus signal. The trigger condition must be set to TOKEN. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP: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:EUSB:RAP:ADDress:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X for binary; for hexadecimal; and symbolic.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbRapAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbRapAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbRapAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue`` command.

        **Description:**
            - This command sets the binary Register Access Protocol address value to be used when
              triggering on a eUSB bus signal. The trigger condition must be set to TOKEN. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP: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:EUSB:RAP:ADDress:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X for binary; for hexadecimal; and symbolic.
        """
        return self._value


class SearchSearchItemTriggerABusEusbRap(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress`` command tree.
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa`` command tree.
        - ``.option``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEusbRapAddress(
            device, f"{self._cmd_syntax}:ADDress"
        )
        self._command = SearchSearchItemTriggerABusEusbRapCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )
        self._data = SearchSearchItemTriggerABusEusbRapData(device, f"{self._cmd_syntax}:DATa")
        self._option = SearchSearchItemTriggerABusEusbRapOption(
            device, f"{self._cmd_syntax}:OPTion"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEusbRapAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress:VALue`` command.
        """
        return self._address

    @property
    def command(self) -> SearchSearchItemTriggerABusEusbRapCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand`` command.

        **Description:**
            - This command specifies the eUSB Register Access Protocol search option. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand {ALL|WRITe|READ|CLEar|SET}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand?

        **Info:**
            - ``ALL`` specifies the RAP command as All.
            - ``WRITe`` specifies the RAP command as Write.
            - ``READ`` specifies the RAP command as Read.
            - ``CLEar`` specifies the RAP command as Clear.
            - ``SET`` specifies the RAP command as Set.
        """
        return self._command

    @property
    def data(self) -> SearchSearchItemTriggerABusEusbRapData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa:VALue`` command.
        """
        return self._data

    @property
    def option(self) -> SearchSearchItemTriggerABusEusbRapOption:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion`` command.

        **Description:**
            - This command specifies the eUSB Register Access Protocol search option. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion {COMMand|ADDRess|RAPDATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion?

        **Info:**
            - ``COMMand`` specifies the RAP option as Command.
            - ``ADDRess`` specifies the RAP option as Address.
            - ``RAPDATa`` specifies the RAP option as RapData.
        """
        return self._option


class SearchSearchItemTriggerABusEusbHandshaketype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType`` command.

    **Description:**
        - This command specifies the eUSB trigger type to be valid on any, ack, nak, stall, or nyet
          condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:HANDSHAKEType value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType {ANY|ACK|NAK|STALL|NYET}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType?

    **Info:**
        - ``ANY`` specifies the handshake type as Any (0010).
        - ``ACK`` specifies the handshake type as Acknowledgement (positive) (XX10).
        - ``NAK`` specifies the handshake type as Negative Acknowledgment (1010).
        - ``STALL`` specifies the error type as PID Check Bits.
        - ``NYET`` specifies the handshake type as Stall (endpoint is halted or control pipe request
          not supported) (1110).
    """


class SearchSearchItemTriggerABusEusbErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType`` command.

    **Description:**
        - This command specifies the eUSB trigger type to be valid on a PID, Token CRC5, Data CRC16,
          or Bit stuffing condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ERRType value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType {BITSTUFFing|CRC5|CRC16|PID}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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 SearchSearchItemTriggerABusEusbEopbitsMinSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe`` command.

    **Description:**
        - This command sets the number of EOP bits to be used when triggering on a eUSB bus signal.
          The trigger condition must be set to EOP. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN: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:EUSB:EOPBITS:MIN:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of EOP bits. The default minimum EOP bits is 8. The
          argument range is 8 to 99 bits.
    """


class SearchSearchItemTriggerABusEusbEopbitsMin(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbEopbitsMinSize(
            device, f"{self._cmd_syntax}:SIZe"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbEopbitsMinSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe`` command.

        **Description:**
            - This command sets the number of EOP bits to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to EOP. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN: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:EUSB:EOPBITS:MIN:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of EOP bits. The default minimum EOP bits is 8. The
              argument range is 8 to 99 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbEopbitsMaxSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe`` command.

    **Description:**
        - This command sets the number of EOP bits to be used when triggering on a eUSB bus signal.
          The trigger condition must be set to EOP. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX: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:EUSB:EOPBITS:MAX:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of EOP bits. The default maximum EOP bits is 100. The
          argument range is 9 to 100 bits.
    """


class SearchSearchItemTriggerABusEusbEopbitsMax(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbEopbitsMaxSize(
            device, f"{self._cmd_syntax}:SIZe"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbEopbitsMaxSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe`` command.

        **Description:**
            - This command sets the number of EOP bits to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to EOP. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX: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:EUSB:EOPBITS:MAX:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of EOP bits. The default maximum EOP bits is 100. The
              argument range is 9 to 100 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbEopbits(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.max``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX`` command tree.
        - ``.min``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._max = SearchSearchItemTriggerABusEusbEopbitsMax(device, f"{self._cmd_syntax}:MAX")
        self._min = SearchSearchItemTriggerABusEusbEopbitsMin(device, f"{self._cmd_syntax}:MIN")

    @property
    def max(self) -> SearchSearchItemTriggerABusEusbEopbitsMax:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX:SIZe`` command.
        """
        return self._max

    @property
    def min(self) -> SearchSearchItemTriggerABusEusbEopbitsMin:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN:SIZe`` command.
        """
        return self._min


class SearchSearchItemTriggerABusEusbEopQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
          trigger condition must be set to EOP Bits. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP: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:EUSB:EOP:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier?

    **Info:**
        - ``EQual`` specifies the qualifier as Equal.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``INrange`` specifies the qualifier as Inside Range.
        - ``OUTrange`` specifies the qualifier as Out of Range.
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbEopDatabitsSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe`` command.

    **Description:**
        - This command sets the number of EOP bits, in bytes, to be used when triggering on a eUSB
          bus signal. The trigger condition must be set to EOP. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS: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:EUSB:EOP:DATABITS:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of EOP bits. The default EOP bits is 8. The argument range
          is 8 to 100 bits.
    """


class SearchSearchItemTriggerABusEusbEopDatabits(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbEopDatabitsSize(
            device, f"{self._cmd_syntax}:SIZe"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbEopDatabitsSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe`` command.

        **Description:**
            - This command sets the number of EOP bits, in bytes, to be used when triggering on a
              eUSB bus signal. The trigger condition must be set to EOP. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS: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:EUSB:EOP:DATABITS:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of EOP bits. The default EOP bits is 8. The argument
              range is 8 to 100 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbEop(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS`` command tree.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._databits = SearchSearchItemTriggerABusEusbEopDatabits(
            device, f"{self._cmd_syntax}:DATABITS"
        )
        self._qualifier = SearchSearchItemTriggerABusEusbEopQualifier(
            device, f"{self._cmd_syntax}:QUAlifier"
        )

    @property
    def databits(self) -> SearchSearchItemTriggerABusEusbEopDatabits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS:SIZe`` command.
        """
        return self._databits

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusEusbEopQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
              trigger condition must be set to EOP Bits. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP: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:EUSB:EOP:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| INrange| OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier?

        **Info:**
            - ``EQual`` specifies the qualifier as Equal.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``INrange`` specifies the qualifier as Inside Range.
            - ``OUTrange`` specifies the qualifier as Out of Range.
        """  # noqa: E501
        return self._qualifier


class SearchSearchItemTriggerABusEusbEndsearch(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch`` command.

    **Description:**
        - This command specifies eUSB Search EOP Bits to be On and Off. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch {OFF|ON}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?

    **Info:**
        - ``OFF`` specifies the EOP bits as OFF (for Low Speed and Full Speed).
        - ``ON`` specifies the EOP bits as ON (for High Speed).
    """


class SearchSearchItemTriggerABusEusbEndpointValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue`` command.

    **Description:**
        - This command sets the endpoint binary value to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to TOKEN. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ENDPoint:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbEndpoint(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEusbEndpointValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbEndpointValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue`` command.

        **Description:**
            - This command sets the endpoint binary value to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to TOKEN. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ENDPoint:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusEusbDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue`` command.

    **Description:**
        - This command sets the binary data value to be used when triggering on a eUSB bus signal.
          The trigger condition must 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:EUSB:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbDataType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe`` command.

    **Description:**
        - This command specifies the eUSB trigger type to be valid on any, data0, data1, data2, or
          mdata condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe {ANY| DATA0| DATA1| DATA2| MDATA}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe?

    **Info:**
        - ``ANY`` specifies either a DATA0 or DATA1 data packet type.
        - ``DATA0`` specifies a DATA0 data packet type.
        - ``DATA1`` specifies a DATA1 data packet type.
        - ``DATA2`` specifies a DATA2 data packet type when on HIGH speed.
        - ``MDATA`` specifies a MDATA data packet type when on HIGH speed.
    """


class SearchSearchItemTriggerABusEusbDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe`` command.

    **Description:**
        - This command sets the length of the data string, in bytes, to be used when triggering on a
          eUSB bus signal. The trigger condition must 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:EUSB:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the length of the data string. Default data size value is 1. The
          argument range is 1 to 16 bytes.
    """


class SearchSearchItemTriggerABusEusbDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier`` command.

    **Description:**
        - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
          trigger condition must be set to IDANDDATA OR DATA. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:QUAlifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| Inrange| OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier?

    **Info:**
        - ``EQual`` specifies the qualifier as Equal.
        - ``UNEQual`` specifies the qualifier as Not Equal to.
        - ``LESSthan`` specifies the qualifier as Less Than.
        - ``MOREthan`` specifies the qualifier as More Than.
        - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
        - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
        - ``Inrange`` specifies the qualifier as Inside Range.
        - ``OUTrange`` specifies the qualifier as Out of Range.
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet`` command.

    **Description:**
        - This command sets the byte offset to look for a data pattern at, in bytes, to be used when
          triggering on a eUSB bus signal. The trigger condition must 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:EUSB:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` specifies the byte offset. Default offset value is -1. The argument range is -1
          to 1024.
    """


class SearchSearchItemTriggerABusEusbDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue`` command.

    **Description:**
        - This command sets the high binary data value to be used when triggering on a eUSB bus
          signal. The trigger condition must 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:EUSB:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusEusbDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusEusbDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._qualifier = SearchSearchItemTriggerABusEusbDataQualifier(
            device, f"{self._cmd_syntax}:QUAlifier"
        )
        self._size = SearchSearchItemTriggerABusEusbDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._type = SearchSearchItemTriggerABusEusbDataType(device, f"{self._cmd_syntax}:TYPe")
        self._value = SearchSearchItemTriggerABusEusbDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusEusbDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue`` command.

        **Description:**
            - This command sets the high binary data value to be used when triggering on a eUSB bus
              signal. The trigger condition must 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:EUSB:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue?

        **Info:**
            - ``<QString>`` specifies the 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 offset(self) -> SearchSearchItemTriggerABusEusbDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet`` command.

        **Description:**
            - This command sets the byte offset to look for a data pattern at, in bytes, to be used
              when triggering on a eUSB bus signal. The trigger condition must 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:EUSB:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` specifies the byte offset. Default offset value is -1. The argument range is
              -1 to 1024.
        """
        return self._offset

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusEusbDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier`` command.

        **Description:**
            - This command sets the qualifier to be used when triggering on a eUSB bus signal. The
              trigger condition must be set to IDANDDATA OR DATA. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:QUAlifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier {EQual| UNEQual| LESSthan| MOREthan| LESSEQual| MOREEQual| Inrange| OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier?

        **Info:**
            - ``EQual`` specifies the qualifier as Equal.
            - ``UNEQual`` specifies the qualifier as Not Equal to.
            - ``LESSthan`` specifies the qualifier as Less Than.
            - ``MOREthan`` specifies the qualifier as More Than.
            - ``LESSEQual`` specifies the qualifier as Less Than or Equal to.
            - ``MOREEQual`` specifies the qualifier as More Than or Equal to.
            - ``Inrange`` specifies the qualifier as Inside Range.
            - ``OUTrange`` specifies the qualifier as Out of Range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe`` command.

        **Description:**
            - This command sets the length of the data string, in bytes, to be used when triggering
              on a eUSB bus signal. The trigger condition must 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:EUSB:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the length of the data string. Default data size value is 1. The
              argument range is 1 to 16 bytes.
        """
        return self._size

    @property
    def type(self) -> SearchSearchItemTriggerABusEusbDataType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe`` command.

        **Description:**
            - This command specifies the eUSB trigger type to be valid on any, data0, data1, data2,
              or mdata condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe {ANY| DATA0| DATA1| DATA2| MDATA}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe?

        **Info:**
            - ``ANY`` specifies either a DATA0 or DATA1 data packet type.
            - ``DATA0`` specifies a DATA0 data packet type.
            - ``DATA1`` specifies a DATA1 data packet type.
            - ``DATA2`` specifies a DATA2 data packet type when on HIGH speed.
            - ``MDATA`` specifies a MDATA data packet type when on HIGH speed.
        """
        return self._type

    @property
    def value(self) -> SearchSearchItemTriggerABusEusbDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue`` command.

        **Description:**
            - This command sets the binary data value to be used when triggering on a eUSB bus
              signal. The trigger condition must 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:EUSB:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X (for binary, for hexadecimal, and symbolic).
        """
        return self._value


class SearchSearchItemTriggerABusEusbDatabitsSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe`` command.

    **Description:**
        - This command sets the number of Sync bits, in bytes, to be used when triggering on a eUSB
          bus signal. The trigger condition must be set to SYNC. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS: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:EUSB:DATABITS:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe?

    **Info:**
        - ``<NR1>`` specifies the number of the Sync bits. The default Sync bits is 12. The argument
          range is 12 to 32 bits.
    """


class SearchSearchItemTriggerABusEusbDatabits(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEusbDatabitsSize(device, f"{self._cmd_syntax}:SIZe")

    @property
    def size(self) -> SearchSearchItemTriggerABusEusbDatabitsSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe`` command.

        **Description:**
            - This command sets the number of Sync bits, in bytes, to be used when triggering on a
              eUSB bus signal. The trigger condition must be set to SYNC. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS: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:EUSB:DATABITS:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe?

        **Info:**
            - ``<NR1>`` specifies the number of the Sync bits. The default Sync bits is 12. The
              argument range is 12 to 32 bits.
        """
        return self._size


class SearchSearchItemTriggerABusEusbCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition`` command.

    **Description:**
        - This command sets or queries the search type for the specified search. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition {SYNC| HANDSHAKEPacket| SPECIALPacket| ERRor| TOKENPacket| DATAPacket| RESET| CONNect| CONTROLMESSage| SUSPEND| DEVICEChirp| HOSTChirp| PORTReset| PORTConfiguration| RESUME| RAP| EOP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition?

    **Info:**
        - ``SYNC`` specifies the search condition as Sync.
        - ``HANDSHAKEPacket`` specifies the search condition as Handshake Packet.
        - ``SPECIALPacket`` specifies the search condition as Special Packet.
        - ``ERRor`` specifies the search condition as Error.
        - ``TOKENPacket`` specifies the search condition as Token (Address) Packet.
        - ``DATAPacket`` specifies the search condition as Data Packet.
        - ``RESET`` specifies the search condition as Reset.
        - ``CONNect`` specifies the search condition as connect.
        - ``CONTROLMESSage`` specifies the search condition as Control Message.
        - ``SUSPEND`` specifies the search condition as Suspend.
        - ``DEVICEChirp`` specifies the search condition as Device chirp.
        - ``HOSTChirp`` specifies the search condition as Host Chirp.
        - ``PORTReset`` specifies the search condition as Port Reset.
        - ``PORTConfiguration`` specifies the search condition as Port Configuration.
        - ``RESUME`` specifies the search condition as Resume.
        - ``RAP`` specifies the search condition as Register Access Protocol.
        - ``EOP`` specifies the search condition as End of Packet.
    """  # noqa: E501


class SearchSearchItemTriggerABusEusbAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue`` command.

    **Description:**
        - This command sets the binary address value to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to TOKEN. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ADDress:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbAddressHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue`` command.

    **Description:**
        - This command sets the high binary address value to be used when triggering on a eUSB bus
          signal. The trigger condition must be set to TOKEN.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ADDress:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue?

    **Info:**
        - ``<QString>`` specifies the value in the specified valid format. The valid characters are
          0, 1, and X (for binary, for hexadecimal, and symbolic).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEusbAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusEusbAddressHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusEusbAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusEusbAddressHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue`` command.

        **Description:**
            - This command sets the high binary address value to be used when triggering on a eUSB
              bus signal. The trigger condition must be set to TOKEN.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ADDress:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue?

        **Info:**
            - ``<QString>`` specifies the 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) -> SearchSearchItemTriggerABusEusbAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue`` command.

        **Description:**
            - This command sets the binary address value to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to TOKEN. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ADDress:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue?

        **Info:**
            - ``<QString>`` specifies the value in the specified valid format. The valid characters
              are 0, 1, and X (for binary, for hexadecimal, and symbolic).
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusEusb(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition`` command.
        - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS`` command tree.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa`` command tree.
        - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint`` command tree.
        - ``.endsearch``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch`` command.
        - ``.eop``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP`` command tree.
        - ``.eopbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType`` command.
        - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType`` command.
        - ``.rap``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP`` command tree.
        - ``.sofframenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber`` command.
        - ``.specialtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType`` command.
        - ``.split``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit`` command tree.
        - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC`` command tree.
        - ``.syncbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS`` command tree.
        - ``.syncsearch``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch`` command.
        - ``.tokentype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEusbAddress(
            device, f"{self._cmd_syntax}:ADDress"
        )
        self._condition = SearchSearchItemTriggerABusEusbCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._databits = SearchSearchItemTriggerABusEusbDatabits(
            device, f"{self._cmd_syntax}:DATABITS"
        )
        self._data = SearchSearchItemTriggerABusEusbData(device, f"{self._cmd_syntax}:DATa")
        self._endpoint = SearchSearchItemTriggerABusEusbEndpoint(
            device, f"{self._cmd_syntax}:ENDPoint"
        )
        self._endsearch = SearchSearchItemTriggerABusEusbEndsearch(
            device, f"{self._cmd_syntax}:ENDSEARch"
        )
        self._eop = SearchSearchItemTriggerABusEusbEop(device, f"{self._cmd_syntax}:EOP")
        self._eopbits = SearchSearchItemTriggerABusEusbEopbits(
            device, f"{self._cmd_syntax}:EOPBITS"
        )
        self._errtype = SearchSearchItemTriggerABusEusbErrtype(
            device, f"{self._cmd_syntax}:ERRType"
        )
        self._handshaketype = SearchSearchItemTriggerABusEusbHandshaketype(
            device, f"{self._cmd_syntax}:HANDSHAKEType"
        )
        self._rap = SearchSearchItemTriggerABusEusbRap(device, f"{self._cmd_syntax}:RAP")
        self._sofframenumber = SearchSearchItemTriggerABusEusbSofframenumber(
            device, f"{self._cmd_syntax}:SOFFRAMENUMber"
        )
        self._specialtype = SearchSearchItemTriggerABusEusbSpecialtype(
            device, f"{self._cmd_syntax}:SPECIALType"
        )
        self._split = SearchSearchItemTriggerABusEusbSplit(device, f"{self._cmd_syntax}:SPLit")
        self._sync = SearchSearchItemTriggerABusEusbSync(device, f"{self._cmd_syntax}:SYNC")
        self._syncbits = SearchSearchItemTriggerABusEusbSyncbits(
            device, f"{self._cmd_syntax}:SYNCBITS"
        )
        self._syncsearch = SearchSearchItemTriggerABusEusbSyncsearch(
            device, f"{self._cmd_syntax}:SYNCSEARch"
        )
        self._tokentype = SearchSearchItemTriggerABusEusbTokentype(
            device, f"{self._cmd_syntax}:TOKENType"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEusbAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:HIVALue`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress:VALue`` command.
        """
        return self._address

    @property
    def condition(self) -> SearchSearchItemTriggerABusEusbCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition`` command.

        **Description:**
            - This command sets or queries the search type for the specified search. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition {SYNC| HANDSHAKEPacket| SPECIALPacket| ERRor| TOKENPacket| DATAPacket| RESET| CONNect| CONTROLMESSage| SUSPEND| DEVICEChirp| HOSTChirp| PORTReset| PORTConfiguration| RESUME| RAP| EOP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition?

        **Info:**
            - ``SYNC`` specifies the search condition as Sync.
            - ``HANDSHAKEPacket`` specifies the search condition as Handshake Packet.
            - ``SPECIALPacket`` specifies the search condition as Special Packet.
            - ``ERRor`` specifies the search condition as Error.
            - ``TOKENPacket`` specifies the search condition as Token (Address) Packet.
            - ``DATAPacket`` specifies the search condition as Data Packet.
            - ``RESET`` specifies the search condition as Reset.
            - ``CONNect`` specifies the search condition as connect.
            - ``CONTROLMESSage`` specifies the search condition as Control Message.
            - ``SUSPEND`` specifies the search condition as Suspend.
            - ``DEVICEChirp`` specifies the search condition as Device chirp.
            - ``HOSTChirp`` specifies the search condition as Host Chirp.
            - ``PORTReset`` specifies the search condition as Port Reset.
            - ``PORTConfiguration`` specifies the search condition as Port Configuration.
            - ``RESUME`` specifies the search condition as Resume.
            - ``RAP`` specifies the search condition as Register Access Protocol.
            - ``EOP`` specifies the search condition as End of Packet.
        """  # noqa: E501
        return self._condition

    @property
    def databits(self) -> SearchSearchItemTriggerABusEusbDatabits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS:SIZe`` command.
        """
        return self._databits

    @property
    def data(self) -> SearchSearchItemTriggerABusEusbData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:HIVALue`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:OFFSet`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:QUAlifier`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:SIZe`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:TYPe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa:VALue`` command.
        """
        return self._data

    @property
    def endpoint(self) -> SearchSearchItemTriggerABusEusbEndpoint:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint:VALue`` command.
        """
        return self._endpoint

    @property
    def endsearch(self) -> SearchSearchItemTriggerABusEusbEndsearch:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch`` command.

        **Description:**
            - This command specifies eUSB Search EOP Bits to be On and Off. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch {OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch?

        **Info:**
            - ``OFF`` specifies the EOP bits as OFF (for Low Speed and Full Speed).
            - ``ON`` specifies the EOP bits as ON (for High Speed).
        """
        return self._endsearch

    @property
    def eop(self) -> SearchSearchItemTriggerABusEusbEop:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:DATABITS`` command tree.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP:QUAlifier`` command.
        """
        return self._eop

    @property
    def eopbits(self) -> SearchSearchItemTriggerABusEusbEopbits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.max``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MAX`` command tree.
            - ``.min``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS:MIN`` command tree.
        """
        return self._eopbits

    @property
    def errtype(self) -> SearchSearchItemTriggerABusEusbErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType`` command.

        **Description:**
            - This command specifies the eUSB trigger type to be valid on a PID, Token CRC5, Data
              CRC16, or Bit stuffing condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType {BITSTUFFing|CRC5|CRC16|PID}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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 handshaketype(self) -> SearchSearchItemTriggerABusEusbHandshaketype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType`` command.

        **Description:**
            - This command specifies the eUSB trigger type to be valid on any, ack, nak, stall, or
              nyet condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:HANDSHAKEType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType {ANY|ACK|NAK|STALL|NYET}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType?

        **Info:**
            - ``ANY`` specifies the handshake type as Any (0010).
            - ``ACK`` specifies the handshake type as Acknowledgement (positive) (XX10).
            - ``NAK`` specifies the handshake type as Negative Acknowledgment (1010).
            - ``STALL`` specifies the error type as PID Check Bits.
            - ``NYET`` specifies the handshake type as Stall (endpoint is halted or control pipe
              request not supported) (1110).
        """
        return self._handshaketype

    @property
    def rap(self) -> SearchSearchItemTriggerABusEusbRap:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:ADDress`` command tree.
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:COMMand`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:DATa`` command tree.
            - ``.option``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP:OPTion`` command.
        """
        return self._rap

    @property
    def sofframenumber(self) -> SearchSearchItemTriggerABusEusbSofframenumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber`` command.

        **Description:**
            - This command sets the binary frame number to be used when triggering on a eUSB bus
              signal. The trigger condition must be set to TOKEN. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber?

        **Info:**
            - ``<QString>`` specifies the binary frame number within the range 000 0000 0000 to 111
              1111 1111 (000 hex to 7FF hex).
        """
        return self._sofframenumber

    @property
    def specialtype(self) -> SearchSearchItemTriggerABusEusbSpecialtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType`` command.

        **Description:**
            - This command specifies the eUSB trigger type to be valid on any, err, split, ping, or
              reserved condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:SPECIALType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType {ANY| PREamble| ERROr| SPLit| PING| RESERVed}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType?

        **Info:**
            - ``ANY`` specifies the PID value as Any (XX00).
            - ``PREamble`` specifies the PID value as PRE (1100).
            - ``ERROr`` specifies the PID value as ERR (1100).
            - ``SPLit`` specifies the PID value as Split (1000).
            - ``PING`` specifies the PID value as PING (0100).
            - ``RESERVed`` specifies the PID value as Reserved (0000).
        """  # noqa: E501
        return self._specialtype

    @property
    def split(self) -> SearchSearchItemTriggerABusEusbSplit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.et``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:ET`` command tree.
            - ``.hub``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:HUB`` command tree.
            - ``.port``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:PORT`` command tree.
            - ``.sc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SC`` command tree.
            - ``.se``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit:SE`` command tree.
        """
        return self._split

    @property
    def sync(self) -> SearchSearchItemTriggerABusEusbSync:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC:QUAlifier`` command.
        """
        return self._sync

    @property
    def syncbits(self) -> SearchSearchItemTriggerABusEusbSyncbits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.max``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MAX`` command tree.
            - ``.min``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS:MIN`` command tree.
        """
        return self._syncbits

    @property
    def syncsearch(self) -> SearchSearchItemTriggerABusEusbSyncsearch:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch`` command.

        **Description:**
            - This command specifies eUSB Search Sync Bits to be On and Off. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch {OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch?

        **Info:**
            - ``OFF`` specifies the Sync bits as OFF (for Low Speed and Full Speed).
            - ``ON`` specifies the Sync bits as ON (for High Speed).
        """
        return self._syncsearch

    @property
    def tokentype(self) -> SearchSearchItemTriggerABusEusbTokentype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType`` command.

        **Description:**
            - This command specifies the eUSB trigger type to be valid on any, sof, out, in, or
              setup condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB: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:EUSB:TOKENType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType {ANY|SOF|OUT|IN|SETUP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType?

        **Info:**
            - ``ANY`` specifies the token type as Any (XX01).
            - ``SOF`` specifies the token type as Start Of Frame (0101).
            - ``OUT`` specifies the token type as OUT (0001).
            - ``IN`` specifies the token type as IN (1001).
            - ``SETUP`` specifies the token type as SETUP (1101).
        """
        return self._tokentype


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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetTcpheaderSourceportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetTcpheaderSeqnumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 SearchSearchItemTriggerABusEthernetTcpheaderDestinationportValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

    **Description:**
        - This command specifies the binary destination port value to use when searching on the
          Ethernet TCP header destination port number. 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:DESTinationport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthernetTcpheaderDestinationport(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthernetTcpheaderDestinationportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetTcpheaderDestinationportValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue`` command.

        **Description:**
            - This command specifies the binary destination port value to use when searching on the
              Ethernet TCP header destination port number. 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:DESTinationport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 16 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class 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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetTcpheaderAcknumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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.
        - ``.destinationport``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport`` 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._destinationport = SearchSearchItemTriggerABusEthernetTcpheaderDestinationport(
            device, f"{self._cmd_syntax}:DESTinationport"
        )
        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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:ACKnum:VALue``
              command.
        """
        return self._acknum

    @property
    def destinationport(self) -> SearchSearchItemTriggerABusEthernetTcpheaderDestinationport:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport?`` query and raise
              an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport:VALue`` command.
        """
        return self._destinationport

    @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:
            - ``.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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:SOUrceport:VALue``
              command.
        """
        return self._sourceport


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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetQtagValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 SearchSearchItemTriggerABusEthernetMacLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.

    **Description:**
        - This command specifies the MAC length 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: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?

    **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 SearchSearchItemTriggerABusEthernetMacLengthHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue`` command.

    **Description:**
        - This command specifies the binary MAC length high 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:LENgth:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue?

    **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 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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue`` 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._hivalue = SearchSearchItemTriggerABusEthernetMacLengthHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusEthernetMacLengthValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusEthernetMacLengthHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue`` command.

        **Description:**
            - This command specifies the binary MAC length high 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:LENgth:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue?

        **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._hivalue

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetMacLengthValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.

        **Description:**
            - This command specifies the MAC length 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: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?

        **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 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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetMacAddressSourceValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 SearchSearchItemTriggerABusEthernetMacAddressDestinationValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

    **Description:**
        - This command specifies the binary MAC address destination 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:DESTination:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and raise
          an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthernetMacAddressDestination(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthernetMacAddressDestinationValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetMacAddressDestinationValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.

        **Description:**
            - This command specifies the binary MAC address destination 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:DESTination:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 48 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class 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:
        - ``.destination``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination``
          command tree.
        - ``.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._destination = SearchSearchItemTriggerABusEthernetMacAddressDestination(
            device, f"{self._cmd_syntax}:DESTination"
        )
        self._source = SearchSearchItemTriggerABusEthernetMacAddressSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )

    @property
    def destination(self) -> SearchSearchItemTriggerABusEthernetMacAddressDestination:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination?`` query and raise
              an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination:VALue`` command.
        """
        return self._destination

    @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:
            - ``.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.
    """

    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"
        )

    @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:
            - ``.destination``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:ADDRess:DESTination`` command tree.
            - ``.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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:HIVALue``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:MAC:LENgth:VALue`` command.
        """
        return self._length


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 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:
        - ``.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._value = SearchSearchItemTriggerABusEthernetIpheaderProtocolValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 SearchSearchItemTriggerABusEthernetIpheaderDestinationaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

    **Description:**
        - This command specifies the binary destination 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:DESTinationaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue?

    **Info:**
        - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters are
          0, 1, and X. The bits specified in the quoted string replace the least significant bits,
          leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthernetIpheaderDestinationaddr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthernetIpheaderDestinationaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthernetIpheaderDestinationaddrValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue`` command.

        **Description:**
            - This command specifies the binary destination 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:DESTinationaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue?`` query and
              raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr:VALue?

        **Info:**
            - ``<QString>`` is a quoted string of up to 32 characters where the allowable characters
              are 0, 1, and X. The bits specified in the quoted string replace the least significant
              bits, leaving any unspecified upper bits unchanged.
        """
        return self._value


class 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:
        - ``.destinationaddr``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr`` command tree.
        - ``.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._destinationaddr = SearchSearchItemTriggerABusEthernetIpheaderDestinationaddr(
            device, f"{self._cmd_syntax}:DESTinationaddr"
        )
        self._protocol = SearchSearchItemTriggerABusEthernetIpheaderProtocol(
            device, f"{self._cmd_syntax}:PROTOcol"
        )
        self._sourceaddr = SearchSearchItemTriggerABusEthernetIpheaderSourceaddr(
            device, f"{self._cmd_syntax}:SOUrceaddr"
        )

    @property
    def destinationaddr(self) -> SearchSearchItemTriggerABusEthernetIpheaderDestinationaddr:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr?`` 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:DESTinationaddr:VALue`` command.
        """
        return self._destinationaddr

    @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:
            - ``.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 SearchSearchItemTriggerABusEthernetDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier`` command.

    **Description:**
        - This command specifies the qualifier to be used when searching on an Ethernet bus signal.
          The search condition must 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:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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:ETHERnet:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class 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 SearchSearchItemTriggerABusEthernetDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the binary data value to be used when searching on an
          Ethernet bus signal. The search condition must be set to DATA and the data qualifier to
          inside or outside range. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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:ETHERnet:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the binary data value to be used when searching on an Ethernet bus
          signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier`` 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._hivalue = SearchSearchItemTriggerABusEthernetDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusEthernetDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._qualifier = SearchSearchItemTriggerABusEthernetDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._size = SearchSearchItemTriggerABusEthernetDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusEthernetDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusEthernetDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the binary data value to be used when searching on an
              Ethernet bus signal. The search condition must be set to DATA and the data qualifier
              to inside or outside range. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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:ETHERnet:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the binary data value to be used when searching on an Ethernet bus
              signal.
        """
        return self._hivalue

    @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 qualifier(self) -> SearchSearchItemTriggerABusEthernetDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier`` command.

        **Description:**
            - This command specifies the qualifier to be used when searching on an Ethernet bus
              signal. The search condition must 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:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet: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:ETHERnet:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier {LESSthan|MOREthan|EQual|UNEQual|LESSEQual|MOREEQual| INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def size(self) -> 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 for an Ethernet bus to search on. The search
          number is specified by x.

    **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 {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
        - 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.
        - ``.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._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 for an Ethernet bus to search on. The
              search number is specified by x.

        **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 {SFD|MACADDRess|MACLENgth|IPHeader|TCPHeader|DATa|EOP| IDLe|FCSError|QTAG}
            - 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:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:HIVALue`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:OFFSet`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:DATa:QUALifier``
              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:
            - ``.destinationaddr``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:IPHeader:DESTinationaddr`` command tree.
            - ``.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.
        """
        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:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:QTAG:VALue`` command.
        """
        return self._qtag

    @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.
            - ``.destinationport``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader:DESTinationport`` 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 SearchSearchItemTriggerABusEthercatWkcValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue`` command.

    **Description:**
        - This command sets the binary Working Counter information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC: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:ETHERCAT:WKC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue?

    **Info:**
        - ``<QString>`` is the binary Working Counter information value to be used when searching on
          an EtherCAT bus signal. The default size and value of Working Counter information is 16
          bits and 'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatWkc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatWkcValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatWkcValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue`` command.

        **Description:**
            - This command sets the binary Working Counter information to be used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC: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:ETHERCAT:WKC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue?

        **Info:**
            - ``<QString>`` is the binary Working Counter information value to be used when
              searching on an EtherCAT bus signal. The default size and value of Working Counter
              information is 16 bits and 'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatTciValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue`` command.

    **Description:**
        - This command sets the binary Tag control Information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI: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:ETHERCAT:TCI:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue?

    **Info:**
        - ``<QString>`` is the binary TCI value to be used when searching on an EtherCAT bus signal.
          The default size and value of TCI is 16 bits and 'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatTci(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatTciValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatTciValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue`` command.

        **Description:**
            - This command sets the binary Tag control Information to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI: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:ETHERCAT:TCI:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue?

        **Info:**
            - ``<QString>`` is the binary TCI value to be used when searching on an EtherCAT bus
              signal. The default size and value of TCI is 16 bits and 'XXXXXXXX XXXXXXXX'
              respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatSrcPortValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue`` command.

    **Description:**
        - This command sets the UDP Source port to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC: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:ETHERCAT:SRC:PORT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue?

    **Info:**
        - ``<QString>`` is the binary Source Port value to be used when searching on an EtherCAT bus
          signal. The default size and value of Source Port is 16 bits and 'XXXXXXXX XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatSrcPort(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatSrcPortValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatSrcPortValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue`` command.

        **Description:**
            - This command sets the UDP Source port to be used for EtherCAT bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC: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:ETHERCAT:SRC:PORT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue?

        **Info:**
            - ``<QString>`` is the binary Source Port value to be used when searching on an EtherCAT
              bus signal. The default size and value of Source Port is 16 bits and 'XXXXXXXX
              XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatSrc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.port``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._port = SearchSearchItemTriggerABusEthercatSrcPort(device, f"{self._cmd_syntax}:PORT")

    @property
    def port(self) -> SearchSearchItemTriggerABusEthercatSrcPort:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT:VALue`` command.
        """
        return self._port


class SearchSearchItemTriggerABusEthercatSourceaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue`` command.

    **Description:**
        - This command sets the binary MAC source address value to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess: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:ETHERCAT:SOURCEADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary MAC source address value to be used when searching on an
          EtherCAT bus signal. The default size and value of MAC Source Address is 48 bits and
          'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatSourceaddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatSourceaddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatSourceaddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue`` command.

        **Description:**
            - This command sets the binary MAC source address value to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess: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:ETHERCAT:SOURCEADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary MAC source address value to be used when searching on an
              EtherCAT bus signal. The default size and value of MAC Source Address is 48 bits and
              'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatServiceDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue`` command.

    **Description:**
        - This command specifies the length of the service data string in bytes to be used for
          EtherCAT bus. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice: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:ETHERCAT:SERVice:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary Service Data value to be used when searching on an EtherCAT
          bus signal. The default size and value of Service Data is 8 bits and 'XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatServiceDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the service data string in bytes to be used for
          EtherCAT bus. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice: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:ETHERCAT:SERVice:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the Service Data size. The default value is 1. The valid range is 1 to 5.
    """


class SearchSearchItemTriggerABusEthercatServiceDataLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth`` command.

    **Description:**
        - This command sets the binary Service Data Length to be used for EtherCAT bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?

    **Info:**
        - ``<QString>`` is the binary Service Data Length to be used when searching on an EtherCAT
          bus signal. The default size and value of Service Data Length is 16 bits and 'XXXXXXXX
          XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatServiceData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._length = SearchSearchItemTriggerABusEthercatServiceDataLength(
            device, f"{self._cmd_syntax}:LENGth"
        )
        self._size = SearchSearchItemTriggerABusEthercatServiceDataSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusEthercatServiceDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def length(self) -> SearchSearchItemTriggerABusEthercatServiceDataLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth`` command.

        **Description:**
            - This command sets the binary Service Data Length to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth?

        **Info:**
            - ``<QString>`` is the binary Service Data Length to be used when searching on an
              EtherCAT bus signal. The default size and value of Service Data Length is 16 bits and
              'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._length

    @property
    def size(self) -> SearchSearchItemTriggerABusEthercatServiceDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the service data string in bytes to be used for
              EtherCAT bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice: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:ETHERCAT:SERVice:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the Service Data size. The default value is 1. The valid range is 1 to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatServiceDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue`` command.

        **Description:**
            - This command specifies the length of the service data string in bytes to be used for
              EtherCAT bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice: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:ETHERCAT:SERVice:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary Service Data value to be used when searching on an
              EtherCAT bus signal. The default size and value of Service Data is 8 bits and
              'XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatService(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerABusEthercatServiceData(
            device, f"{self._cmd_syntax}:DATa"
        )

    @property
    def data(self) -> SearchSearchItemTriggerABusEthercatServiceData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:LENGth``
              command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa:VALue``
              command.
        """
        return self._data


class SearchSearchItemTriggerABusEthercatQualityValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue`` command.

    **Description:**
        - This command sets the binary quality to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity: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:ETHERCAT:QUALity:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue?

    **Info:**
        - ``<QString>`` is the binary Quality value to be used when searching on an EtherCAT bus
          signal. The default size and value of Quality is 16 bits and 'XXXXXXXX XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatQuality(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatQualityValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatQualityValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue`` command.

        **Description:**
            - This command sets the binary quality to be used for EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity: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:ETHERCAT:QUALity:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue?

        **Info:**
            - ``<QString>`` is the binary Quality value to be used when searching on an EtherCAT bus
              signal. The default size and value of Quality is 16 bits and 'XXXXXXXX XXXXXXXX'
              respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatPubidValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue`` command.

    **Description:**
        - This command sets the binary Publisher ID to be used for EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID: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:ETHERCAT:PUBID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue?

    **Info:**
        - ``<QString>`` is the binary Publisher ID value to be used when searching on an EtherCAT
          bus signal. The default size and value of Publisher ID is 48 bits and 'XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatPubid(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatPubidValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatPubidValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue`` command.

        **Description:**
            - This command sets the binary Publisher ID to be used for EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID: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:ETHERCAT:PUBID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue?

        **Info:**
            - ``<QString>`` is the binary Publisher ID value to be used when searching on an
              EtherCAT bus signal. The default size and value of Publisher ID is 48 bits and
              'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatProtocoltype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe`` command.

    **Description:**
        - This command sets or queries the EtherCAT Protocol Type in EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe {PDU|NETWORKVARiables|MAILbox}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?

    **Info:**
        - ``PDU`` specifies the Protocol Type as PDU. This is the default value.
        - ``NETWORKVARiables`` specifies the Protocol Type as NETWORKVARiables.
        - ``MAILbox`` specifies the Protocol Type as MAILbox.
    """


class SearchSearchItemTriggerABusEthercatPositionValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue`` command.

    **Description:**
        - This command sets the binary address position information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition: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:ETHERCAT:POSition:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue?

    **Info:**
        - ``<QString>`` is the binary Address Position value to be used when searching on an
          EtherCAT bus signal. The default size and value Address Position is 16 bits and 'XXXXXXXX
          XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatPosition(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatPositionValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatPositionValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue`` command.

        **Description:**
            - This command sets the binary address position information to be used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition: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:ETHERCAT:POSition:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue?

        **Info:**
            - ``<QString>`` is the binary Address Position value to be used when searching on an
              EtherCAT bus signal. The default size and value Address Position is 16 bits and
              'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatOffsetValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue`` command.

    **Description:**
        - This command sets the binary address offset information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:OFFSet:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue?

    **Info:**
        - ``<QString>`` is the binary Address Offset data value to be used when searching on an
          EtherCAT bus signal. The default size and value Address Offset is 16 bits and 'XXXXXXXX
          XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatOffset(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatOffsetValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatOffsetValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue`` command.

        **Description:**
            - This command sets the binary address offset information to be used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:OFFSet:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue?

        **Info:**
            - ``<QString>`` is the binary Address Offset data value to be used when searching on an
              EtherCAT bus signal. The default size and value Address Offset is 16 bits and
              'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatNetworkVariableHeader(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer`` command.

    **Description:**
        - This command sets or queries the Network Variable Header fields in EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer {INDex|HASH|NVLEN|Q}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?

    **Info:**
        - ``INDex`` specifies the Network Variable Header field as INDex. This is the default value.
        - ``HASH`` specifies the Network Variable Header field as HASH.
        - ``NVLEN`` specifies the Network Variable Header field as NVLEN.
        - ``Q`` specifies the Network Variable Header field as Q.
    """


class SearchSearchItemTriggerABusEthercatNetworkVariable(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable`` command.

    **Description:**
        - This command sets or queries the Network Variable fields in EtherCAT bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable {PUBHEADer|NVHEADer|NVDATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?

    **Info:**
        - ``PUBHEADer`` specifies the Network Variable as PUBHEADer. This is the default value.
        - ``NVHEADer`` specifies the Network Variable as NVHEADer.
        - ``NVDATa`` specifies the Network Variable as NVDATa.

    Properties:
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._header = SearchSearchItemTriggerABusEthercatNetworkVariableHeader(
            device, f"{self._cmd_syntax}:HEADer"
        )

    @property
    def header(self) -> SearchSearchItemTriggerABusEthercatNetworkVariableHeader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer`` command.

        **Description:**
            - This command sets or queries the Network Variable Header fields in EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer {INDex|HASH|NVLEN|Q}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer?

        **Info:**
            - ``INDex`` specifies the Network Variable Header field as INDex. This is the default
              value.
            - ``HASH`` specifies the Network Variable Header field as HASH.
            - ``NVLEN`` specifies the Network Variable Header field as NVLEN.
            - ``Q`` specifies the Network Variable Header field as Q.
        """
        return self._header


class SearchSearchItemTriggerABusEthercatNetwork(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.variable``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._variable = SearchSearchItemTriggerABusEthercatNetworkVariable(
            device, f"{self._cmd_syntax}:VARiable"
        )

    @property
    def variable(self) -> SearchSearchItemTriggerABusEthercatNetworkVariable:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable`` command.

        **Description:**
            - This command sets or queries the Network Variable fields in EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable {PUBHEADer|NVHEADer|NVDATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable?

        **Info:**
            - ``PUBHEADer`` specifies the Network Variable as PUBHEADer. This is the default value.
            - ``NVHEADer`` specifies the Network Variable as NVHEADer.
            - ``NVDATa`` specifies the Network Variable as NVDATa.

        Sub-properties:
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable:HEADer``
              command.
        """
        return self._variable


class SearchSearchItemTriggerABusEthercatNetworkvariableDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary network variable data string used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable: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:ETHERCAT:NETWORKVARiable:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary network variable data value to be used when searching on an
          EtherCAT bus signal. The default Network Variable Data value is 'XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatNetworkvariableDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the network variable data string in bytes to be used
          for EtherCAT bus. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable: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:ETHERCAT:NETWORKVARiable:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the Network Variable Data size. The default value is 1. The valid range is 1
          to 5.
    """


class SearchSearchItemTriggerABusEthercatNetworkvariableData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEthercatNetworkvariableDataSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusEthercatNetworkvariableDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEthercatNetworkvariableDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the network variable data string in bytes to be
              used for EtherCAT bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable: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:ETHERCAT:NETWORKVARiable:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the Network Variable Data size. The default value is 1. The valid range
              is 1 to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatNetworkvariableDataValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary network variable data string used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable: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:ETHERCAT:NETWORKVARiable:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary network variable data value to be used when searching on
              an EtherCAT bus signal. The default Network Variable Data value is 'XXXXXXXX'.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatNetworkvariable(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerABusEthercatNetworkvariableData(
            device, f"{self._cmd_syntax}:DATa"
        )

    @property
    def data(self) -> SearchSearchItemTriggerABusEthercatNetworkvariableData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:SIZe``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa:VALue``
              command.
        """
        return self._data


class SearchSearchItemTriggerABusEthercatMailboxHeader(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer`` command.

    **Description:**
        - This command sets or queries the Mailbox Header fields in EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer {LENGth| ADDRess| CHANnel| PRIority| TYPe| CNT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?

    **Info:**
        - ``LENGth`` specifies the Mailbox Header as Length. This is the default value.
        - ``ADDRess`` specifies the Mailbox Header as Address.
        - ``CHANnel`` specifies the Mailbox Header as Channel.
        - ``PRIority`` specifies the Mailbox Header as Priority.
        - ``TYPe`` specifies the Mailbox Header as Type.
        - ``CNT`` specifies the Mailbox Header as Count.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthercatMailboxDetail(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail`` command.

    **Description:**
        - This command sets or queries the Error Reply Service Data Details in EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail {ONE| TWO| THRee| FOUR| FIVe| SIX| SEVEn| EIGHt| NINe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?

    **Info:**
        - ``ONE`` specifies the Detail field as ONE. This is the default value.
        - ``TWO`` specifies the Detail field as TWO.
        - ``THRee`` specifies the Detail field as THRee.
        - ``FOUR`` specifies the Detail field as FOUR.
        - ``FIVe`` specifies the Detail field as FIVe.
        - ``SIX`` specifies the Detail field as SIX.
        - ``SEVEn`` specifies the Detail field as SEVEn.
        - ``EIGHt`` specifies the Detail field as EIGHt.
        - ``NINe`` specifies the Detail field as NINe.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthercatMailboxCntValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue`` command.

    **Description:**
        - This command sets the binary counter of the mailbox services to be used for EtherCAT bus.
          The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT: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:ETHERCAT:MAILbox:CNT:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue?

    **Info:**
        - ``<QString>`` is the binary Counter value to be used when searching on an EtherCAT bus
          signal. The default size and value of Counter is 3 bits and 'XXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatMailboxCnt(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatMailboxCntValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatMailboxCntValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue`` command.

        **Description:**
            - This command sets the binary counter of the mailbox services to be used for EtherCAT
              bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT: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:ETHERCAT:MAILbox:CNT:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue?

        **Info:**
            - ``<QString>`` is the binary Counter value to be used when searching on an EtherCAT bus
              signal. The default size and value of Counter is 3 bits and 'XXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatMailboxAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue`` command.

    **Description:**
        - This command sets the binary Mailbox Address to be used for EtherCAT bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox: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:ETHERCAT:MAILbox:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary Mailbox Address to be used when searching on an EtherCAT bus
          signal. The default size and value of Address is 16 bits and 'XXXXXXXX XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatMailboxAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatMailboxAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatMailboxAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue`` command.

        **Description:**
            - This command sets the binary Mailbox Address to be used for EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox: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:ETHERCAT:MAILbox:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary Mailbox Address to be used when searching on an EtherCAT
              bus signal. The default size and value of Address is 16 bits and 'XXXXXXXX XXXXXXXX'
              respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatMailbox(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox`` command.

    **Description:**
        - This command sets or queries the Mailbox fields in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox {MAILBOXHEADer|SERVICEDATa|ERRSERVICEDATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?

    **Info:**
        - ``MAILBOXHEADer`` specifies the Mailbox fields as mailbox header. This is the default
          value.
        - ``SERVICEDATa`` specifies the Mailbox fields as service data.
        - ``ERRSERVICEDATa`` specifies the Mailbox fields as error reply service data.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess`` command
          tree.
        - ``.cnt``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT`` command tree.
        - ``.detail``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail`` command.
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEthercatMailboxAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._cnt = SearchSearchItemTriggerABusEthercatMailboxCnt(device, f"{self._cmd_syntax}:CNT")
        self._detail = SearchSearchItemTriggerABusEthercatMailboxDetail(
            device, f"{self._cmd_syntax}:DETail"
        )
        self._header = SearchSearchItemTriggerABusEthercatMailboxHeader(
            device, f"{self._cmd_syntax}:HEADer"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEthercatMailboxAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess:VALue``
              command.
        """
        return self._address

    @property
    def cnt(self) -> SearchSearchItemTriggerABusEthercatMailboxCnt:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT:VALue`` command.
        """
        return self._cnt

    @property
    def detail(self) -> SearchSearchItemTriggerABusEthercatMailboxDetail:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail`` command.

        **Description:**
            - This command sets or queries the Error Reply Service Data Details in EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail {ONE| TWO| THRee| FOUR| FIVe| SIX| SEVEn| EIGHt| NINe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail?

        **Info:**
            - ``ONE`` specifies the Detail field as ONE. This is the default value.
            - ``TWO`` specifies the Detail field as TWO.
            - ``THRee`` specifies the Detail field as THRee.
            - ``FOUR`` specifies the Detail field as FOUR.
            - ``FIVe`` specifies the Detail field as FIVe.
            - ``SIX`` specifies the Detail field as SIX.
            - ``SEVEn`` specifies the Detail field as SEVEn.
            - ``EIGHt`` specifies the Detail field as EIGHt.
            - ``NINe`` specifies the Detail field as NINe.
        """  # noqa: E501
        return self._detail

    @property
    def header(self) -> SearchSearchItemTriggerABusEthercatMailboxHeader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer`` command.

        **Description:**
            - This command sets or queries the Mailbox Header fields in EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer {LENGth| ADDRess| CHANnel| PRIority| TYPe| CNT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer?

        **Info:**
            - ``LENGth`` specifies the Mailbox Header as Length. This is the default value.
            - ``ADDRess`` specifies the Mailbox Header as Address.
            - ``CHANnel`` specifies the Mailbox Header as Channel.
            - ``PRIority`` specifies the Mailbox Header as Priority.
            - ``TYPe`` specifies the Mailbox Header as Type.
            - ``CNT`` specifies the Mailbox Header as Count.
        """  # noqa: E501
        return self._header


class SearchSearchItemTriggerABusEthercatMailboxtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe`` command.

    **Description:**
        - This command sets or queries the Mailbox Type fields in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe {ZERo| ONE| TWO| THRee| FOUR| FIVe| RESERved| FIFTeen}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?

    **Info:**
        - ``ZERo`` specifies the Mailbox Type as ZERo. This is the default value.
        - ``ONE`` specifies the Mailbox Type as ONE.
        - ``TWO`` specifies the Mailbox Type as TWO.
        - ``THRee`` specifies the Mailbox Type as THRee.
        - ``FOUR`` specifies the Mailbox Type as FOUR.
        - ``FIVe`` specifies the Mailbox Type as FIVe.
        - ``RESERved`` specifies the Mailbox Type as RESERved.
        - ``FIFTeen`` specifies the Mailbox Type as FIFTeen.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthercatLogicaladdressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue`` command.

    **Description:**
        - This command sets the binary logical address information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess: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:ETHERCAT:LOGICALADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary Logical Address to be used when searching on an EtherCAT bus
          signal. The default size and value Logical Address is 32 bits and 'XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatLogicaladdress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatLogicaladdressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatLogicaladdressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue`` command.

        **Description:**
            - This command sets the binary logical address information to be used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess: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:ETHERCAT:LOGICALADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary Logical Address to be used when searching on an EtherCAT
              bus signal. The default size and value Logical Address is 32 bits and 'XXXXXXXX
              XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatLenValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue`` command.

    **Description:**
        - This command sets the binary Length to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN: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:ETHERCAT:LEN:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue?

    **Info:**
        - ``<QString>`` is the binary Length to be used when searching on an EtherCAT bus signal.
          The default size and value of Length is 16 bits and 'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatLen(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatLenValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatLenValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue`` command.

        **Description:**
            - This command sets the binary Length to be used for EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN: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:ETHERCAT:LEN:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue?

        **Info:**
            - ``<QString>`` is the binary Length to be used when searching on an EtherCAT bus
              signal. The default size and value of Length is 16 bits and 'XXXXXXXX XXXXXXXX'
              respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIrqValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue`` command.

    **Description:**
        - This command sets the binary interrupt request information to be used for EtherCAT bus.
          The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ: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:ETHERCAT:IRQ:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue?

    **Info:**
        - ``<QString>`` is the binary interrupt request information to be used when searching on an
          EtherCAT bus signal. The default size and value interrupt request information is 16 bits
          and 'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIrq(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIrqValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIrqValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue`` command.

        **Description:**
            - This command sets the binary interrupt request information to be used for EtherCAT
              bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ: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:ETHERCAT:IRQ:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue?

        **Info:**
            - ``<QString>`` is the binary interrupt request information to be used when searching on
              an EtherCAT bus signal. The default size and value interrupt request information is 16
              bits and 'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIpsourceAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue`` command.

    **Description:**
        - This command sets the Source IP Address to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce: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:ETHERCAT:IPSOURce:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary Source IP Address to be used when searching on an EtherCAT bus
          signal. The default size and value of Source Address is 32 bits and 'XXXXXXXX XXXXXXXX
          XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIpsourceAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIpsourceAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIpsourceAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue`` command.

        **Description:**
            - This command sets the Source IP Address to be used for EtherCAT bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce: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:ETHERCAT:IPSOURce:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary Source IP Address to be used when searching on an EtherCAT
              bus signal. The default size and value of Source Address is 32 bits and 'XXXXXXXX
              XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIpsource(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEthercatIpsourceAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEthercatIpsourceAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess:VALue``
              command.
        """
        return self._address


class SearchSearchItemTriggerABusEthercatIpdestinationAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue`` command.

    **Description:**
        - This command sets the Destination IP Address to be used for EtherCAT bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination: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:ETHERCAT:IPDESTination:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary Destination IP Address to be used when searching on an
          EtherCAT bus signal. The default size and value of Destination Address is 32 bits and
          'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIpdestinationAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIpdestinationAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIpdestinationAddressValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue`` command.

        **Description:**
            - This command sets the Destination IP Address to be used for EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination: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:ETHERCAT:IPDESTination:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary Destination IP Address to be used when searching on an
              EtherCAT bus signal. The default size and value of Destination Address is 32 bits and
              'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX'.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIpdestination(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEthercatIpdestinationAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEthercatIpdestinationAddress:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess:VALue`` command.
        """
        return self._address


class SearchSearchItemTriggerABusEthercatIndexValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue`` command.

    **Description:**
        - This command sets the binary Index to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex: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:ETHERCAT:INDex:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue?

    **Info:**
        - ``<QString>`` is the binary Index to be used when searching on an EtherCAT bus signal. The
          default size and value of Index is 16 bits and 'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIndex(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIndexValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIndexValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue`` command.

        **Description:**
            - This command sets the binary Index to be used for EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex: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:ETHERCAT:INDex:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue?

        **Info:**
            - ``<QString>`` is the binary Index to be used when searching on an EtherCAT bus signal.
              The default size and value of Index is 16 bits and 'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIdxValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue`` command.

    **Description:**
        - This command sets the binary Indexing information to be used for EtherCAT bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX: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:ETHERCAT:IDX:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue?

    **Info:**
        - ``<QString>`` is the binary Index value to be used when searching on an EtherCAT bus
          signal. The default size and value of Index is 8 bits and 'XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIdx(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIdxValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIdxValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue`` command.

        **Description:**
            - This command sets the binary Indexing information to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX: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:ETHERCAT:IDX:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue?

        **Info:**
            - ``<QString>`` is the binary Index value to be used when searching on an EtherCAT bus
              signal. The default size and value of Index is 8 bits and 'XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatIdentificationValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue`` command.

    **Description:**
        - This command sets the IP Identification to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification: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:ETHERCAT:IDENtification:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue?

    **Info:**
        - ``<QString>`` is the binary IP Identification to be used when searching on an EtherCAT bus
          signal. The default size and value of Identification is 16 bits and 'XXXXXXXX XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatIdentification(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatIdentificationValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatIdentificationValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue`` command.

        **Description:**
            - This command sets the IP Identification to be used for EtherCAT bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification: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:ETHERCAT:IDENtification:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue?

        **Info:**
            - ``<QString>`` is the binary IP Identification to be used when searching on an EtherCAT
              bus signal. The default size and value of Identification is 16 bits and 'XXXXXXXX
              XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatHeaderLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth`` command.

    **Description:**
        - This command sets or queries the binary header length to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?

    **Info:**
        - ``<QString>`` is the binary header length to be used when searching on an EtherCAT bus
          signal. The default size and value of Length is 11 bits and 'XXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatHeader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._length = SearchSearchItemTriggerABusEthercatHeaderLength(
            device, f"{self._cmd_syntax}:LENGth"
        )

    @property
    def length(self) -> SearchSearchItemTriggerABusEthercatHeaderLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth`` command.

        **Description:**
            - This command sets or queries the binary header length to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth?

        **Info:**
            - ``<QString>`` is the binary header length to be used when searching on an EtherCAT bus
              signal. The default size and value of Length is 11 bits and 'XXX XXXXXXXX'
              respectively.
        """
        return self._length


class SearchSearchItemTriggerABusEthercatHashValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue`` command.

    **Description:**
        - This command sets the binary HASH to be used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH: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:ETHERCAT:HASH:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue?

    **Info:**
        - ``<QString>`` is the binary Hash value to be used when searching on an EtherCAT bus
          signal. The default size and value of Hash is 16 bits and 'XXXXXXXX XXXXXXXX'
          respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatHash(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatHashValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatHashValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue`` command.

        **Description:**
            - This command sets the binary HASH to be used for EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH: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:ETHERCAT:HASH:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue?

        **Info:**
            - ``<QString>`` is the binary Hash value to be used when searching on an EtherCAT bus
              signal. The default size and value of Hash is 16 bits and 'XXXXXXXX XXXXXXXX'
              respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatFrametype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe`` command.

    **Description:**
        - This command sets or queries the Frame Type in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:FRAMETYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe {BASic|UDPIP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe?

    **Info:**
        - ``BASic`` specifies the Frame Type as BASic. This is the default value.
        - ``UDPIP`` specifies the Frame Type as UDPIP.
    """


class SearchSearchItemTriggerABusEthercatErrorReplyServiceData(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa`` command.

    **Description:**
        - This command sets or queries the error reply service data fields in EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa {TYPe|DETail}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?

    **Info:**
        - ``TYPe`` specifies the Error Reply Service Data to type. This is the default value.
        - ``DETail`` specifies the Error Reply Service Data to detail.
    """


class SearchSearchItemTriggerABusEthercatErrorReplyService(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._data = SearchSearchItemTriggerABusEthercatErrorReplyServiceData(
            device, f"{self._cmd_syntax}:DATa"
        )

    @property
    def data(self) -> SearchSearchItemTriggerABusEthercatErrorReplyServiceData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa`` command.

        **Description:**
            - This command sets or queries the error reply service data fields in EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?`` query and raise
              an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa {TYPe|DETail}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa?

        **Info:**
            - ``TYPe`` specifies the Error Reply Service Data to type. This is the default value.
            - ``DETail`` specifies the Error Reply Service Data to detail.
        """
        return self._data


class SearchSearchItemTriggerABusEthercatErrorReply(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.service``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._service = SearchSearchItemTriggerABusEthercatErrorReplyService(
            device, f"{self._cmd_syntax}:SERVice"
        )

    @property
    def service(self) -> SearchSearchItemTriggerABusEthercatErrorReplyService:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice:DATa``
              command.
        """
        return self._service


class SearchSearchItemTriggerABusEthercatError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.reply``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._reply = SearchSearchItemTriggerABusEthercatErrorReply(
            device, f"{self._cmd_syntax}:REPLy"
        )

    @property
    def reply(self) -> SearchSearchItemTriggerABusEthercatErrorReply:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.service``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy:SERVice``
              command tree.
        """
        return self._reply


class SearchSearchItemTriggerABusEthercatDeviceaddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess`` command.

    **Description:**
        - This command sets or queries the Device Address in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess {POSition|OFFSet}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?

    **Info:**
        - ``POSition`` specifies the Device Address to position. This is the default value.
        - ``OFFSet`` specifies the Device Address to offset.
    """


class SearchSearchItemTriggerABusEthercatDestinationaddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue`` command.

    **Description:**
        - This command sets the binary MAC destination address value to be used for EtherCAT bus.
          The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess: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:ETHERCAT:DESTINATIONADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue?

    **Info:**
        - ``<QString>`` is the binary MAC destination address value to be used when searching on an
          EtherCAT bus signal. The default size and value of MAC Destination Address is 48 bits and
          'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatDestinationaddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatDestinationaddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatDestinationaddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue`` command.

        **Description:**
            - This command sets the binary MAC destination address value to be used for EtherCAT
              bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess: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:ETHERCAT:DESTINATIONADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue?

        **Info:**
            - ``<QString>`` is the binary MAC destination address value to be used when searching on
              an EtherCAT bus signal. The default size and value of MAC Destination Address is 48
              bits and 'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue?

    **Info:**
        - ``<QString>`` is the binary Cycle Number to be used when searching on an EtherCAT bus
          signal. The default data size and value is 8 bits and 'XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for EtherCAT bus.
          The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe?

    **Info:**
        - ``<NR1>`` is the binary data value to be used when searching on an Ethernet bus signal.
          The default size is 1. The valid range is 1 to 5.
    """


class SearchSearchItemTriggerABusEthercatData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEthercatDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusEthercatDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusEthercatDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for EtherCAT
              bus. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe?

        **Info:**
            - ``<NR1>`` is the binary data value to be used when searching on an Ethernet bus
              signal. The default size is 1. The valid range is 1 to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for EtherCAT bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue?

        **Info:**
            - ``<QString>`` is the binary Cycle Number to be used when searching on an EtherCAT bus
              signal. The default data size and value is 8 bits and 'XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatDatagramheaderLength(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth`` command.

    **Description:**
        - This command sets the binary Datagram length information to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?

    **Info:**
        - ``<QString>`` is the binary Datagram length information to be used when searching on an
          EtherCAT bus signal. The default size and value Datagram length information is 11 bits and
          'XXXXXXXX XXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatDatagramheader(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer`` command.

    **Description:**
        - This command sets or queries the Datagram Header fields in EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer {CMD|IDX|ADDRess|LEN|CIRCulating|IRQ}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?

    **Info:**
        - ``CMD`` specifies the Datagram Header field as CMD. This is the default value.
        - ``IDX`` specifies the Datagram Header field as IDX.
        - ``ADDRess`` specifies the Datagram Header field as ADDRess.
        - ``LEN`` specifies the Datagram Header field as LEN.
        - ``CIRCulating`` specifies the Datagram Header field as CIRCulating.
        - ``IRQ`` specifies the Datagram Header field as IRQ.

    Properties:
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth``
          command.
    """  # noqa: E501

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._length = SearchSearchItemTriggerABusEthercatDatagramheaderLength(
            device, f"{self._cmd_syntax}:LENGth"
        )

    @property
    def length(self) -> SearchSearchItemTriggerABusEthercatDatagramheaderLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth`` command.

        **Description:**
            - This command sets the binary Datagram length information to be used for EtherCAT bus.
              The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth?

        **Info:**
            - ``<QString>`` is the binary Datagram length information to be used when searching on
              an EtherCAT bus signal. The default size and value Datagram length information is 11
              bits and 'XXXXXXXX XXX' respectively.
        """
        return self._length


class SearchSearchItemTriggerABusEthercatDatagram(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM`` command.

    **Description:**
        - This command sets or queries the Datagram fields in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM {HEADer|DATa|WKC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?

    **Info:**
        - ``HEADer`` specifies the Datagram field and sets it to Header. This is the default value.
        - ``DATa`` specifies the Datagram field and sets it to Data.
        - ``WKC`` specifies the Datagram field and sets it to WKC.
    """


class SearchSearchItemTriggerABusEthercatCycValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue`` command.

    **Description:**
        - This command sets the binary Cycle Number to be used for EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC: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:ETHERCAT:CYC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue?

    **Info:**
        - ``<QString>`` is the binary Cycle Number to be used when searching on an EtherCAT bus
          signal. The default size and value of Network Variable Count is 16 bits and 'XXXXXXXX
          XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatCyc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatCycValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatCycValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue`` command.

        **Description:**
            - This command sets the binary Cycle Number to be used for EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC: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:ETHERCAT:CYC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue?

        **Info:**
            - ``<QString>`` is the binary Cycle Number to be used when searching on an EtherCAT bus
              signal. The default size and value of Network Variable Count is 16 bits and 'XXXXXXXX
              XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a EtherCAT bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition {SOF| PROTocol| IPHEADer| UDPIPHEADer| MACADDRess| TCI| ECATHEADERLENGth| DATagram| NETWORKVARiable| MAILBOX| FCSERRor| EOF}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition?

    **Info:**
        - ``SOF`` specifies the field within a EtherCAT frame to search on as SOF. This is the
          default value.
        - ``PROTocol`` specifies the field within a EtherCAT frame to search on as PROTocol.
        - ``IPHEADer`` specifies the field within a EtherCAT frame to search on as IPHEADer.
        - ``UDPIPHEADer`` specifies the field within a EtherCAT frame to search on as UDPIPHEADer.
        - ``MACADDRess`` specifies the field within a EtherCAT frame to search on as MACADDRess.
        - ``TCI`` specifies the field within a EtherCAT frame to search on as TCI.
        - ``ECATHEADERLENGth`` specifies the field within a EtherCAT frame to search on as
          ECATHEADERLENGth.
        - ``DATagram`` specifies the field within a EtherCAT frame to search on as DATagram.
        - ``NETWORKVARiable`` specifies the field within a EtherCAT frame to search on as
          NETWORKVARiable.
        - ``MAILBOX`` specifies the field within a EtherCAT frame to search on as MAILBOX.
        - ``FCSERRor`` specifies the field within a EtherCAT frame to search on as FCSERRor.
        - ``EOF`` specifies the field within a EtherCAT frame to search on as EOF.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthercatCommandtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe`` command.

    **Description:**
        - This command sets or queries the Command Type in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe {NOP| APRD| APWR| APRW| FPRD| FPWR| FPRW| BRD| BWR| BRW| LRD| LWR| LRW| ARMW| FRMW| REServed}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?

    **Info:**
        - ``NOP`` specifies the Command Type and sets it to NOP. This is the default value.
        - ``APRD`` specifies the Command Type and sets it to APRD.
        - ``APWR`` specifies the Command Type and sets it to APWR.
        - ``APRW`` specifies the Command Type and sets it to APRW.
        - ``FPRD`` specifies the Command Type and sets it to FPRD.
        - ``FPWR`` specifies the Command Type and sets it to FPWR.
        - ``FPRW`` specifies the Command Type and sets it to FPRW.
        - ``BRD`` specifies the Command Type and sets it to BRD.
        - ``BWR`` specifies the Command Type and sets it to BWR.
        - ``BRW`` specifies the Command Type and sets it to BRW.
        - ``LRD`` specifies the Command Type and sets it to LRD.
        - ``LWR`` specifies the Command Type and sets it to LWR.
        - ``LRW`` specifies the Command Type and sets it to LRW.
        - ``ARMW`` specifies the Command Type and sets it to ARMW.
        - ``FRMW`` specifies the Command Type and sets it to FRMW.
        - ``REServed`` specifies the Command Type and sets it to REServed.
    """  # noqa: E501


class SearchSearchItemTriggerABusEthercatCntnvValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue`` command.

    **Description:**
        - This command sets the binary Network Variable Count to be used for EtherCAT bus. The
          search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV: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:ETHERCAT:CNTNV:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue?

    **Info:**
        - ``<QString>`` is the binary Network Variable Count to be used when searching on an
          EtherCAT bus signal. The default size and value of Network Variable Count is 16 bits and
          'XXXXXXXX XXXXXXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEthercatCntnv(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEthercatCntnvValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEthercatCntnvValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue`` command.

        **Description:**
            - This command sets the binary Network Variable Count to be used for EtherCAT bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV: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:ETHERCAT:CNTNV:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue?

        **Info:**
            - ``<QString>`` is the binary Network Variable Count to be used when searching on an
              EtherCAT bus signal. The default size and value of Network Variable Count is 16 bits
              and 'XXXXXXXX XXXXXXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusEthercatAddressmode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe`` command.

    **Description:**
        - This command sets or queries the Address Mode in EtherCAT bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe {DEVice|LOGical}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?

    **Info:**
        - ``DEVice`` sets the Address Mode to Device. This is the default value.
        - ``LOGical`` sets the Address Mode to Logical.
    """


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
class SearchSearchItemTriggerABusEthercat(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.addressmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe`` command.
        - ``.cntnv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV`` command tree.
        - ``.commandtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe`` command.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition`` command.
        - ``.cyc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC`` command tree.
        - ``.datagram``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM`` command.
        - ``.datagramheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer``
          command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa`` command tree.
        - ``.destinationaddress``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess`` command tree.
        - ``.deviceaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess`` command.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor`` command tree.
        - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe`` command.
        - ``.hash``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH`` command tree.
        - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer`` command tree.
        - ``.identification``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification``
          command tree.
        - ``.idx``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX`` command tree.
        - ``.index``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex`` command tree.
        - ``.ipdestination``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination`` command
          tree.
        - ``.ipsource``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce`` command tree.
        - ``.irq``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ`` command tree.
        - ``.len``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN`` command tree.
        - ``.logicaladdress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess``
          command tree.
        - ``.mailboxtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe`` command.
        - ``.mailbox``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox`` command.
        - ``.networkvariable``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable``
          command tree.
        - ``.network``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork`` command tree.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet`` command tree.
        - ``.position``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition`` command tree.
        - ``.protocoltype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe`` command.
        - ``.pubid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID`` command tree.
        - ``.quality``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity`` command tree.
        - ``.service``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice`` command tree.
        - ``.sourceaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess`` command
          tree.
        - ``.src``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC`` command tree.
        - ``.tci``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI`` command tree.
        - ``.wkc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._addressmode = SearchSearchItemTriggerABusEthercatAddressmode(
            device, f"{self._cmd_syntax}:ADDRESSMODe"
        )
        self._cntnv = SearchSearchItemTriggerABusEthercatCntnv(device, f"{self._cmd_syntax}:CNTNV")
        self._commandtype = SearchSearchItemTriggerABusEthercatCommandtype(
            device, f"{self._cmd_syntax}:COMMANDTYPe"
        )
        self._condition = SearchSearchItemTriggerABusEthercatCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._cyc = SearchSearchItemTriggerABusEthercatCyc(device, f"{self._cmd_syntax}:CYC")
        self._datagram = SearchSearchItemTriggerABusEthercatDatagram(
            device, f"{self._cmd_syntax}:DATAGRAM"
        )
        self._datagramheader = SearchSearchItemTriggerABusEthercatDatagramheader(
            device, f"{self._cmd_syntax}:DATAGRAMHEADer"
        )
        self._data = SearchSearchItemTriggerABusEthercatData(device, f"{self._cmd_syntax}:DATa")
        self._destinationaddress = SearchSearchItemTriggerABusEthercatDestinationaddress(
            device, f"{self._cmd_syntax}:DESTINATIONADDRess"
        )
        self._deviceaddress = SearchSearchItemTriggerABusEthercatDeviceaddress(
            device, f"{self._cmd_syntax}:DEVICEADDRess"
        )
        self._error = SearchSearchItemTriggerABusEthercatError(device, f"{self._cmd_syntax}:ERRor")
        self._frametype = SearchSearchItemTriggerABusEthercatFrametype(
            device, f"{self._cmd_syntax}:FRAMETYPe"
        )
        self._hash = SearchSearchItemTriggerABusEthercatHash(device, f"{self._cmd_syntax}:HASH")
        self._header = SearchSearchItemTriggerABusEthercatHeader(
            device, f"{self._cmd_syntax}:HEADer"
        )
        self._identification = SearchSearchItemTriggerABusEthercatIdentification(
            device, f"{self._cmd_syntax}:IDENtification"
        )
        self._idx = SearchSearchItemTriggerABusEthercatIdx(device, f"{self._cmd_syntax}:IDX")
        self._index = SearchSearchItemTriggerABusEthercatIndex(device, f"{self._cmd_syntax}:INDex")
        self._ipdestination = SearchSearchItemTriggerABusEthercatIpdestination(
            device, f"{self._cmd_syntax}:IPDESTination"
        )
        self._ipsource = SearchSearchItemTriggerABusEthercatIpsource(
            device, f"{self._cmd_syntax}:IPSOURce"
        )
        self._irq = SearchSearchItemTriggerABusEthercatIrq(device, f"{self._cmd_syntax}:IRQ")
        self._len = SearchSearchItemTriggerABusEthercatLen(device, f"{self._cmd_syntax}:LEN")
        self._logicaladdress = SearchSearchItemTriggerABusEthercatLogicaladdress(
            device, f"{self._cmd_syntax}:LOGICALADDRess"
        )
        self._mailboxtype = SearchSearchItemTriggerABusEthercatMailboxtype(
            device, f"{self._cmd_syntax}:MAILBOXTYPe"
        )
        self._mailbox = SearchSearchItemTriggerABusEthercatMailbox(
            device, f"{self._cmd_syntax}:MAILbox"
        )
        self._networkvariable = SearchSearchItemTriggerABusEthercatNetworkvariable(
            device, f"{self._cmd_syntax}:NETWORKVARiable"
        )
        self._network = SearchSearchItemTriggerABusEthercatNetwork(
            device, f"{self._cmd_syntax}:NETWork"
        )
        self._offset = SearchSearchItemTriggerABusEthercatOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._position = SearchSearchItemTriggerABusEthercatPosition(
            device, f"{self._cmd_syntax}:POSition"
        )
        self._protocoltype = SearchSearchItemTriggerABusEthercatProtocoltype(
            device, f"{self._cmd_syntax}:PROTOCOLTYPe"
        )
        self._pubid = SearchSearchItemTriggerABusEthercatPubid(device, f"{self._cmd_syntax}:PUBID")
        self._quality = SearchSearchItemTriggerABusEthercatQuality(
            device, f"{self._cmd_syntax}:QUALity"
        )
        self._service = SearchSearchItemTriggerABusEthercatService(
            device, f"{self._cmd_syntax}:SERVice"
        )
        self._sourceaddress = SearchSearchItemTriggerABusEthercatSourceaddress(
            device, f"{self._cmd_syntax}:SOURCEADDRess"
        )
        self._src = SearchSearchItemTriggerABusEthercatSrc(device, f"{self._cmd_syntax}:SRC")
        self._tci = SearchSearchItemTriggerABusEthercatTci(device, f"{self._cmd_syntax}:TCI")
        self._wkc = SearchSearchItemTriggerABusEthercatWkc(device, f"{self._cmd_syntax}:WKC")

    @property
    def addressmode(self) -> SearchSearchItemTriggerABusEthercatAddressmode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe`` command.

        **Description:**
            - This command sets or queries the Address Mode in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe {DEVice|LOGical}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe?

        **Info:**
            - ``DEVice`` sets the Address Mode to Device. This is the default value.
            - ``LOGical`` sets the Address Mode to Logical.
        """
        return self._addressmode

    @property
    def cntnv(self) -> SearchSearchItemTriggerABusEthercatCntnv:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV:VALue`` command.
        """
        return self._cntnv

    @property
    def commandtype(self) -> SearchSearchItemTriggerABusEthercatCommandtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe`` command.

        **Description:**
            - This command sets or queries the Command Type in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe {NOP| APRD| APWR| APRW| FPRD| FPWR| FPRW| BRD| BWR| BRW| LRD| LWR| LRW| ARMW| FRMW| REServed}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe?

        **Info:**
            - ``NOP`` specifies the Command Type and sets it to NOP. This is the default value.
            - ``APRD`` specifies the Command Type and sets it to APRD.
            - ``APWR`` specifies the Command Type and sets it to APWR.
            - ``APRW`` specifies the Command Type and sets it to APRW.
            - ``FPRD`` specifies the Command Type and sets it to FPRD.
            - ``FPWR`` specifies the Command Type and sets it to FPWR.
            - ``FPRW`` specifies the Command Type and sets it to FPRW.
            - ``BRD`` specifies the Command Type and sets it to BRD.
            - ``BWR`` specifies the Command Type and sets it to BWR.
            - ``BRW`` specifies the Command Type and sets it to BRW.
            - ``LRD`` specifies the Command Type and sets it to LRD.
            - ``LWR`` specifies the Command Type and sets it to LWR.
            - ``LRW`` specifies the Command Type and sets it to LRW.
            - ``ARMW`` specifies the Command Type and sets it to ARMW.
            - ``FRMW`` specifies the Command Type and sets it to FRMW.
            - ``REServed`` specifies the Command Type and sets it to REServed.
        """  # noqa: E501
        return self._commandtype

    @property
    def condition(self) -> SearchSearchItemTriggerABusEthercatCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition {SOF| PROTocol| IPHEADer| UDPIPHEADer| MACADDRess| TCI| ECATHEADERLENGth| DATagram| NETWORKVARiable| MAILBOX| FCSERRor| EOF}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition?

        **Info:**
            - ``SOF`` specifies the field within a EtherCAT frame to search on as SOF. This is the
              default value.
            - ``PROTocol`` specifies the field within a EtherCAT frame to search on as PROTocol.
            - ``IPHEADer`` specifies the field within a EtherCAT frame to search on as IPHEADer.
            - ``UDPIPHEADer`` specifies the field within a EtherCAT frame to search on as
              UDPIPHEADer.
            - ``MACADDRess`` specifies the field within a EtherCAT frame to search on as MACADDRess.
            - ``TCI`` specifies the field within a EtherCAT frame to search on as TCI.
            - ``ECATHEADERLENGth`` specifies the field within a EtherCAT frame to search on as
              ECATHEADERLENGth.
            - ``DATagram`` specifies the field within a EtherCAT frame to search on as DATagram.
            - ``NETWORKVARiable`` specifies the field within a EtherCAT frame to search on as
              NETWORKVARiable.
            - ``MAILBOX`` specifies the field within a EtherCAT frame to search on as MAILBOX.
            - ``FCSERRor`` specifies the field within a EtherCAT frame to search on as FCSERRor.
            - ``EOF`` specifies the field within a EtherCAT frame to search on as EOF.
        """  # noqa: E501
        return self._condition

    @property
    def cyc(self) -> SearchSearchItemTriggerABusEthercatCyc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC:VALue`` command.
        """
        return self._cyc

    @property
    def datagram(self) -> SearchSearchItemTriggerABusEthercatDatagram:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM`` command.

        **Description:**
            - This command sets or queries the Datagram fields in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM {HEADer|DATa|WKC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM?

        **Info:**
            - ``HEADer`` specifies the Datagram field and sets it to Header. This is the default
              value.
            - ``DATa`` specifies the Datagram field and sets it to Data.
            - ``WKC`` specifies the Datagram field and sets it to WKC.
        """
        return self._datagram

    @property
    def datagramheader(self) -> SearchSearchItemTriggerABusEthercatDatagramheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer`` command.

        **Description:**
            - This command sets or queries the Datagram Header fields in EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer {CMD|IDX|ADDRess|LEN|CIRCulating|IRQ}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer?

        **Info:**
            - ``CMD`` specifies the Datagram Header field as CMD. This is the default value.
            - ``IDX`` specifies the Datagram Header field as IDX.
            - ``ADDRess`` specifies the Datagram Header field as ADDRess.
            - ``LEN`` specifies the Datagram Header field as LEN.
            - ``CIRCulating`` specifies the Datagram Header field as CIRCulating.
            - ``IRQ`` specifies the Datagram Header field as IRQ.

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer:LENGth``
              command.
        """  # noqa: E501
        return self._datagramheader

    @property
    def data(self) -> SearchSearchItemTriggerABusEthercatData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa:VALue`` command.
        """
        return self._data

    @property
    def destinationaddress(self) -> SearchSearchItemTriggerABusEthercatDestinationaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess:VALue``
              command.
        """
        return self._destinationaddress

    @property
    def deviceaddress(self) -> SearchSearchItemTriggerABusEthercatDeviceaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess`` command.

        **Description:**
            - This command sets or queries the Device Address in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess {POSition|OFFSet}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess?

        **Info:**
            - ``POSition`` specifies the Device Address to position. This is the default value.
            - ``OFFSet`` specifies the Device Address to offset.
        """
        return self._deviceaddress

    @property
    def error(self) -> SearchSearchItemTriggerABusEthercatError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.reply``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor:REPLy`` command tree.
        """
        return self._error

    @property
    def frametype(self) -> SearchSearchItemTriggerABusEthercatFrametype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe`` command.

        **Description:**
            - This command sets or queries the Frame Type in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT: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:ETHERCAT:FRAMETYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe {BASic|UDPIP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe?

        **Info:**
            - ``BASic`` specifies the Frame Type as BASic. This is the default value.
            - ``UDPIP`` specifies the Frame Type as UDPIP.
        """
        return self._frametype

    @property
    def hash(self) -> SearchSearchItemTriggerABusEthercatHash:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH:VALue`` command.
        """
        return self._hash

    @property
    def header(self) -> SearchSearchItemTriggerABusEthercatHeader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer:LENGth`` command.
        """
        return self._header

    @property
    def identification(self) -> SearchSearchItemTriggerABusEthercatIdentification:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification:VALue``
              command.
        """
        return self._identification

    @property
    def idx(self) -> SearchSearchItemTriggerABusEthercatIdx:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX:VALue`` command.
        """
        return self._idx

    @property
    def index(self) -> SearchSearchItemTriggerABusEthercatIndex:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex:VALue`` command.
        """
        return self._index

    @property
    def ipdestination(self) -> SearchSearchItemTriggerABusEthercatIpdestination:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination:ADDRess``
              command tree.
        """
        return self._ipdestination

    @property
    def ipsource(self) -> SearchSearchItemTriggerABusEthercatIpsource:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce:ADDRess`` command
              tree.
        """
        return self._ipsource

    @property
    def irq(self) -> SearchSearchItemTriggerABusEthercatIrq:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ:VALue`` command.
        """
        return self._irq

    @property
    def len(self) -> SearchSearchItemTriggerABusEthercatLen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN:VALue`` command.
        """
        return self._len

    @property
    def logicaladdress(self) -> SearchSearchItemTriggerABusEthercatLogicaladdress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess:VALue``
              command.
        """
        return self._logicaladdress

    @property
    def mailboxtype(self) -> SearchSearchItemTriggerABusEthercatMailboxtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe`` command.

        **Description:**
            - This command sets or queries the Mailbox Type fields in EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe {ZERo| ONE| TWO| THRee| FOUR| FIVe| RESERved| FIFTeen}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe?

        **Info:**
            - ``ZERo`` specifies the Mailbox Type as ZERo. This is the default value.
            - ``ONE`` specifies the Mailbox Type as ONE.
            - ``TWO`` specifies the Mailbox Type as TWO.
            - ``THRee`` specifies the Mailbox Type as THRee.
            - ``FOUR`` specifies the Mailbox Type as FOUR.
            - ``FIVe`` specifies the Mailbox Type as FIVe.
            - ``RESERved`` specifies the Mailbox Type as RESERved.
            - ``FIFTeen`` specifies the Mailbox Type as FIFTeen.
        """  # noqa: E501
        return self._mailboxtype

    @property
    def mailbox(self) -> SearchSearchItemTriggerABusEthercatMailbox:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox`` command.

        **Description:**
            - This command sets or queries the Mailbox fields in EtherCAT bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox {MAILBOXHEADer|SERVICEDATa|ERRSERVICEDATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox?

        **Info:**
            - ``MAILBOXHEADer`` specifies the Mailbox fields as mailbox header. This is the default
              value.
            - ``SERVICEDATa`` specifies the Mailbox fields as service data.
            - ``ERRSERVICEDATa`` specifies the Mailbox fields as error reply service data.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:ADDRess`` command
              tree.
            - ``.cnt``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:CNT`` command tree.
            - ``.detail``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:DETail`` command.
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox:HEADer`` command.
        """  # noqa: E501
        return self._mailbox

    @property
    def networkvariable(self) -> SearchSearchItemTriggerABusEthercatNetworkvariable:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable:DATa``
              command tree.
        """
        return self._networkvariable

    @property
    def network(self) -> SearchSearchItemTriggerABusEthercatNetwork:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.variable``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork:VARiable``
              command.
        """
        return self._network

    @property
    def offset(self) -> SearchSearchItemTriggerABusEthercatOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet:VALue`` command.
        """
        return self._offset

    @property
    def position(self) -> SearchSearchItemTriggerABusEthercatPosition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition:VALue`` command.
        """
        return self._position

    @property
    def protocoltype(self) -> SearchSearchItemTriggerABusEthercatProtocoltype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe`` command.

        **Description:**
            - This command sets or queries the EtherCAT Protocol Type in EtherCAT bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe {PDU|NETWORKVARiables|MAILbox}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe?

        **Info:**
            - ``PDU`` specifies the Protocol Type as PDU. This is the default value.
            - ``NETWORKVARiables`` specifies the Protocol Type as NETWORKVARiables.
            - ``MAILbox`` specifies the Protocol Type as MAILbox.
        """
        return self._protocoltype

    @property
    def pubid(self) -> SearchSearchItemTriggerABusEthercatPubid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID:VALue`` command.
        """
        return self._pubid

    @property
    def quality(self) -> SearchSearchItemTriggerABusEthercatQuality:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity:VALue`` command.
        """
        return self._quality

    @property
    def service(self) -> SearchSearchItemTriggerABusEthercatService:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice:DATa`` command tree.
        """
        return self._service

    @property
    def sourceaddress(self) -> SearchSearchItemTriggerABusEthercatSourceaddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess:VALue``
              command.
        """
        return self._sourceaddress

    @property
    def src(self) -> SearchSearchItemTriggerABusEthercatSrc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.port``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC:PORT`` command tree.
        """
        return self._src

    @property
    def tci(self) -> SearchSearchItemTriggerABusEthercatTci:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI:VALue`` command.
        """
        return self._tci

    @property
    def wkc(self) -> SearchSearchItemTriggerABusEthercatWkc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC:VALue`` command.
        """
        return self._wkc


class SearchSearchItemTriggerABusEspiVirtualwireStatusValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Virtual wire Status. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus: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:ESPI:VIRTUALWIRe:STATus:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiVirtualwireStatus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiVirtualwireStatusValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiVirtualwireStatusValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Virtual wire Status. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus: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:ESPI:VIRTUALWIRe:STATus:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiVirtualwireResponseValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Virtual wire Response. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse: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:ESPI:VIRTUALWIRe:RESPonse:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiVirtualwireResponse(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiVirtualwireResponseValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiVirtualwireResponseValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Virtual wire Response. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse: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:ESPI:VIRTUALWIRe:RESPonse:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiVirtualwireIndexValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Virtual wire Index. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex: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:ESPI:VIRTUALWIRe:INDex:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiVirtualwireIndex(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiVirtualwireIndexValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiVirtualwireIndexValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Virtual wire Index. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex: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:ESPI:VIRTUALWIRe:INDex:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiVirtualwireDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Virtual wire Data. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe: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:ESPI:VIRTUALWIRe:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiVirtualwireData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiVirtualwireDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiVirtualwireDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Virtual wire Data. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe: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:ESPI:VIRTUALWIRe:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiVirtualwireCountValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Virtual wire count. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt: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:ESPI:VIRTUALWIRe:COUNt:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiVirtualwireCount(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiVirtualwireCountValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiVirtualwireCountValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Virtual wire count. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt: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:ESPI:VIRTUALWIRe:COUNt:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiVirtualwire(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.count``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt`` command tree.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa`` command tree.
        - ``.index``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex`` command tree.
        - ``.response``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse`` command
          tree.
        - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._count = SearchSearchItemTriggerABusEspiVirtualwireCount(
            device, f"{self._cmd_syntax}:COUNt"
        )
        self._data = SearchSearchItemTriggerABusEspiVirtualwireData(
            device, f"{self._cmd_syntax}:DATa"
        )
        self._index = SearchSearchItemTriggerABusEspiVirtualwireIndex(
            device, f"{self._cmd_syntax}:INDex"
        )
        self._response = SearchSearchItemTriggerABusEspiVirtualwireResponse(
            device, f"{self._cmd_syntax}:RESPonse"
        )
        self._status = SearchSearchItemTriggerABusEspiVirtualwireStatus(
            device, f"{self._cmd_syntax}:STATus"
        )

    @property
    def count(self) -> SearchSearchItemTriggerABusEspiVirtualwireCount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt:VALue``
              command.
        """
        return self._count

    @property
    def data(self) -> SearchSearchItemTriggerABusEspiVirtualwireData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa:VALue``
              command.
        """
        return self._data

    @property
    def index(self) -> SearchSearchItemTriggerABusEspiVirtualwireIndex:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex:VALue``
              command.
        """
        return self._index

    @property
    def response(self) -> SearchSearchItemTriggerABusEspiVirtualwireResponse:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse:VALue``
              command.
        """
        return self._response

    @property
    def status(self) -> SearchSearchItemTriggerABusEspiVirtualwireStatus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus:VALue``
              command.
        """
        return self._status


class SearchSearchItemTriggerABusEspiTagValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Tag. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG: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:ESPI:TAG:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiTag(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiTagValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiTagValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Tag. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG: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:ESPI:TAG:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiSmbusSlaveAddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is SMBus Slave Address. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiSmbusSlave(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEspiSmbusSlaveAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEspiSmbusSlaveAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is SMBus Slave Address. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._address


class SearchSearchItemTriggerABusEspiSmbusDestinationAddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is SMBus Source/Destination Address. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiSmbusDestination(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEspiSmbusDestinationAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEspiSmbusDestinationAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is SMBus Source/Destination Address. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._address


class SearchSearchItemTriggerABusEspiSmbus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.destination``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination`` command
          tree.
        - ``.slave``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destination = SearchSearchItemTriggerABusEspiSmbusDestination(
            device, f"{self._cmd_syntax}:DESTination"
        )
        self._slave = SearchSearchItemTriggerABusEspiSmbusSlave(device, f"{self._cmd_syntax}:SLAVe")

    @property
    def destination(self) -> SearchSearchItemTriggerABusEspiSmbusDestination:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination:ADDRess``
              command.
        """
        return self._destination

    @property
    def slave(self) -> SearchSearchItemTriggerABusEspiSmbusSlave:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe:ADDRess`` command.
        """
        return self._slave


class SearchSearchItemTriggerABusEspiRespcycleType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe`` command.

    **Description:**
        - This command sets or queries the response cycle type on command in ESPI bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE: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:ESPI:RESPCYCLE:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe {MEMRDWR32| MEMRDWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| LTR| FLASHREAD| FLASHWRITe| FLASHERASe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe?

    **Info:**
        - ``MEMRDWR32`` specifies Memory Read/Write 32 as the cycle type to search on.
        - ``MEMRDWR64`` specifies Memory Read/Write 64 as the cycle type to search on.
        - ``MESSage`` specifies message as the cycle type to search on.
        - ``MSGWITHDATa`` specifies message with Data as the cycle type to search on.
        - ``SUCCESSNODATa`` specifies success without data as the cycle type to search on.
        - ``SUCCESSDATa`` specifies success with data as the cycle type to search on.
        - ``UNSUCCESSNODATa`` specifies unsuccess without data as the cycle type to search on.
        - ``LTR`` specifies LTR as the cycle type to search on.
        - ``FLASHREAD`` specifies flash read as the cycle type to search on.
        - ``FLASHWRITe`` specifies flash write as the cycle type to search on.
        - ``FLASHERASe`` specifies flash erase as the cycle type to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiRespcycle(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusEspiRespcycleType(
            device, f"{self._cmd_syntax}:TYPe"
        )

    @property
    def type(self) -> SearchSearchItemTriggerABusEspiRespcycleType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe`` command.

        **Description:**
            - This command sets or queries the response cycle type on command in ESPI bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE: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:ESPI:RESPCYCLE:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe {MEMRDWR32| MEMRDWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| LTR| FLASHREAD| FLASHWRITe| FLASHERASe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe?

        **Info:**
            - ``MEMRDWR32`` specifies Memory Read/Write 32 as the cycle type to search on.
            - ``MEMRDWR64`` specifies Memory Read/Write 64 as the cycle type to search on.
            - ``MESSage`` specifies message as the cycle type to search on.
            - ``MSGWITHDATa`` specifies message with Data as the cycle type to search on.
            - ``SUCCESSNODATa`` specifies success without data as the cycle type to search on.
            - ``SUCCESSDATa`` specifies success with data as the cycle type to search on.
            - ``UNSUCCESSNODATa`` specifies unsuccess without data as the cycle type to search on.
            - ``LTR`` specifies LTR as the cycle type to search on.
            - ``FLASHREAD`` specifies flash read as the cycle type to search on.
            - ``FLASHWRITe`` specifies flash write as the cycle type to search on.
            - ``FLASHERASe`` specifies flash erase as the cycle type to search on.
        """  # noqa: E501
        return self._type


class SearchSearchItemTriggerABusEspiPhase(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe`` command.

    **Description:**
        - This command sets or queries the phase in ESPI bus. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe {COMMand| RESPONSE| RESPONSEHEADer| RESPONSENOHEADer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?

    **Info:**
        - ``COMMand`` specifies command as the field/packet to search on.
        - ``RESPONSE`` specifies response as the field/packet to search on.
        - ``RESPONSEHEADer`` specifies the response header as the field/packet to search on.
        - ``RESPONSENOHEADer`` specifies the response without header as the field/packet to search
          on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Length. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:LENGth:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiLength(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiLengthValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiLengthValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Length. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:LENGth:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type on command or response in ESPI bus. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor: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:ESPI:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe {CRC| DEFer| FATal| NONFATal| NORESPonse| CMDOPCODe| CYCLETYPe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe?

    **Info:**
        - ``CRC`` specifies CRC as the error type to search on.
        - ``DEFer`` specifies DEFer as the error type to search on.
        - ``FATal`` specifies FATal as the error type to search on.
        - ``NONFATal`` specifies NONFATal as the error type to search on.
        - ``NORESPonse`` specifies NORESPonse as the error type to search on.
        - ``CMDOPCODe`` specifies CMDOPCODe as the error type to search on.
        - ``CYCLETYPe`` specifies CYCLETYPe as the error type to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusEspiErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusEspiErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type on command or response in ESPI bus. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor: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:ESPI:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe {CRC| DEFer| FATal| NONFATal| NORESPonse| CMDOPCODe| CYCLETYPe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe?

        **Info:**
            - ``CRC`` specifies CRC as the error type to search on.
            - ``DEFer`` specifies DEFer as the error type to search on.
            - ``FATal`` specifies FATal as the error type to search on.
            - ``NONFATal`` specifies NONFATal as the error type to search on.
            - ``NORESPonse`` specifies NORESPonse as the error type to search on.
            - ``CMDOPCODe`` specifies CMDOPCODe as the error type to search on.
            - ``CYCLETYPe`` specifies CYCLETYPe as the error type to search on.
        """  # noqa: E501
        return self._type


class SearchSearchItemTriggerABusEspiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is DATA. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for ESPI
          triggering if the trigger condition is DATA. The default data size is 1 byte and ranges
          between 1 and 5. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size. The default data size is 1 and the valid range is 1 to
          5.
    """


class SearchSearchItemTriggerABusEspiData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusEspiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusEspiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> SearchSearchItemTriggerABusEspiDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for ESPI
              triggering if the trigger condition is DATA. The default data size is 1 byte and
              ranges between 1 and 5. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the data size. The default data size is 1 and the valid range is 1
              to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is DATA. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusEspiCycletype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe`` command.

    **Description:**
        - This command sets or queries the cycle type on command in ESPI bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe {MEMRD32| MEMRD64| MEMWR32| MEMWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| OOBSMBUS| MCTP| FLASHREAD| FLASHWRITe| FLASHERASe| FLSUCCESSNODATa| FLSUCCESSDATa| FLUNSUCCESSNODATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?

    **Info:**
        - ``MEMRD32`` specifies Memory Read 32 as the cycle type to search on.
        - ``MEMRD64`` specifies Memory Read 64 as the cycle type to search on.
        - ``MEMWR32`` specifies Memory Read Write 32 as the cycle type to search on.
        - ``MEMWR64`` specifies Memory Read Write 64 as the cycle type to search on.
        - ``MESSage`` specifies MESSage as the cycle type to search on.
        - ``MSGWITHDATa`` specifies message with Data as the cycle type to search on.
        - ``SUCCESSNODATa`` specifies success without data as the cycle type to search on.
        - ``SUCCESSDATa`` specifies success with data as the cycle type to search on.
        - ``UNSUCCESSNODATa`` specifies unsuccess without data as the cycle type to search on.
        - ``OOBSMBUS`` specifies OOB SMBus as the cycle type to search on.
        - ``MCTP`` specifies MCTP as the cycle type to search on.
        - ``FLASHREAD`` specifies FLASHREAD as the cycle type to search on.
        - ``FLASHWRITe`` specifies FLASHWRITe as the cycle type to search on.
        - ``FLASHERASe`` specifies FLASHERASe as the cycle type to search on.
        - ``FLSUCCESSNODATa`` specifies flash success without data as the cycle type to search on.
        - ``FLSUCCESSDATa`` specifies flash Success with data as the cycle type to search on.
        - ``FLUNSUCCESSNODATa`` specifies flash unsuccess without data as the cycle type to search
          on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a ESPI bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition {STARt| CHINDependent| PERICHANnel| OOBCHANnel| VWCHANnel| FACHANnel| DATa| STATus| ERRors| WAIT| END}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition?

    **Info:**
        - ``STARt`` specifies STARt as the event for ESPI frame to search on.
        - ``CHINDependent`` specifies CHINDependent channel for ESPI protocol to search on.
        - ``PERICHANnel`` specifies peripheral channel for ESPI protocol to search on.
        - ``OOBCHANnel`` specifies OOBCHANnel channel for ESPI protocol to search on.
        - ``VWCHANnel`` specifies virtual wire channel for ESPI protocol to search on.
        - ``FACHANnel`` specifies flash channel for ESPI protocol to search on.
        - ``DATa`` specifies DATa as the field within a ESPI frame to search on.
        - ``STATus`` specifies STATus as the field within a ESPI frame to search on.
        - ``ERRors`` specifies ERRors as the type of error ESPI frame to search on.
        - ``WAIT`` specifies WAIT as the field within a ESPI frame to search on.
        - ``END`` specifies END as the event for a ESPI frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiCommandOpcode(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode`` command.

    **Description:**
        - This command sets or queries the command opcode in ESPI bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode {GETSTATus| GETCONFig| SETCONFig| GETNP| GETPC| PUTNP| PUTPC| PUTIORDSHORt| PUTIOWRSHORt| PUTMEMRD32SHORt| PUTMEMWR32SHORt| PUTOOB| GETOOB| PUTFLASHC| GETFLASHNP| PUTVWIRe| GETVWIRe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?

    **Info:**
        - ``GETSTATus`` specifies get status as the command opcode in ESPI bus to search on.
        - ``GETCONFig`` specifies get configuration as the command opcode in ESPI bus to search on.
        - ``SETCONFig`` specifies set configuration as the command opcode in ESPI bus to search on.
        - ``GETNP`` specifies GETNP as the command opcode in ESPI bus to search on.
        - ``GETPC`` specifies GETPC as the command opcode in ESPI bus to search on.
        - ``PUTNP`` specifies PUTNP as the command opcode in ESPI bus to search on.
        - ``PUTPC`` specifies PUTPC as the command opcode in ESPI bus to search on.
        - ``PUTIORDSHORt`` specifies put IO read short as the command opcode in ESPI bus to search
          on.
        - ``PUTIOWRSHORt`` specifies put IO write short as the command opcode in ESPI bus to search
          on.
        - ``PUTMEMRD32SHORt`` specifies put memory read 32 short as the command opcode in ESPI bus
          to search on.
        - ``PUTMEMWR32SHORt`` specifies put memory write 32 short as the command opcode in ESPI bus
          to search on.
        - ``PUTOOB`` specifies PUTOOB as the command opcode in ESPI bus to search on.
        - ``GETOOB`` specifies GETOOB as the command opcode in ESPI bus to search on.
        - ``PUTFLASHC`` specifies PUTFLASHC as the command opcode in ESPI bus to search on.
        - ``GETFLASHNP`` specifies GETFLASHNP as the command opcode in ESPI bus to search on.
        - ``PUTVWIRe`` specifies put virtual wire as the command opcode in ESPI bus to search on.
        - ``GETVWIRe`` specifies get virtual wire as the command opcode in ESPI bus to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusEspiCommand(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.opcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._opcode = SearchSearchItemTriggerABusEspiCommandOpcode(
            device, f"{self._cmd_syntax}:OPCode"
        )

    @property
    def opcode(self) -> SearchSearchItemTriggerABusEspiCommandOpcode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode`` command.

        **Description:**
            - This command sets or queries the command opcode in ESPI bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode {GETSTATus| GETCONFig| SETCONFig| GETNP| GETPC| PUTNP| PUTPC| PUTIORDSHORt| PUTIOWRSHORt| PUTMEMRD32SHORt| PUTMEMWR32SHORt| PUTOOB| GETOOB| PUTFLASHC| GETFLASHNP| PUTVWIRe| GETVWIRe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode?

        **Info:**
            - ``GETSTATus`` specifies get status as the command opcode in ESPI bus to search on.
            - ``GETCONFig`` specifies get configuration as the command opcode in ESPI bus to search
              on.
            - ``SETCONFig`` specifies set configuration as the command opcode in ESPI bus to search
              on.
            - ``GETNP`` specifies GETNP as the command opcode in ESPI bus to search on.
            - ``GETPC`` specifies GETPC as the command opcode in ESPI bus to search on.
            - ``PUTNP`` specifies PUTNP as the command opcode in ESPI bus to search on.
            - ``PUTPC`` specifies PUTPC as the command opcode in ESPI bus to search on.
            - ``PUTIORDSHORt`` specifies put IO read short as the command opcode in ESPI bus to
              search on.
            - ``PUTIOWRSHORt`` specifies put IO write short as the command opcode in ESPI bus to
              search on.
            - ``PUTMEMRD32SHORt`` specifies put memory read 32 short as the command opcode in ESPI
              bus to search on.
            - ``PUTMEMWR32SHORt`` specifies put memory write 32 short as the command opcode in ESPI
              bus to search on.
            - ``PUTOOB`` specifies PUTOOB as the command opcode in ESPI bus to search on.
            - ``GETOOB`` specifies GETOOB as the command opcode in ESPI bus to search on.
            - ``PUTFLASHC`` specifies PUTFLASHC as the command opcode in ESPI bus to search on.
            - ``GETFLASHNP`` specifies GETFLASHNP as the command opcode in ESPI bus to search on.
            - ``PUTVWIRe`` specifies put virtual wire as the command opcode in ESPI bus to search
              on.
            - ``GETVWIRe`` specifies get virtual wire as the command opcode in ESPI bus to search
              on.
        """  # noqa: E501
        return self._opcode


class SearchSearchItemTriggerABusEspiAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for ESPI triggering if the trigger
          condition is Address. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusEspiAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusEspiAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusEspiAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for ESPI triggering if the trigger
              condition is Address. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusEspi(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess`` command tree.
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition`` command.
        - ``.cycletype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor`` command tree.
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth`` command tree.
        - ``.phase``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe`` command.
        - ``.respcycle``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE`` command tree.
        - ``.smbus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS`` command tree.
        - ``.tag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG`` command tree.
        - ``.virtualwire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusEspiAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._command = SearchSearchItemTriggerABusEspiCommand(
            device, f"{self._cmd_syntax}:COMMAND"
        )
        self._condition = SearchSearchItemTriggerABusEspiCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._cycletype = SearchSearchItemTriggerABusEspiCycletype(
            device, f"{self._cmd_syntax}:CYCLETYPe"
        )
        self._data = SearchSearchItemTriggerABusEspiData(device, f"{self._cmd_syntax}:DATa")
        self._error = SearchSearchItemTriggerABusEspiError(device, f"{self._cmd_syntax}:ERRor")
        self._length = SearchSearchItemTriggerABusEspiLength(device, f"{self._cmd_syntax}:LENGth")
        self._phase = SearchSearchItemTriggerABusEspiPhase(device, f"{self._cmd_syntax}:PHASe")
        self._respcycle = SearchSearchItemTriggerABusEspiRespcycle(
            device, f"{self._cmd_syntax}:RESPCYCLE"
        )
        self._smbus = SearchSearchItemTriggerABusEspiSmbus(device, f"{self._cmd_syntax}:SMBUS")
        self._tag = SearchSearchItemTriggerABusEspiTag(device, f"{self._cmd_syntax}:TAG")
        self._virtualwire = SearchSearchItemTriggerABusEspiVirtualwire(
            device, f"{self._cmd_syntax}:VIRTUALWIRe"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusEspiAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess:VALue`` command.
        """
        return self._address

    @property
    def command(self) -> SearchSearchItemTriggerABusEspiCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.opcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND:OPCode`` command.
        """
        return self._command

    @property
    def condition(self) -> SearchSearchItemTriggerABusEspiCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a ESPI bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI: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:ESPI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition {STARt| CHINDependent| PERICHANnel| OOBCHANnel| VWCHANnel| FACHANnel| DATa| STATus| ERRors| WAIT| END}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition?

        **Info:**
            - ``STARt`` specifies STARt as the event for ESPI frame to search on.
            - ``CHINDependent`` specifies CHINDependent channel for ESPI protocol to search on.
            - ``PERICHANnel`` specifies peripheral channel for ESPI protocol to search on.
            - ``OOBCHANnel`` specifies OOBCHANnel channel for ESPI protocol to search on.
            - ``VWCHANnel`` specifies virtual wire channel for ESPI protocol to search on.
            - ``FACHANnel`` specifies flash channel for ESPI protocol to search on.
            - ``DATa`` specifies DATa as the field within a ESPI frame to search on.
            - ``STATus`` specifies STATus as the field within a ESPI frame to search on.
            - ``ERRors`` specifies ERRors as the type of error ESPI frame to search on.
            - ``WAIT`` specifies WAIT as the field within a ESPI frame to search on.
            - ``END`` specifies END as the event for a ESPI frame to search on.
        """  # noqa: E501
        return self._condition

    @property
    def cycletype(self) -> SearchSearchItemTriggerABusEspiCycletype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe`` command.

        **Description:**
            - This command sets or queries the cycle type on command in ESPI bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe {MEMRD32| MEMRD64| MEMWR32| MEMWR64| MESSage| MSGWITHDATa| SUCCESSNODATa| SUCCESSDATa| UNSUCCESSNODATa| OOBSMBUS| MCTP| FLASHREAD| FLASHWRITe| FLASHERASe| FLSUCCESSNODATa| FLSUCCESSDATa| FLUNSUCCESSNODATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe?

        **Info:**
            - ``MEMRD32`` specifies Memory Read 32 as the cycle type to search on.
            - ``MEMRD64`` specifies Memory Read 64 as the cycle type to search on.
            - ``MEMWR32`` specifies Memory Read Write 32 as the cycle type to search on.
            - ``MEMWR64`` specifies Memory Read Write 64 as the cycle type to search on.
            - ``MESSage`` specifies MESSage as the cycle type to search on.
            - ``MSGWITHDATa`` specifies message with Data as the cycle type to search on.
            - ``SUCCESSNODATa`` specifies success without data as the cycle type to search on.
            - ``SUCCESSDATa`` specifies success with data as the cycle type to search on.
            - ``UNSUCCESSNODATa`` specifies unsuccess without data as the cycle type to search on.
            - ``OOBSMBUS`` specifies OOB SMBus as the cycle type to search on.
            - ``MCTP`` specifies MCTP as the cycle type to search on.
            - ``FLASHREAD`` specifies FLASHREAD as the cycle type to search on.
            - ``FLASHWRITe`` specifies FLASHWRITe as the cycle type to search on.
            - ``FLASHERASe`` specifies FLASHERASe as the cycle type to search on.
            - ``FLSUCCESSNODATa`` specifies flash success without data as the cycle type to search
              on.
            - ``FLSUCCESSDATa`` specifies flash Success with data as the cycle type to search on.
            - ``FLUNSUCCESSNODATa`` specifies flash unsuccess without data as the cycle type to
              search on.
        """  # noqa: E501
        return self._cycletype

    @property
    def data(self) -> SearchSearchItemTriggerABusEspiData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa:VALue`` command.
        """
        return self._data

    @property
    def error(self) -> SearchSearchItemTriggerABusEspiError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def length(self) -> SearchSearchItemTriggerABusEspiLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth:VALue`` command.
        """
        return self._length

    @property
    def phase(self) -> SearchSearchItemTriggerABusEspiPhase:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe`` command.

        **Description:**
            - This command sets or queries the phase in ESPI bus. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe {COMMand| RESPONSE| RESPONSEHEADer| RESPONSENOHEADer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe?

        **Info:**
            - ``COMMand`` specifies command as the field/packet to search on.
            - ``RESPONSE`` specifies response as the field/packet to search on.
            - ``RESPONSEHEADer`` specifies the response header as the field/packet to search on.
            - ``RESPONSENOHEADer`` specifies the response without header as the field/packet to
              search on.
        """  # noqa: E501
        return self._phase

    @property
    def respcycle(self) -> SearchSearchItemTriggerABusEspiRespcycle:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE:TYPe`` command.
        """
        return self._respcycle

    @property
    def smbus(self) -> SearchSearchItemTriggerABusEspiSmbus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.destination``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:DESTination``
              command tree.
            - ``.slave``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS:SLAVe`` command tree.
        """
        return self._smbus

    @property
    def tag(self) -> SearchSearchItemTriggerABusEspiTag:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG:VALue`` command.
        """
        return self._tag

    @property
    def virtualwire(self) -> SearchSearchItemTriggerABusEspiVirtualwire:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.count``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:COUNt`` command
              tree.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:DATa`` command tree.
            - ``.index``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:INDex`` command
              tree.
            - ``.response``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:RESPonse``
              command tree.
            - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe:STATus`` command
              tree.
        """
        return self._virtualwire


class SearchSearchItemTriggerABusDphyYuvY(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y`` command.

    **Description:**
        - This command specifies the Y data string used for DPHY triggering if the trigger condition
          is on YUV packet.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets Y value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYuvV(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V`` command.

    **Description:**
        - This command specifies the V data string used for DPHY triggering if the trigger condition
          is on YUV packet.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets V value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYuvU(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U`` command.

    **Description:**
        - This command specifies the U data string used for DPHY triggering if the trigger condition
          is on YUV packet.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets U value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYuv(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U`` command.
        - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V`` command.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._u = SearchSearchItemTriggerABusDphyYuvU(device, f"{self._cmd_syntax}:U")
        self._v = SearchSearchItemTriggerABusDphyYuvV(device, f"{self._cmd_syntax}:V")
        self._y = SearchSearchItemTriggerABusDphyYuvY(device, f"{self._cmd_syntax}:Y")

    @property
    def u(self) -> SearchSearchItemTriggerABusDphyYuvU:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U`` command.

        **Description:**
            - This command specifies the U data string used for DPHY triggering if the trigger
              condition is on YUV packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets U value is XXXXXXXXXX.
        """
        return self._u

    @property
    def v(self) -> SearchSearchItemTriggerABusDphyYuvV:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V`` command.

        **Description:**
            - This command specifies the V data string used for DPHY triggering if the trigger
              condition is on YUV packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets V value is XXXXXXXXXX.
        """
        return self._v

    @property
    def y(self) -> SearchSearchItemTriggerABusDphyYuvY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y`` command.

        **Description:**
            - This command specifies the Y data string used for DPHY triggering if the trigger
              condition is on YUV packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets Y value is XXXXXXXXXX.
        """
        return self._y


class SearchSearchItemTriggerABusDphyYcbcrY(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y`` command.

    **Description:**
        - This command specifies the Y data string used for DPHY triggering if the trigger condition
          is on YCbCr packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets Y value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYcbcrCr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR`` command.

    **Description:**
        - This command specifies the Cr data string used for DPHY triggering if the trigger
          condition is on YCbCr packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets CR value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYcbcrCb(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB`` command.

    **Description:**
        - This command specifies the Cb data string used for DPHY triggering if the trigger
          condition is on YCbCr packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets CB value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyYcbcr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB`` command.
        - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR`` command.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._cb = SearchSearchItemTriggerABusDphyYcbcrCb(device, f"{self._cmd_syntax}:CB")
        self._cr = SearchSearchItemTriggerABusDphyYcbcrCr(device, f"{self._cmd_syntax}:CR")
        self._y = SearchSearchItemTriggerABusDphyYcbcrY(device, f"{self._cmd_syntax}:Y")

    @property
    def cb(self) -> SearchSearchItemTriggerABusDphyYcbcrCb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB`` command.

        **Description:**
            - This command specifies the Cb data string used for DPHY triggering if the trigger
              condition is on YCbCr packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets CB value is
              XXXXXXXXXX.
        """
        return self._cb

    @property
    def cr(self) -> SearchSearchItemTriggerABusDphyYcbcrCr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR`` command.

        **Description:**
            - This command specifies the Cr data string used for DPHY triggering if the trigger
              condition is on YCbCr packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets CR value is
              XXXXXXXXXX.
        """
        return self._cr

    @property
    def y(self) -> SearchSearchItemTriggerABusDphyYcbcrY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y`` command.

        **Description:**
            - This command specifies the Y data string used for DPHY triggering if the trigger
              condition is on YCbCr packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets Y value is
              XXXXXXXXXX.
        """
        return self._y


class SearchSearchItemTriggerABusDphyWordcountValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue`` command.

    **Description:**
        - This command specifies the word count data string used for DPHY triggering if the trigger
          condition is set on any pixel packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt: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:DPHY:WORDCOUNt:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default word count value is XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyWordcount(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusDphyWordcountValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusDphyWordcountValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue`` command.

        **Description:**
            - This command specifies the word count data string used for DPHY triggering if the
              trigger condition is set on any pixel packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt: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:DPHY:WORDCOUNt:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default word count value is
              XXXXXXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusDphyRedValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue`` command.

    **Description:**
        - This command specifies the red data string used for DPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:RED:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default red value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyRed(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusDphyRedValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusDphyRedValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue`` command.

        **Description:**
            - This command specifies the red data string used for DPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:RED:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default red value is XXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusDphyPixelSearchoption(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion`` command.

    **Description:**
        - This command sets or queries the search pattern type for DPHY bus. The default search
          pattern type value is PIXELVALue.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?

    **Info:**
        - ``PIXELVALue`` specifies PIXELVALue as the field within a DPHY frame to search on.
        - ``PIXELNUMBer`` specifies PIXELNUMBer as the field within a DPHY frame to search on.
    """


class SearchSearchItemTriggerABusDphyPixelNumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer`` command.

    **Description:**
        - This command specifies the pixel number to be used for DPHY triggering if the trigger
          condition is on pixel number pattern. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?

    **Info:**
        - ``<NR1>`` specifies the pixel number. The default pixel number value is 0.
    """


class SearchSearchItemTriggerABusDphyPixel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.number``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer`` command.
        - ``.searchoption``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._number = SearchSearchItemTriggerABusDphyPixelNumber(
            device, f"{self._cmd_syntax}:NUMBer"
        )
        self._searchoption = SearchSearchItemTriggerABusDphyPixelSearchoption(
            device, f"{self._cmd_syntax}:SEARCHOPTion"
        )

    @property
    def number(self) -> SearchSearchItemTriggerABusDphyPixelNumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer`` command.

        **Description:**
            - This command specifies the pixel number to be used for DPHY triggering if the trigger
              condition is on pixel number pattern. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer?

        **Info:**
            - ``<NR1>`` specifies the pixel number. The default pixel number value is 0.
        """
        return self._number

    @property
    def searchoption(self) -> SearchSearchItemTriggerABusDphyPixelSearchoption:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion`` command.

        **Description:**
            - This command sets or queries the search pattern type for DPHY bus. The default search
              pattern type value is PIXELVALue.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion?

        **Info:**
            - ``PIXELVALue`` specifies PIXELVALue as the field within a DPHY frame to search on.
            - ``PIXELNUMBer`` specifies PIXELNUMBer as the field within a DPHY frame to search on.
        """
        return self._searchoption


class SearchSearchItemTriggerABusDphyPacketsType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe`` command.

    **Description:**
        - This command sets or queries the packet type for DPHY bus. The default packet type
          condition is SHORt.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets: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:DPHY:PACKets:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe {SHORt|LONG}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe?

    **Info:**
        - ``SHORt`` specifies SHORt as the field within a DPHY frame to search on. SHORt is the
          default packet type condition.
        - ``LONG`` specifies LONG as the field within a DPHY frame to search on.
    """


class SearchSearchItemTriggerABusDphyPacketsList(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST`` command.

    **Description:**
        - This command sets or queries the packet list for DPHY bus. The default packet list
          condition is VSYNCSTART.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?

    **Info:**
        - ``VSYNCSTART`` specifies VSYNCSTART as the packet within DPHY frame to search on.
        - ``VSYNCEND`` specifies VSYNCEND as the packet within DPHY frame to search on.
        - ``HSYNCSTART`` specifies HSYNCSTART as the packet within DPHY frame to search on.
        - ``HSYNCEND`` specifies HSYNCEND as the packet within DPHY frame to search on.
        - ``EOTP`` specifies EOTP as the packet within DPHY frame to search on.
        - ``COLOROFF`` specifies COLOROFF as the packet within DPHY frame to search on.
        - ``COLORON`` specifies COLORON as the packet within DPHY frame to search on.
        - ``SHUTDOWN`` specifies SHUTDOWN as the packet within DPHY frame to search on.
        - ``TURNON`` specifies TURNON as the packet within DPHY frame to search on.
        - ``GSW`` specifies GSW as the packet within DPHY frame to search on.
        - ``GR`` specifies GR as the packet within DPHY frame to search on.
        - ``COMPRESSION`` specifies COMPRESSION as the packet within DPHY frame to search on.
        - ``SCRAMBLING`` specifies SCRAMBLING as the packet within DPHY frame to search on.
        - ``EXECUTEQUEue`` specifies EXECUTEQUEue as the packet within DPHY frame to search on.
        - ``DCSSW`` specifies DCSSW as the packet within DPHY frame to search on.
        - ``DCSR`` specifies DCSR as the packet within DPHY frame to search on.
        - ``GLONGWRITE`` specifies GLONGWRITE as the packet within DPHY frame to search on.
        - ``DSINULL`` specifies DSINULL as the packet within DPHY frame to search on.
        - ``DSIBLANk`` specifies DSIBLANk as the packet within DPHY frame to search on.
        - ``MAXRETSIZE`` specifies MAXRETSIZE as the packet within DPHY frame to search on.
        - ``DCSGLONGWRITE`` specifies DCSGLONGWRITE as the packet within DPHY frame to search on.
        - ``PICPARameter`` specifies PICPARameter as the packet within DPHY frame to search on.
        - ``COMPRESSEDPSTReam`` specifies COMPRESSEDPSTReam as the packet within DPHY frame to
          search on.
        - ``PPS101010`` specifies PPS101010 as the packet within DPHY frame to search on.
        - ``PPS121212`` specifies PPS121212 as the packet within DPHY frame to search on.
        - ``PPS565`` specifies PPS565 as the packet within DPHY frame to search on.
        - ``PPS666`` specifies PPS666 as the packet within DPHY frame to search on.
        - ``LPS666`` specifies LPS666 as the packet within DPHY frame to search on.
        - ``PPS888`` specifies LPS666 as the packet within DPHY frame to search on.
        - ``YCBCR24`` specifies YCBCR24 as the packet within DPHY frame to search on.
        - ``LPYCBCR24`` specifies LPYCBCR24 as the packet within DPHY frame to search on.
        - ``YCBCR16`` specifies YCBCR16 as the packet within DPHY frame to search on.
        - ``YCBCR12`` specifies YCBCR12 as the packet within DPHY frame to search on.
        - ``ACKNowledge`` specifies ACKNowledge as the packet within DPHY frame to search on.
        - ``ERRORREPort`` specifies ERRORREPort as the packet within DPHY frame to search on.
        - ``GSRR`` specifies GSRR as the packet within DPHY frame to search on.
        - ``GLONGREAD`` specifies GLONGREAD as the packet within DPHY frame to search on.
        - ``DCSLONGREAD`` specifies DCSLONGREAD as the packet within DPHY frame to search on.
        - ``DCSSRR`` specifies DCSSRR as the packet within DPHY frame to search on.
        - ``FRAMESTARt`` specifies FRAMESTARt as the packet within DPHY frame to search on.
        - ``FRAMEEND`` specifies FRAMEEND as the packet within DPHY frame to search on.
        - ``LINESTARt`` specifies LINESTARt as the packet within DPHY frame to search on.
        - ``LINEEND`` specifies LINEEND as the packet within DPHY frame to search on.
        - ``GSP`` specifies GSP as the packet within DPHY frame to search on.
        - ``CSINULL`` specifies CSINULL as the packet within DPHY frame to search on.
        - ``CSIBLANk`` specifies CSIBLANk as the packet within DPHY frame to search on.
        - ``EMBEDDED`` specifies EMBEDDED as the packet within DPHY frame to search on.
        - ``USEREIGHTB`` specifies USEREIGHTB as the packet within DPHY frame to search on.
        - ``RGB565`` specifies RGB565 as the packet within DPHY frame to search on.
        - ``RGB555`` specifies RGB555 as the packet within DPHY frame to search on.
        - ``RGB444`` specifies RGB444 as the packet within DPHY frame to search on.
        - ``RGB666`` specifies RGB666 as the packet within DPHY frame to search on.
        - ``RAW6`` specifies RAW6 as the packet within DPHY frame to search on.
        - ``RAW7`` specifies RAW7 as the packet within DPHY frame to search on.
        - ``RAW8`` specifies RAW8 as the packet within DPHY frame to search on.
        - ``RAW10`` specifies RAW10 as the packet within DPHY frame to search on.
        - ``RAW12`` specifies RAW12 as the packet within DPHY frame to search on.
        - ``RAW14`` specifies RAW14 as the packet within DPHY frame to search on.
        - ``RAW16`` specifies RAW16 as the packet within DPHY frame to search on.
        - ``RAW20`` specifies RAW20 as the packet within DPHY frame to search on.
        - ``RGB888`` specifies RGB888 as the packet within DPHY frame to search on.
        - ``YUV420L8`` specifies YUV420L8 as the packet within DPHY frame to search on.
        - ``YUV8BIT`` specifies YUV8BIT as the packet within DPHY frame to search on.
        - ``YUV422B10`` specifies YUV422B10 as the packet within DPHY frame to search on.
        - ``YUV420B10`` specifies YUV420B10 as the packet within DPHY frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusDphyPackets(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.list``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._list = SearchSearchItemTriggerABusDphyPacketsList(device, f"{self._cmd_syntax}:LIST")
        self._type = SearchSearchItemTriggerABusDphyPacketsType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def list(self) -> SearchSearchItemTriggerABusDphyPacketsList:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST`` command.

        **Description:**
            - This command sets or queries the packet list for DPHY bus. The default packet list
              condition is VSYNCSTART.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST?

        **Info:**
            - ``VSYNCSTART`` specifies VSYNCSTART as the packet within DPHY frame to search on.
            - ``VSYNCEND`` specifies VSYNCEND as the packet within DPHY frame to search on.
            - ``HSYNCSTART`` specifies HSYNCSTART as the packet within DPHY frame to search on.
            - ``HSYNCEND`` specifies HSYNCEND as the packet within DPHY frame to search on.
            - ``EOTP`` specifies EOTP as the packet within DPHY frame to search on.
            - ``COLOROFF`` specifies COLOROFF as the packet within DPHY frame to search on.
            - ``COLORON`` specifies COLORON as the packet within DPHY frame to search on.
            - ``SHUTDOWN`` specifies SHUTDOWN as the packet within DPHY frame to search on.
            - ``TURNON`` specifies TURNON as the packet within DPHY frame to search on.
            - ``GSW`` specifies GSW as the packet within DPHY frame to search on.
            - ``GR`` specifies GR as the packet within DPHY frame to search on.
            - ``COMPRESSION`` specifies COMPRESSION as the packet within DPHY frame to search on.
            - ``SCRAMBLING`` specifies SCRAMBLING as the packet within DPHY frame to search on.
            - ``EXECUTEQUEue`` specifies EXECUTEQUEue as the packet within DPHY frame to search on.
            - ``DCSSW`` specifies DCSSW as the packet within DPHY frame to search on.
            - ``DCSR`` specifies DCSR as the packet within DPHY frame to search on.
            - ``GLONGWRITE`` specifies GLONGWRITE as the packet within DPHY frame to search on.
            - ``DSINULL`` specifies DSINULL as the packet within DPHY frame to search on.
            - ``DSIBLANk`` specifies DSIBLANk as the packet within DPHY frame to search on.
            - ``MAXRETSIZE`` specifies MAXRETSIZE as the packet within DPHY frame to search on.
            - ``DCSGLONGWRITE`` specifies DCSGLONGWRITE as the packet within DPHY frame to search
              on.
            - ``PICPARameter`` specifies PICPARameter as the packet within DPHY frame to search on.
            - ``COMPRESSEDPSTReam`` specifies COMPRESSEDPSTReam as the packet within DPHY frame to
              search on.
            - ``PPS101010`` specifies PPS101010 as the packet within DPHY frame to search on.
            - ``PPS121212`` specifies PPS121212 as the packet within DPHY frame to search on.
            - ``PPS565`` specifies PPS565 as the packet within DPHY frame to search on.
            - ``PPS666`` specifies PPS666 as the packet within DPHY frame to search on.
            - ``LPS666`` specifies LPS666 as the packet within DPHY frame to search on.
            - ``PPS888`` specifies LPS666 as the packet within DPHY frame to search on.
            - ``YCBCR24`` specifies YCBCR24 as the packet within DPHY frame to search on.
            - ``LPYCBCR24`` specifies LPYCBCR24 as the packet within DPHY frame to search on.
            - ``YCBCR16`` specifies YCBCR16 as the packet within DPHY frame to search on.
            - ``YCBCR12`` specifies YCBCR12 as the packet within DPHY frame to search on.
            - ``ACKNowledge`` specifies ACKNowledge as the packet within DPHY frame to search on.
            - ``ERRORREPort`` specifies ERRORREPort as the packet within DPHY frame to search on.
            - ``GSRR`` specifies GSRR as the packet within DPHY frame to search on.
            - ``GLONGREAD`` specifies GLONGREAD as the packet within DPHY frame to search on.
            - ``DCSLONGREAD`` specifies DCSLONGREAD as the packet within DPHY frame to search on.
            - ``DCSSRR`` specifies DCSSRR as the packet within DPHY frame to search on.
            - ``FRAMESTARt`` specifies FRAMESTARt as the packet within DPHY frame to search on.
            - ``FRAMEEND`` specifies FRAMEEND as the packet within DPHY frame to search on.
            - ``LINESTARt`` specifies LINESTARt as the packet within DPHY frame to search on.
            - ``LINEEND`` specifies LINEEND as the packet within DPHY frame to search on.
            - ``GSP`` specifies GSP as the packet within DPHY frame to search on.
            - ``CSINULL`` specifies CSINULL as the packet within DPHY frame to search on.
            - ``CSIBLANk`` specifies CSIBLANk as the packet within DPHY frame to search on.
            - ``EMBEDDED`` specifies EMBEDDED as the packet within DPHY frame to search on.
            - ``USEREIGHTB`` specifies USEREIGHTB as the packet within DPHY frame to search on.
            - ``RGB565`` specifies RGB565 as the packet within DPHY frame to search on.
            - ``RGB555`` specifies RGB555 as the packet within DPHY frame to search on.
            - ``RGB444`` specifies RGB444 as the packet within DPHY frame to search on.
            - ``RGB666`` specifies RGB666 as the packet within DPHY frame to search on.
            - ``RAW6`` specifies RAW6 as the packet within DPHY frame to search on.
            - ``RAW7`` specifies RAW7 as the packet within DPHY frame to search on.
            - ``RAW8`` specifies RAW8 as the packet within DPHY frame to search on.
            - ``RAW10`` specifies RAW10 as the packet within DPHY frame to search on.
            - ``RAW12`` specifies RAW12 as the packet within DPHY frame to search on.
            - ``RAW14`` specifies RAW14 as the packet within DPHY frame to search on.
            - ``RAW16`` specifies RAW16 as the packet within DPHY frame to search on.
            - ``RAW20`` specifies RAW20 as the packet within DPHY frame to search on.
            - ``RGB888`` specifies RGB888 as the packet within DPHY frame to search on.
            - ``YUV420L8`` specifies YUV420L8 as the packet within DPHY frame to search on.
            - ``YUV8BIT`` specifies YUV8BIT as the packet within DPHY frame to search on.
            - ``YUV422B10`` specifies YUV422B10 as the packet within DPHY frame to search on.
            - ``YUV420B10`` specifies YUV420B10 as the packet within DPHY frame to search on.
        """  # noqa: E501
        return self._list

    @property
    def type(self) -> SearchSearchItemTriggerABusDphyPacketsType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe`` command.

        **Description:**
            - This command sets or queries the packet type for DPHY bus. The default packet type
              condition is SHORt.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets: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:DPHY:PACKets:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe {SHORt|LONG}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe?

        **Info:**
            - ``SHORt`` specifies SHORt as the field within a DPHY frame to search on. SHORt is the
              default packet type condition.
            - ``LONG`` specifies LONG as the field within a DPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusDphyModeType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe`` command.

    **Description:**
        - This command sets or queries the mode type for DPHY bus. The default mode type condition
          is HS.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe: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:DPHY:MODe:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe {HS|LP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe?

    **Info:**
        - ``HS`` specifies HS as the mode within a DPHY frame to search on. HS is default mode type
          condition.
        - ``LP`` specifies LP as the mode within a DPHY frame to search on.
    """


class SearchSearchItemTriggerABusDphyMode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusDphyModeType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusDphyModeType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe`` command.

        **Description:**
            - This command sets or queries the mode type for DPHY bus. The default mode type
              condition is HS.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe: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:DPHY:MODe:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe {HS|LP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe?

        **Info:**
            - ``HS`` specifies HS as the mode within a DPHY frame to search on. HS is default mode
              type condition.
            - ``LP`` specifies LP as the mode within a DPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusDphyGreenValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue`` command.

    **Description:**
        - This command specifies the green data string used for DPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:GREen:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default green value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyGreen(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusDphyGreenValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusDphyGreenValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue`` command.

        **Description:**
            - This command specifies the green data string used for DPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:GREen:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default green value is XXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusDphyEscapemodeCommand(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand`` command.

    **Description:**
        - This command sets or queries the escape mode command type for DPHY bus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?

    **Info:**
        - ``LPDT`` specifies LPDT as the field within a DPHY frame to search on.
        - ``ULPS`` specifies ULPS as the field within a DPHY frame to search on.
        - ``RESETTRIGger`` specifies RESETTRIGger as the field within a DPHY frame to search on.
        - ``ANY`` specifies ANY as the field within a DPHY frame to search on. ANY is the default
          value.
    """


class SearchSearchItemTriggerABusDphyEscapemode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = SearchSearchItemTriggerABusDphyEscapemodeCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )

    @property
    def command(self) -> SearchSearchItemTriggerABusDphyEscapemodeCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand`` command.

        **Description:**
            - This command sets or queries the escape mode command type for DPHY bus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand?

        **Info:**
            - ``LPDT`` specifies LPDT as the field within a DPHY frame to search on.
            - ``ULPS`` specifies ULPS as the field within a DPHY frame to search on.
            - ``RESETTRIGger`` specifies RESETTRIGger as the field within a DPHY frame to search on.
            - ``ANY`` specifies ANY as the field within a DPHY frame to search on. ANY is the
              default value.
        """
        return self._command


class SearchSearchItemTriggerABusDphyErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for DPHY bus. The default error type condition
          is ANY.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor: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:DPHY:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe {ANY|ECC|CRC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe?

    **Info:**
        - ``ANY`` specifies ANY as the field within a DPHY frame to search on.
        - ``ECC`` specifies ECC as the field within a DPHY frame to search on.
        - ``CRC`` specifies CRC as the field within a DPHY frame to search on.
    """


class SearchSearchItemTriggerABusDphyError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusDphyErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusDphyErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for DPHY bus. The default error type
              condition is ANY.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor: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:DPHY:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe {ANY|ECC|CRC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe?

        **Info:**
            - ``ANY`` specifies ANY as the field within a DPHY frame to search on.
            - ``ECC`` specifies ECC as the field within a DPHY frame to search on.
            - ``CRC`` specifies CRC as the field within a DPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusDphyDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for DPHY triggering if the trigger
          condition is DATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an DPHY
          trigger if the trigger condition is DATA. The default data size is 1 byte and ranges
          between 1 and 5. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size.
    """


class SearchSearchItemTriggerABusDphyData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusDphyDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusDphyDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> SearchSearchItemTriggerABusDphyDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an DPHY
              trigger if the trigger condition is DATA. The default data size is 1 byte and ranges
              between 1 and 5. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the data size.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusDphyDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for DPHY triggering if the trigger
              condition is DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusDphyCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for an DPHY bus. The default trigger on
          condition is SOT.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition?

    **Info:**
        - ``SOT`` specifies SOT as the field within a DPHY frame to search on.
        - ``EOT`` specifies EOT as the field within a DPHY frame to search on.
        - ``DATa`` specifies DATa as the field within a DPHY frame to search on.
        - ``EOTPDATa`` specifies EOTPDATa as the field within a DPHY frame to search on.
        - ``OPTIONALPARam`` specifies OPTIONALPARam as the field within a DPHY frame to search on.
        - ``SCRambling`` specifies SCRambling as the field within a DPHY frame to search on.
        - ``COMPression`` specifies COMPression as the field within a DPHY frame to search on.
        - ``PACKets`` specifies PACKets as the field within a DPHY frame to search on.
        - ``BUSTURNAROUnd`` specifies BUSTURNAROUnd as the field within a DPHY frame to search on.
        - ``ESCAPEMODe`` specifies ESCAPEMODe as the field within a DPHY frame to search on.
        - ``STop`` specifies STop as the field within a DPHY frame to search on.
        - ``ERRors`` specifies ERRors as the field within a DPHY frame to search on.
        - ``MODe`` specifies MODe as the field within a DPHY frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusDphyBlueValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue`` command.

    **Description:**
        - This command specifies the blue data string used for DPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:BLUe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default blue value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusDphyBlue(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusDphyBlueValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusDphyBlueValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue`` command.

        **Description:**
            - This command specifies the blue data string used for DPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:BLUe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default blue value is XXXXXXXXXX.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusDphy(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor`` command tree.
        - ``.escapemode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe`` command tree.
        - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen`` command tree.
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe`` command tree.
        - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets`` command tree.
        - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel`` command tree.
        - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED`` command tree.
        - ``.wordcount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt`` command tree.
        - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR`` command tree.
        - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blue = SearchSearchItemTriggerABusDphyBlue(device, f"{self._cmd_syntax}:BLUe")
        self._condition = SearchSearchItemTriggerABusDphyCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusDphyData(device, f"{self._cmd_syntax}:DATa")
        self._error = SearchSearchItemTriggerABusDphyError(device, f"{self._cmd_syntax}:ERRor")
        self._escapemode = SearchSearchItemTriggerABusDphyEscapemode(
            device, f"{self._cmd_syntax}:ESCAPEMODe"
        )
        self._green = SearchSearchItemTriggerABusDphyGreen(device, f"{self._cmd_syntax}:GREen")
        self._mode = SearchSearchItemTriggerABusDphyMode(device, f"{self._cmd_syntax}:MODe")
        self._packets = SearchSearchItemTriggerABusDphyPackets(
            device, f"{self._cmd_syntax}:PACKets"
        )
        self._pixel = SearchSearchItemTriggerABusDphyPixel(device, f"{self._cmd_syntax}:PIXel")
        self._red = SearchSearchItemTriggerABusDphyRed(device, f"{self._cmd_syntax}:RED")
        self._wordcount = SearchSearchItemTriggerABusDphyWordcount(
            device, f"{self._cmd_syntax}:WORDCOUNt"
        )
        self._ycbcr = SearchSearchItemTriggerABusDphyYcbcr(device, f"{self._cmd_syntax}:YCBCR")
        self._yuv = SearchSearchItemTriggerABusDphyYuv(device, f"{self._cmd_syntax}:YUV")

    @property
    def blue(self) -> SearchSearchItemTriggerABusDphyBlue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe:VALue`` command.
        """
        return self._blue

    @property
    def condition(self) -> SearchSearchItemTriggerABusDphyCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for an DPHY bus. The default
              trigger on condition is SOT.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY: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:DPHY:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition?

        **Info:**
            - ``SOT`` specifies SOT as the field within a DPHY frame to search on.
            - ``EOT`` specifies EOT as the field within a DPHY frame to search on.
            - ``DATa`` specifies DATa as the field within a DPHY frame to search on.
            - ``EOTPDATa`` specifies EOTPDATa as the field within a DPHY frame to search on.
            - ``OPTIONALPARam`` specifies OPTIONALPARam as the field within a DPHY frame to search
              on.
            - ``SCRambling`` specifies SCRambling as the field within a DPHY frame to search on.
            - ``COMPression`` specifies COMPression as the field within a DPHY frame to search on.
            - ``PACKets`` specifies PACKets as the field within a DPHY frame to search on.
            - ``BUSTURNAROUnd`` specifies BUSTURNAROUnd as the field within a DPHY frame to search
              on.
            - ``ESCAPEMODe`` specifies ESCAPEMODe as the field within a DPHY frame to search on.
            - ``STop`` specifies STop as the field within a DPHY frame to search on.
            - ``ERRors`` specifies ERRors as the field within a DPHY frame to search on.
            - ``MODe`` specifies MODe as the field within a DPHY frame to search on.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusDphyData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa:VALue`` command.
        """
        return self._data

    @property
    def error(self) -> SearchSearchItemTriggerABusDphyError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def escapemode(self) -> SearchSearchItemTriggerABusDphyEscapemode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe:COMMand`` command.
        """
        return self._escapemode

    @property
    def green(self) -> SearchSearchItemTriggerABusDphyGreen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen:VALue`` command.
        """
        return self._green

    @property
    def mode(self) -> SearchSearchItemTriggerABusDphyMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe:TYPe`` command.
        """
        return self._mode

    @property
    def packets(self) -> SearchSearchItemTriggerABusDphyPackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.list``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:LIST`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets:TYPe`` command.
        """
        return self._packets

    @property
    def pixel(self) -> SearchSearchItemTriggerABusDphyPixel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.number``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:NUMBer`` command.
            - ``.searchoption``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel:SEARCHOPTion``
              command.
        """
        return self._pixel

    @property
    def red(self) -> SearchSearchItemTriggerABusDphyRed:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED:VALue`` command.
        """
        return self._red

    @property
    def wordcount(self) -> SearchSearchItemTriggerABusDphyWordcount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt:VALue`` command.
        """
        return self._wordcount

    @property
    def ycbcr(self) -> SearchSearchItemTriggerABusDphyYcbcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CB`` command.
            - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:CR`` command.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR:Y`` command.
        """
        return self._ycbcr

    @property
    def yuv(self) -> SearchSearchItemTriggerABusDphyYuv:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:U`` command.
            - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:V`` command.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV:Y`` command.
        """
        return self._yuv


class SearchSearchItemTriggerABusCxpiNetmnWakeupind(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND`` command.

    **Description:**
        - This command sets or queries the Wakeup Status in CXPI bus. The search number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND {ON|OFF|EITHer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?

    **Info:**
        - ``ON`` specifies the Wakeup Status as on. The default status is on.
        - ``OFF`` specifies the Wakeup Status as off.
        - ``EITHer`` specifies the Wakeup Status as either.
    """


class SearchSearchItemTriggerABusCxpiNetmnSleepind(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND`` command.

    **Description:**
        - This command sets or queries the Sleep Status in CXPI bus. The search number is specified
          by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND {ON|OFF|EITHer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?

    **Info:**
        - ``ON`` specifies the Sleep Status as on. The default status is on.
        - ``OFF`` specifies the Sleep Status as off.
        - ``EITHer`` specifies the Sleep Status as either.
    """


class SearchSearchItemTriggerABusCxpiNetmn(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.sleepind``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND`` command.
        - ``.wakeupind``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._sleepind = SearchSearchItemTriggerABusCxpiNetmnSleepind(
            device, f"{self._cmd_syntax}:SLEEPIND"
        )
        self._wakeupind = SearchSearchItemTriggerABusCxpiNetmnWakeupind(
            device, f"{self._cmd_syntax}:WAKEUPIND"
        )

    @property
    def sleepind(self) -> SearchSearchItemTriggerABusCxpiNetmnSleepind:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND`` command.

        **Description:**
            - This command sets or queries the Sleep Status in CXPI bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND {ON|OFF|EITHer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND?

        **Info:**
            - ``ON`` specifies the Sleep Status as on. The default status is on.
            - ``OFF`` specifies the Sleep Status as off.
            - ``EITHer`` specifies the Sleep Status as either.
        """
        return self._sleepind

    @property
    def wakeupind(self) -> SearchSearchItemTriggerABusCxpiNetmnWakeupind:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND`` command.

        **Description:**
            - This command sets or queries the Wakeup Status in CXPI bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND {ON|OFF|EITHer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND?

        **Info:**
            - ``ON`` specifies the Wakeup Status as on. The default status is on.
            - ``OFF`` specifies the Wakeup Status as off.
            - ``EITHer`` specifies the Wakeup Status as either.
        """
        return self._wakeupind


class SearchSearchItemTriggerABusCxpiFrameType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe`` command.

    **Description:**
        - This command sets or queries the frame type in CXPI bus. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe: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:CXPI:FRAMe:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe {NORMal| SLEep| LONG| POLLINGNORMal| POLLINGLONG}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe?

    **Info:**
        - ``NORMal`` specifies NORMal as the packet type CXPI frame to search on. The default frame
          type is normal.
        - ``SLEep`` specifies SLEep as the packet type CXPI frame to search on.
        - ``LONG`` specifies LONG as the packet type CXPI frame to search on.
        - ``POLLINGNORMal`` specifies POLLINGNORMal as the packet type CXPI frame to search on.
        - ``POLLINGLONG`` specifies POLLINGLONG as the packet type CXPI frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusCxpiFrame(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusCxpiFrameType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusCxpiFrameType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe`` command.

        **Description:**
            - This command sets or queries the frame type in CXPI bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe: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:CXPI:FRAMe:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe {NORMal| SLEep| LONG| POLLINGNORMal| POLLINGLONG}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe?

        **Info:**
            - ``NORMal`` specifies NORMal as the packet type CXPI frame to search on. The default
              frame type is normal.
            - ``SLEep`` specifies SLEep as the packet type CXPI frame to search on.
            - ``LONG`` specifies LONG as the packet type CXPI frame to search on.
            - ``POLLINGNORMal`` specifies POLLINGNORMal as the packet type CXPI frame to search on.
            - ``POLLINGLONG`` specifies POLLINGLONG as the packet type CXPI frame to search on.
        """  # noqa: E501
        return self._type


class SearchSearchItemTriggerABusCxpiFrameidValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue`` command.

    **Description:**
        - This command specifies the binary frameId string used for CXPI triggering if the trigger
          condition is FRAMEID. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID: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:CXPI:FRAMEID:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default size and value of frame ID is 7 bits
          and 'XXX XXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCxpiFrameid(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCxpiFrameidValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusCxpiFrameidValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue`` command.

        **Description:**
            - This command specifies the binary frameId string used for CXPI triggering if the
              trigger condition is FRAMEID. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID: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:CXPI:FRAMEID:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default size and value of frame ID is 7
              bits and 'XXX XXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusCxpiExtdlcValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue`` command.

    **Description:**
        - This command specifies the binary DLC string used for CXPI triggering if the trigger
          condition is Ext DLC. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC: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:CXPI:EXTDLC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default size and value of Ext DLC is 8 bits and
          'XXXX XXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCxpiExtdlc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCxpiExtdlcValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusCxpiExtdlcValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue`` command.

        **Description:**
            - This command specifies the binary DLC string used for CXPI triggering if the trigger
              condition is Ext DLC. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC: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:CXPI:EXTDLC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default size and value of Ext DLC is 8 bits
              and 'XXXX XXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusCxpiErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe`` command.

    **Description:**
        - This command sets or queries the Error Type in CXPI bus. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR: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:CXPI:ERROR:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe {CRC| PARity| FRAMe| IBS| ANY}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe?

    **Info:**
        - ``CRC`` specifies CRC as the field within a CXPI frame to search on.
        - ``PARity`` specifies PARity as the field within a CXPI frame to search on. The default
          Error Type is Parity.
        - ``FRAMe`` specifies FRAMe as the field within a CXPI frame to search on.
        - ``IBS`` specifies IBS as the field within a CXPI frame to search on.
        - ``ANY`` specifies ANY as any type of error within a CXPI frame to search on.
    """


class SearchSearchItemTriggerABusCxpiError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusCxpiErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusCxpiErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe`` command.

        **Description:**
            - This command sets or queries the Error Type in CXPI bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR: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:CXPI:ERROR:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe {CRC| PARity| FRAMe| IBS| ANY}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe?

        **Info:**
            - ``CRC`` specifies CRC as the field within a CXPI frame to search on.
            - ``PARity`` specifies PARity as the field within a CXPI frame to search on. The default
              Error Type is Parity.
            - ``FRAMe`` specifies FRAMe as the field within a CXPI frame to search on.
            - ``IBS`` specifies IBS as the field within a CXPI frame to search on.
            - ``ANY`` specifies ANY as any type of error within a CXPI frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusCxpiDlcValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue`` command.

    **Description:**
        - This command specifies the binary DLC string used for CXPI triggering if the trigger
          condition is DLC. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC: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:CXPI:DLC:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default size and value of DLC is 4 bits and
          'XXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCxpiDlc(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCxpiDlcValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusCxpiDlcValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue`` command.

        **Description:**
            - This command specifies the binary DLC string used for CXPI triggering if the trigger
              condition is DLC. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC: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:CXPI:DLC:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default size and value of DLC is 4 bits and
              'XXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusCxpiDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for CXPI triggering if the trigger
          condition is DATA. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default size and value for DATA is 8 bits and
          'XXXX XXXX' respectively.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCxpiDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for CXPI
          triggering if the trigger condition is DATA. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size. The default data size is 1 and the calid range is 1 to
          5.
    """


class SearchSearchItemTriggerABusCxpiData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusCxpiDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusCxpiDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> SearchSearchItemTriggerABusCxpiDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for CXPI
              triggering if the trigger condition is DATA. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the data size. The default data size is 1 and the calid range is 1
              to 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusCxpiDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for CXPI triggering if the trigger
              condition is DATA. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default size and value for DATA is 8 bits
              and 'XXXX XXXX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusCxpiCounterValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue`` command.

    **Description:**
        - This command specifies the binary counter string used for CXPI triggering if the trigger
          condition is COUNTER. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter: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:CXPI:COUNter:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue <Qstring>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue?

    **Info:**
        - ``<Qstring>`` specifies the binary counter string. The default size and value Counter is 2
          bits and 'XX' respectively.
    """


class SearchSearchItemTriggerABusCxpiCounter(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCxpiCounterValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusCxpiCounterValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue`` command.

        **Description:**
            - This command specifies the binary counter string used for CXPI triggering if the
              trigger condition is COUNTER. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter: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:CXPI:COUNter:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue <Qstring>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue?

        **Info:**
            - ``<Qstring>`` specifies the binary counter string. The default size and value Counter
              is 2 bits and 'XX' respectively.
        """
        return self._value


class SearchSearchItemTriggerABusCxpiCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for a CXPI bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition {STARt| FRAMes| FRAMEID| PTYPe| DLC| EXTDLC| NETMN| COUNter| DATa| ERRors}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition?

    **Info:**
        - ``STARt`` specifies STARt as the event for a CXPI frame to search on. This is the default
          value.
        - ``FRAMes`` specifies FRAMes as the frame types for CXPI packets to search on.
        - ``FRAMEID`` specifies FRAMEID as the field within a CXPI frame to search on.
        - ``PTYPe`` specifies PTYPe as the field within a CXPI frame to search on.
        - ``DLC`` specifies DLC as the field within a CXPI frame to search on.
        - ``EXTDLC`` specifies EXTDLC as the field within a CXPI frame to search on.
        - ``NETMN`` specifies NETMN as the field within a CXPI frame to search on.
        - ``COUNter`` specifies COUNter as the field within a CXPI frame to search on.
        - ``DATa`` specifies DATa as the field within a CXPI frame to search on.
        - ``ERRors`` specifies ERRors as type of error within a CXPI frame to search on.
    """  # noqa: E501


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusCxpi(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition`` command.
        - ``.counter``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter`` command tree.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa`` command tree.
        - ``.dlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR`` command tree.
        - ``.extdlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC`` command tree.
        - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID`` command tree.
        - ``.frame``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe`` command tree.
        - ``.netmn``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusCxpiCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._counter = SearchSearchItemTriggerABusCxpiCounter(
            device, f"{self._cmd_syntax}:COUNter"
        )
        self._data = SearchSearchItemTriggerABusCxpiData(device, f"{self._cmd_syntax}:DATa")
        self._dlc = SearchSearchItemTriggerABusCxpiDlc(device, f"{self._cmd_syntax}:DLC")
        self._error = SearchSearchItemTriggerABusCxpiError(device, f"{self._cmd_syntax}:ERROR")
        self._extdlc = SearchSearchItemTriggerABusCxpiExtdlc(device, f"{self._cmd_syntax}:EXTDLC")
        self._frameid = SearchSearchItemTriggerABusCxpiFrameid(
            device, f"{self._cmd_syntax}:FRAMEID"
        )
        self._frame = SearchSearchItemTriggerABusCxpiFrame(device, f"{self._cmd_syntax}:FRAMe")
        self._netmn = SearchSearchItemTriggerABusCxpiNetmn(device, f"{self._cmd_syntax}:NETMN")

    @property
    def condition(self) -> SearchSearchItemTriggerABusCxpiCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for a CXPI bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI: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:CXPI:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition {STARt| FRAMes| FRAMEID| PTYPe| DLC| EXTDLC| NETMN| COUNter| DATa| ERRors}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition?

        **Info:**
            - ``STARt`` specifies STARt as the event for a CXPI frame to search on. This is the
              default value.
            - ``FRAMes`` specifies FRAMes as the frame types for CXPI packets to search on.
            - ``FRAMEID`` specifies FRAMEID as the field within a CXPI frame to search on.
            - ``PTYPe`` specifies PTYPe as the field within a CXPI frame to search on.
            - ``DLC`` specifies DLC as the field within a CXPI frame to search on.
            - ``EXTDLC`` specifies EXTDLC as the field within a CXPI frame to search on.
            - ``NETMN`` specifies NETMN as the field within a CXPI frame to search on.
            - ``COUNter`` specifies COUNter as the field within a CXPI frame to search on.
            - ``DATa`` specifies DATa as the field within a CXPI frame to search on.
            - ``ERRors`` specifies ERRors as type of error within a CXPI frame to search on.
        """  # noqa: E501
        return self._condition

    @property
    def counter(self) -> SearchSearchItemTriggerABusCxpiCounter:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter:VALue`` command.
        """
        return self._counter

    @property
    def data(self) -> SearchSearchItemTriggerABusCxpiData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa:VALue`` command.
        """
        return self._data

    @property
    def dlc(self) -> SearchSearchItemTriggerABusCxpiDlc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC:VALue`` command.
        """
        return self._dlc

    @property
    def error(self) -> SearchSearchItemTriggerABusCxpiError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR:TYPe`` command.
        """
        return self._error

    @property
    def extdlc(self) -> SearchSearchItemTriggerABusCxpiExtdlc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC:VALue`` command.
        """
        return self._extdlc

    @property
    def frameid(self) -> SearchSearchItemTriggerABusCxpiFrameid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID:VALue`` command.
        """
        return self._frameid

    @property
    def frame(self) -> SearchSearchItemTriggerABusCxpiFrame:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe:TYPe`` command.
        """
        return self._frame

    @property
    def netmn(self) -> SearchSearchItemTriggerABusCxpiNetmn:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.sleepind``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:SLEEPIND`` command.
            - ``.wakeupind``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN:WAKEUPIND`` command.
        """
        return self._netmn


class SearchSearchItemTriggerABusCphyYuvY(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y`` command.

    **Description:**
        - This command specifies the Y data string used for CPHY triggering if the trigger condition
          is on YUV packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets Y value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYuvV(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V`` command.

    **Description:**
        - This command specifies the V data string used for CPHY triggering if the trigger condition
          is on YUV packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets V value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYuvU(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U`` command.

    **Description:**
        - This command specifies the U data string used for CPHY triggering if the trigger condition
          is on YUV packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?

    **Info:**
        - ``<QString>`` is the identifier value. The default YUV packets U value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYuv(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U`` command.
        - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V`` command.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._u = SearchSearchItemTriggerABusCphyYuvU(device, f"{self._cmd_syntax}:U")
        self._v = SearchSearchItemTriggerABusCphyYuvV(device, f"{self._cmd_syntax}:V")
        self._y = SearchSearchItemTriggerABusCphyYuvY(device, f"{self._cmd_syntax}:Y")

    @property
    def u(self) -> SearchSearchItemTriggerABusCphyYuvU:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U`` command.

        **Description:**
            - This command specifies the U data string used for CPHY triggering if the trigger
              condition is on YUV packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets U value is XXXXXXXXXX.
        """
        return self._u

    @property
    def v(self) -> SearchSearchItemTriggerABusCphyYuvV:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V`` command.

        **Description:**
            - This command specifies the V data string used for CPHY triggering if the trigger
              condition is on YUV packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets V value is XXXXXXXXXX.
        """
        return self._v

    @property
    def y(self) -> SearchSearchItemTriggerABusCphyYuvY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y`` command.

        **Description:**
            - This command specifies the Y data string used for CPHY triggering if the trigger
              condition is on YUV packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y?

        **Info:**
            - ``<QString>`` is the identifier value. The default YUV packets Y value is XXXXXXXXXX.
        """
        return self._y


class SearchSearchItemTriggerABusCphyYcbcrY(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y`` command.

    **Description:**
        - This command specifies the Y data string used for CPHY triggering if the trigger condition
          is on YCbCr packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets Y value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYcbcrCr(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR`` command.

    **Description:**
        - This command specifies the Cr data string used for CPHY triggering if the trigger
          condition is on YCbCr packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets CR value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYcbcrCb(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB`` command.

    **Description:**
        - This command specifies the Cb data string used for CPHY triggering if the trigger
          condition is on YCbCr packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?`` query and raise an AssertionError if the
          returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?

    **Info:**
        - ``<QString>`` is the identifier value. The default YCBCR packets CB value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyYcbcr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB`` command.
        - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR`` command.
        - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._cb = SearchSearchItemTriggerABusCphyYcbcrCb(device, f"{self._cmd_syntax}:CB")
        self._cr = SearchSearchItemTriggerABusCphyYcbcrCr(device, f"{self._cmd_syntax}:CR")
        self._y = SearchSearchItemTriggerABusCphyYcbcrY(device, f"{self._cmd_syntax}:Y")

    @property
    def cb(self) -> SearchSearchItemTriggerABusCphyYcbcrCb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB`` command.

        **Description:**
            - This command specifies the Cb data string used for CPHY triggering if the trigger
              condition is on YCbCr packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets CB value is
              XXXXXXXXXX.
        """
        return self._cb

    @property
    def cr(self) -> SearchSearchItemTriggerABusCphyYcbcrCr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR`` command.

        **Description:**
            - This command specifies the Cr data string used for CPHY triggering if the trigger
              condition is on YCbCr packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets CR value is
              XXXXXXXXXX.
        """
        return self._cr

    @property
    def y(self) -> SearchSearchItemTriggerABusCphyYcbcrY:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y`` command.

        **Description:**
            - This command specifies the Y data string used for CPHY triggering if the trigger
              condition is on YCbCr packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?`` query and raise an AssertionError if
              the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y?

        **Info:**
            - ``<QString>`` is the identifier value. The default YCBCR packets Y value is
              XXXXXXXXXX.
        """
        return self._y


class SearchSearchItemTriggerABusCphyWordcountValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue`` command.

    **Description:**
        - This command specifies the word count data string used for CPHY triggering if the trigger
          condition is on any rgb/ycbcr/yuv packet. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt: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:CPHY:WORDCOUNt:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue?

    **Info:**
        - ``<QString>`` specifies the word count data string. The default data value is
          XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyWordcount(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCphyWordcountValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyWordcountValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue`` command.

        **Description:**
            - This command specifies the word count data string used for CPHY triggering if the
              trigger condition is on any rgb/ycbcr/yuv packet. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt: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:CPHY:WORDCOUNt:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue?

        **Info:**
            - ``<QString>`` specifies the word count data string. The default data value is
              XXXXXXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphyWordValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for CPHY triggering if the trigger
          condition is Word. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD: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:CPHY:WORD:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue?

    **Info:**
        - ``<QString>`` specifies the binary data string. The default data value is
          XXXXXXXXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyWordSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe`` command.

    **Description:**
        - This command specifies the length of the word string in bytes to be used for an CPHY
          trigger if the trigger condition is WORD. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD: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:CPHY:WORD:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe?

    **Info:**
        - ``<NR1>`` specifies the length of the data string. The default word size is 1 byte and
          otherwise ranges between 1 and 5.
    """


class SearchSearchItemTriggerABusCphyWord(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusCphyWordSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusCphyWordValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> SearchSearchItemTriggerABusCphyWordSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe`` command.

        **Description:**
            - This command specifies the length of the word string in bytes to be used for an CPHY
              trigger if the trigger condition is WORD. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD: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:CPHY:WORD:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe?

        **Info:**
            - ``<NR1>`` specifies the length of the data string. The default word size is 1 byte and
              otherwise ranges between 1 and 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyWordValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for CPHY triggering if the trigger
              condition is Word. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD: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:CPHY:WORD:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue?

        **Info:**
            - ``<QString>`` specifies the binary data string. The default data value is
              XXXXXXXXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphySymbolValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for CPHY triggering if the trigger
          condition is SYMBol. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol: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:CPHY:SYMBol:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue?

    **Info:**
        - ``<QString>`` specifies the binary data string. The default data value is XXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphySymbolSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an CPHY
          trigger if the trigger condition is SYMBol. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol: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:CPHY:SYMBol:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe?

    **Info:**
        - ``<NR1>`` specifies the length of the data string. The default symbol size is 7 symbols
          and otherwise ranges between 1 and 14.
    """


class SearchSearchItemTriggerABusCphySymbol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusCphySymbolSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusCphySymbolValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def size(self) -> SearchSearchItemTriggerABusCphySymbolSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an CPHY
              trigger if the trigger condition is SYMBol. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol: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:CPHY:SYMBol:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe?

        **Info:**
            - ``<NR1>`` specifies the length of the data string. The default symbol size is 7
              symbols and otherwise ranges between 1 and 14.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusCphySymbolValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for CPHY triggering if the trigger
              condition is SYMBol. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol: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:CPHY:SYMBol:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue?

        **Info:**
            - ``<QString>`` specifies the binary data string. The default data value is XXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphyRedValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue`` command.

    **Description:**
        - This command specifies the red data string used for CPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:RED:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default red value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyRed(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCphyRedValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyRedValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue`` command.

        **Description:**
            - This command specifies the red data string used for CPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:RED:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default red value is XXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphyPixelSearchoption(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion`` command.

    **Description:**
        - This command sets or queries the search pattern type for CPHY bus. The default search
          pattern type value is PIXELVALue.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?

    **Info:**
        - ``PIXELVALue`` specifies PIXELVALue as the field within a CPHY frame to search on.
        - ``PIXELNUMBer`` specifies PIXELNUMBer as the field within a CPHY frame to search on.
    """


class SearchSearchItemTriggerABusCphyPixelNumber(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer`` command.

    **Description:**
        - This command specifies the pixel number to be used for CPHY triggering if the trigger
          condition is on pixel number pattern. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?

    **Info:**
        - ``<NR1>`` specifies the pixel number. The default pixel number value is 0.
    """


class SearchSearchItemTriggerABusCphyPixel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.number``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer`` command.
        - ``.searchoption``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._number = SearchSearchItemTriggerABusCphyPixelNumber(
            device, f"{self._cmd_syntax}:NUMBer"
        )
        self._searchoption = SearchSearchItemTriggerABusCphyPixelSearchoption(
            device, f"{self._cmd_syntax}:SEARCHOPTion"
        )

    @property
    def number(self) -> SearchSearchItemTriggerABusCphyPixelNumber:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer`` command.

        **Description:**
            - This command specifies the pixel number to be used for CPHY triggering if the trigger
              condition is on pixel number pattern. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer?

        **Info:**
            - ``<NR1>`` specifies the pixel number. The default pixel number value is 0.
        """
        return self._number

    @property
    def searchoption(self) -> SearchSearchItemTriggerABusCphyPixelSearchoption:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion`` command.

        **Description:**
            - This command sets or queries the search pattern type for CPHY bus. The default search
              pattern type value is PIXELVALue.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion {PIXELVALue|PIXELNUMBer}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion?

        **Info:**
            - ``PIXELVALue`` specifies PIXELVALue as the field within a CPHY frame to search on.
            - ``PIXELNUMBer`` specifies PIXELNUMBer as the field within a CPHY frame to search on.
        """
        return self._searchoption


class SearchSearchItemTriggerABusCphyPacketsType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe`` command.

    **Description:**
        - This command sets or queries the packet type for CPHY bus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets: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:CPHY:PACKets:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe {SHORt|LONG}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe?

    **Info:**
        - ``SHORt`` specifies SHORt as the field within a CPHY frame to search on. SHORt is the
          default packet type condition.
        - ``LONG`` specifies LONG as the field within a CPHY frame to search on.
    """


class SearchSearchItemTriggerABusCphyPacketsList(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST`` command.

    **Description:**
        - This command sets or queries the packet list for CPHY bus. The default packet list
          condition is VSYNCSTART.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?

    **Info:**
        - ``VSYNCSTART`` specifies VSYNCSTART as the packet within CPHY frame to search on.
        - ``VSYNCEND`` specifies VSYNCEND as the packet within CPHY frame to search on.
        - ``HSYNCSTART`` specifies HSYNCSTART as the packet within CPHY frame to search on.
        - ``HSYNCEND`` specifies HSYNCEND as the packet within CPHY frame to search on.
        - ``EOTP`` specifies EOTP as the packet within CPHY frame to search on.
        - ``COLOROFF`` specifies COLOROFF as the packet within CPHY frame to search on.
        - ``COLORON`` specifies COLORON as the packet within CPHY frame to search on.
        - ``SHUTDOWN`` specifies SHUTDOWN as the packet within CPHY frame to search on.
        - ``TURNON`` specifies TURNON as the packet within CPHY frame to search on.
        - ``GSW`` specifies GSW as the packet within CPHY frame to search on.
        - ``GR`` specifies GR as the packet within CPHY frame to search on.
        - ``COMPRESSION`` specifies COMPRESSION as the packet within CPHY frame to search on.
        - ``SCRAMBLING`` specifies SCRAMBLING as the packet within CPHY frame to search on.
        - ``EXECUTEQUEue`` specifies EXECUTEQUEue as the packet within CPHY frame to search on.
        - ``DCSSW`` specifies DCSSW as the packet within CPHY frame to search on.
        - ``DCSR`` specifies DCSR as the packet within CPHY frame to search on.
        - ``GLONGWRITE`` specifies GLONGWRITE as the packet within CPHY frame to search on.
        - ``DSINULL`` specifies DSINULL as the packet within CPHY frame to search on.
        - ``DSIBLANk`` specifies DSIBLANk as the packet within CPHY frame to search on.
        - ``MAXRETSIZE`` specifies MAXRETSIZE as the packet within CPHY frame to search on.
        - ``DCSGLONGWRITE`` specifies DCSGLONGWRITE as the packet within CPHY frame to search on.
        - ``PICPARameter`` specifies PICPARameter as the packet within CPHY frame to search on.
        - ``COMPRESSEDPSTReam`` specifies COMPRESSEDPSTReam as the packet within CPHY frame to
          search on.
        - ``PPS101010`` specifies PPS101010 as the packet within CPHY frame to search on.
        - ``PPS121212`` specifies PPS121212 as the packet within CPHY frame to search on.
        - ``PPS565`` specifies PPS565 as the packet within CPHY frame to search on.
        - ``PPS666`` specifies PPS666 as the packet within CPHY frame to search on.
        - ``LPS666`` specifies LPS666 as the packet within CPHY frame to search on.
        - ``PPS888`` specifies LPS666 as the packet within CPHY frame to search on.
        - ``YCBCR24`` specifies YCBCR24 as the packet within CPHY frame to search on.
        - ``LPYCBCR24`` specifies LPYCBCR24 as the packet within CPHY frame to search on.
        - ``YCBCR16`` specifies YCBCR16 as the packet within CPHY frame to search on.
        - ``YCBCR12`` specifies YCBCR12 as the packet within CPHY frame to search on.
        - ``ACKNowledge`` specifies ACKNowledge as the packet within CPHY frame to search on.
        - ``ERRORREPort`` specifies ERRORREPort as the packet within CPHY frame to search on.
        - ``GSRR`` specifies GSRR as the packet within CPHY frame to search on.
        - ``GLONGREAD`` specifies GLONGREAD as the packet within CPHY frame to search on.
        - ``DCSLONGREAD`` specifies DCSLONGREAD as the packet within CPHY frame to search on.
        - ``DCSSRR`` specifies DCSSRR as the packet within CPHY frame to search on.
        - ``FRAMESTARt`` specifies FRAMESTARt as the packet within CPHY frame to search on.
        - ``FRAMEEND`` specifies FRAMEEND as the packet within CPHY frame to search on.
        - ``LINESTARt`` specifies LINESTARt as the packet within CPHY frame to search on.
        - ``LINEEND`` specifies LINEEND as the packet within CPHY frame to search on.
        - ``GSP`` specifies GSP as the packet within CPHY frame to search on.
        - ``CSINULL`` specifies CSINULL as the packet within CPHY frame to search on.
        - ``CSIBLANk`` specifies CSIBLANk as the packet within CPHY frame to search on.
        - ``EMBEDDED`` specifies EMBEDDED as the packet within CPHY frame to search on.
        - ``USEREIGHTB`` specifies USEREIGHTB as the packet within CPHY frame to search on.
        - ``RGB565`` specifies RGB565 as the packet within CPHY frame to search on.
        - ``RGB555`` specifies RGB555 as the packet within CPHY frame to search on.
        - ``RGB444`` specifies RGB444 as the packet within CPHY frame to search on.
        - ``RGB666`` specifies RGB666 as the packet within CPHY frame to search on.
        - ``RAW6`` specifies RAW6 as the packet within CPHY frame to search on.
        - ``RAW7`` specifies RAW7 as the packet within CPHY frame to search on.
        - ``RAW8`` specifies RAW8 as the packet within CPHY frame to search on.
        - ``RAW10`` specifies RAW10 as the packet within CPHY frame to search on.
        - ``RAW12`` specifies RAW12 as the packet within CPHY frame to search on.
        - ``RAW14`` specifies RAW14 as the packet within CPHY frame to search on.
        - ``RAW16`` specifies RAW16 as the packet within CPHY frame to search on.
        - ``RAW20`` specifies RAW20 as the packet within CPHY frame to search on.
        - ``RGB888`` specifies RGB888 as the packet within CPHY frame to search on.
        - ``YUV420L8`` specifies YUV420L8 as the packet within CPHY frame to search on.
        - ``YUV8BIT`` specifies YUV8BIT as the packet within CPHY frame to search on.
        - ``YUV422B10`` specifies YUV422B10 as the packet within CPHY frame to search on.
        - ``YUV420B10`` specifies YUV420B10 as the packet within CPHY frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusCphyPackets(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.list``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST`` command.
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._list = SearchSearchItemTriggerABusCphyPacketsList(device, f"{self._cmd_syntax}:LIST")
        self._type = SearchSearchItemTriggerABusCphyPacketsType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def list(self) -> SearchSearchItemTriggerABusCphyPacketsList:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST`` command.

        **Description:**
            - This command sets or queries the packet list for CPHY bus. The default packet list
              condition is VSYNCSTART.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST {VSYNCSTART| VSYNCEND| HSYNCSTART| HSYNCEND| EOTP| COLOROFF| COLORON| SHUTDOWN| TURNON| GSW| GR| COMPRESSION| SCRAMBLING| EXECUTEQUEue| DCSSW| DCSR| GLONGWRITE| DSINULL| DSIBLANk| MAXRETSIZE| DCSGLONGWRITE| PICPARameter| COMPRESSEDPSTReam| PPS101010| PPS121212| PPS565| PPS666| LPS666| PPS888| YCBCR24| LPYCBCR24| YCBCR16| YCBCR12| ACKNowledge| ERRORREPort| GSRR| GLONGREAD| DCSLONGREAD| DCSSRR| FRAMESTARt| FRAMEEND| LINESTARt| LINEEND| GSP| CSINULL| CSIBLANk| EMBEDDED| USEREIGHTB| RGB565| RGB555| RGB444| RGB666| RAW6| RAW7| RAW8| RAW10| RAW12| RAW14| RAW16| RAW20| RGB888| YUV420L8| YUV8BIT| YUV422B10| YUV420B10}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST?

        **Info:**
            - ``VSYNCSTART`` specifies VSYNCSTART as the packet within CPHY frame to search on.
            - ``VSYNCEND`` specifies VSYNCEND as the packet within CPHY frame to search on.
            - ``HSYNCSTART`` specifies HSYNCSTART as the packet within CPHY frame to search on.
            - ``HSYNCEND`` specifies HSYNCEND as the packet within CPHY frame to search on.
            - ``EOTP`` specifies EOTP as the packet within CPHY frame to search on.
            - ``COLOROFF`` specifies COLOROFF as the packet within CPHY frame to search on.
            - ``COLORON`` specifies COLORON as the packet within CPHY frame to search on.
            - ``SHUTDOWN`` specifies SHUTDOWN as the packet within CPHY frame to search on.
            - ``TURNON`` specifies TURNON as the packet within CPHY frame to search on.
            - ``GSW`` specifies GSW as the packet within CPHY frame to search on.
            - ``GR`` specifies GR as the packet within CPHY frame to search on.
            - ``COMPRESSION`` specifies COMPRESSION as the packet within CPHY frame to search on.
            - ``SCRAMBLING`` specifies SCRAMBLING as the packet within CPHY frame to search on.
            - ``EXECUTEQUEue`` specifies EXECUTEQUEue as the packet within CPHY frame to search on.
            - ``DCSSW`` specifies DCSSW as the packet within CPHY frame to search on.
            - ``DCSR`` specifies DCSR as the packet within CPHY frame to search on.
            - ``GLONGWRITE`` specifies GLONGWRITE as the packet within CPHY frame to search on.
            - ``DSINULL`` specifies DSINULL as the packet within CPHY frame to search on.
            - ``DSIBLANk`` specifies DSIBLANk as the packet within CPHY frame to search on.
            - ``MAXRETSIZE`` specifies MAXRETSIZE as the packet within CPHY frame to search on.
            - ``DCSGLONGWRITE`` specifies DCSGLONGWRITE as the packet within CPHY frame to search
              on.
            - ``PICPARameter`` specifies PICPARameter as the packet within CPHY frame to search on.
            - ``COMPRESSEDPSTReam`` specifies COMPRESSEDPSTReam as the packet within CPHY frame to
              search on.
            - ``PPS101010`` specifies PPS101010 as the packet within CPHY frame to search on.
            - ``PPS121212`` specifies PPS121212 as the packet within CPHY frame to search on.
            - ``PPS565`` specifies PPS565 as the packet within CPHY frame to search on.
            - ``PPS666`` specifies PPS666 as the packet within CPHY frame to search on.
            - ``LPS666`` specifies LPS666 as the packet within CPHY frame to search on.
            - ``PPS888`` specifies LPS666 as the packet within CPHY frame to search on.
            - ``YCBCR24`` specifies YCBCR24 as the packet within CPHY frame to search on.
            - ``LPYCBCR24`` specifies LPYCBCR24 as the packet within CPHY frame to search on.
            - ``YCBCR16`` specifies YCBCR16 as the packet within CPHY frame to search on.
            - ``YCBCR12`` specifies YCBCR12 as the packet within CPHY frame to search on.
            - ``ACKNowledge`` specifies ACKNowledge as the packet within CPHY frame to search on.
            - ``ERRORREPort`` specifies ERRORREPort as the packet within CPHY frame to search on.
            - ``GSRR`` specifies GSRR as the packet within CPHY frame to search on.
            - ``GLONGREAD`` specifies GLONGREAD as the packet within CPHY frame to search on.
            - ``DCSLONGREAD`` specifies DCSLONGREAD as the packet within CPHY frame to search on.
            - ``DCSSRR`` specifies DCSSRR as the packet within CPHY frame to search on.
            - ``FRAMESTARt`` specifies FRAMESTARt as the packet within CPHY frame to search on.
            - ``FRAMEEND`` specifies FRAMEEND as the packet within CPHY frame to search on.
            - ``LINESTARt`` specifies LINESTARt as the packet within CPHY frame to search on.
            - ``LINEEND`` specifies LINEEND as the packet within CPHY frame to search on.
            - ``GSP`` specifies GSP as the packet within CPHY frame to search on.
            - ``CSINULL`` specifies CSINULL as the packet within CPHY frame to search on.
            - ``CSIBLANk`` specifies CSIBLANk as the packet within CPHY frame to search on.
            - ``EMBEDDED`` specifies EMBEDDED as the packet within CPHY frame to search on.
            - ``USEREIGHTB`` specifies USEREIGHTB as the packet within CPHY frame to search on.
            - ``RGB565`` specifies RGB565 as the packet within CPHY frame to search on.
            - ``RGB555`` specifies RGB555 as the packet within CPHY frame to search on.
            - ``RGB444`` specifies RGB444 as the packet within CPHY frame to search on.
            - ``RGB666`` specifies RGB666 as the packet within CPHY frame to search on.
            - ``RAW6`` specifies RAW6 as the packet within CPHY frame to search on.
            - ``RAW7`` specifies RAW7 as the packet within CPHY frame to search on.
            - ``RAW8`` specifies RAW8 as the packet within CPHY frame to search on.
            - ``RAW10`` specifies RAW10 as the packet within CPHY frame to search on.
            - ``RAW12`` specifies RAW12 as the packet within CPHY frame to search on.
            - ``RAW14`` specifies RAW14 as the packet within CPHY frame to search on.
            - ``RAW16`` specifies RAW16 as the packet within CPHY frame to search on.
            - ``RAW20`` specifies RAW20 as the packet within CPHY frame to search on.
            - ``RGB888`` specifies RGB888 as the packet within CPHY frame to search on.
            - ``YUV420L8`` specifies YUV420L8 as the packet within CPHY frame to search on.
            - ``YUV8BIT`` specifies YUV8BIT as the packet within CPHY frame to search on.
            - ``YUV422B10`` specifies YUV422B10 as the packet within CPHY frame to search on.
            - ``YUV420B10`` specifies YUV420B10 as the packet within CPHY frame to search on.
        """  # noqa: E501
        return self._list

    @property
    def type(self) -> SearchSearchItemTriggerABusCphyPacketsType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe`` command.

        **Description:**
            - This command sets or queries the packet type for CPHY bus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets: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:CPHY:PACKets:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe {SHORt|LONG}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe?

        **Info:**
            - ``SHORt`` specifies SHORt as the field within a CPHY frame to search on. SHORt is the
              default packet type condition.
            - ``LONG`` specifies LONG as the field within a CPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusCphyModeType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe`` command.

    **Description:**
        - This command sets or queries the mode type for CPHY bus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe: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:CPHY:MODe:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe {HS|LP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe?

    **Info:**
        - ``HS`` specifies HS as the mode within a CPHY frame to search on. HS is default mode type
          condition.
        - ``LP`` specifies LP as the mode within a CPHY frame to search on.
    """


class SearchSearchItemTriggerABusCphyMode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusCphyModeType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusCphyModeType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe`` command.

        **Description:**
            - This command sets or queries the mode type for CPHY bus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe: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:CPHY:MODe:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe {HS|LP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe?

        **Info:**
            - ``HS`` specifies HS as the mode within a CPHY frame to search on. HS is default mode
              type condition.
            - ``LP`` specifies LP as the mode within a CPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusCphyGreenValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue`` command.

    **Description:**
        - This command specifies the green data string used for CPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:GREen:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default green value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyGreen(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCphyGreenValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyGreenValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue`` command.

        **Description:**
            - This command specifies the green data string used for CPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:GREen:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default green value is XXXXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphyEscapemodeCommand(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand`` command.

    **Description:**
        - This command sets or queries the escape mode command type for CPHY bus..

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?

    **Info:**
        - ``LPDT`` specifies LPDT as the field within a CPHY frame to search on.
        - ``ULPS`` specifies ULPS as the field within a CPHY frame to search on.
        - ``RESETTRIGger`` specifies RESETTRIGger as the field within a CPHY frame to search on.
        - ``ANY`` specifies ANY as the field within a CPHY frame to search on. ANY is the default
          value.
    """


class SearchSearchItemTriggerABusCphyEscapemode(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._command = SearchSearchItemTriggerABusCphyEscapemodeCommand(
            device, f"{self._cmd_syntax}:COMMand"
        )

    @property
    def command(self) -> SearchSearchItemTriggerABusCphyEscapemodeCommand:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand`` command.

        **Description:**
            - This command sets or queries the escape mode command type for CPHY bus..

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand {LPDT|ULPS|RESETTRIGger|ANY}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand?

        **Info:**
            - ``LPDT`` specifies LPDT as the field within a CPHY frame to search on.
            - ``ULPS`` specifies ULPS as the field within a CPHY frame to search on.
            - ``RESETTRIGger`` specifies RESETTRIGger as the field within a CPHY frame to search on.
            - ``ANY`` specifies ANY as the field within a CPHY frame to search on. ANY is the
              default value.
        """
        return self._command


class SearchSearchItemTriggerABusCphyErrorType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe`` command.

    **Description:**
        - This command sets or queries the error type for CPHY bus. The default error type condition
          is ANY.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor: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:CPHY:ERRor:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe {ANY|ECC|CRC}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe?

    **Info:**
        - ``ANY`` specifies ANY as the field within a CPHY frame to search on.
        - ``ECC`` specifies ECC as the field within a CPHY frame to search on.
        - ``CRC`` specifies CRC as the field within a CPHY frame to search on.
    """


class SearchSearchItemTriggerABusCphyError(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusCphyErrorType(device, f"{self._cmd_syntax}:TYPe")

    @property
    def type(self) -> SearchSearchItemTriggerABusCphyErrorType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe`` command.

        **Description:**
            - This command sets or queries the error type for CPHY bus. The default error type
              condition is ANY.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor: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:CPHY:ERRor:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe {ANY|ECC|CRC}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe?

        **Info:**
            - ``ANY`` specifies ANY as the field within a CPHY frame to search on.
            - ``ECC`` specifies ECC as the field within a CPHY frame to search on.
            - ``CRC`` specifies CRC as the field within a CPHY frame to search on.
        """
        return self._type


class SearchSearchItemTriggerABusCphyDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue`` command.

    **Description:**
        - This command specifies the binary data string used for CPHY triggering if the trigger
          condition is DATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe`` command.

    **Description:**
        - This command specifies the length of the data string in bytes to be used for an CPHY
          trigger if the trigger condition is DATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe?

    **Info:**
        - ``<NR1>`` specifies the data size. The default data size is 1 byte and otherwise ranges
          between 1 and 5.
    """


class SearchSearchItemTriggerABusCphyData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._size = SearchSearchItemTriggerABusCphyDataSize(device, f"{self._cmd_syntax}:SIZe")
        self._value = SearchSearchItemTriggerABusCphyDataValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def size(self) -> SearchSearchItemTriggerABusCphyDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe`` command.

        **Description:**
            - This command specifies the length of the data string in bytes to be used for an CPHY
              trigger if the trigger condition is DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe?

        **Info:**
            - ``<NR1>`` specifies the data size. The default data size is 1 byte and otherwise
              ranges between 1 and 5.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue`` command.

        **Description:**
            - This command specifies the binary data string used for CPHY triggering if the trigger
              condition is DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default value is XXXXXXXX.
        """
        return self._value


class SearchSearchItemTriggerABusCphyCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for an CPHY bus. The default trigger on
          condition is SOT.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe| WORD| SYMBol}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition?

    **Info:**
        - ``SOT`` specifies SOT as the field within a CPHY frame to search on.
        - ``EOT`` specifies EOT as the field within a CPHY frame to search on.
        - ``DATa`` specifies DATa as the field within a CPHY frame to search on.
        - ``EOTPDATa`` specifies EOTPDATa as the field within a CPHY frame to search on.
        - ``OPTIONALPARam`` specifies OPTIONALPARam as the field within a CPHY frame to search on.
        - ``SCRambling`` specifies SCRambling as the field within a CPHY frame to search on.
        - ``COMPression`` specifies COMPression as the field within a CPHY frame to search on.
        - ``PACKets`` specifies PACKets as the field within a CPHY frame to search on.
        - ``BUSTURNAROUnd`` specifies BUSTURNAROUnd as the field within a CPHY frame to search on.
        - ``ESCAPEMODe`` specifies ESCAPEMODe as the field within a CPHY frame to search on.
        - ``STop`` specifies STop as the field within a CPHY frame to search on.
        - ``ERRors`` specifies ERRors as the field within a CPHY frame to search on.
        - ``MODe`` specifies MODe as the field within a CPHY frame to search on.
        - ``WORD`` specifies WORD as the field within a CPHY frame to search on.
        - ``SYMBol`` specifies SYMBol as the field within a CPHY frame to search on.
    """  # noqa: E501


class SearchSearchItemTriggerABusCphyBlueValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue`` command.

    **Description:**
        - This command specifies the blue data string used for CPHY triggering if the trigger
          condition is on RGB packet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:BLUe:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue?

    **Info:**
        - ``<QString>`` is the identifier value. The default blue value is XXXXXXXXXX.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCphyBlue(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusCphyBlueValue(device, f"{self._cmd_syntax}:VALue")

    @property
    def value(self) -> SearchSearchItemTriggerABusCphyBlueValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue`` command.

        **Description:**
            - This command specifies the blue data string used for CPHY triggering if the trigger
              condition is on RGB packet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:BLUe:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue?

        **Info:**
            - ``<QString>`` is the identifier value. The default blue value is XXXXXXXXXX.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusCphy(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY?``
          query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa`` command tree.
        - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor`` command tree.
        - ``.escapemode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe`` command tree.
        - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen`` command tree.
        - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe`` command tree.
        - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets`` command tree.
        - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel`` command tree.
        - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED`` command tree.
        - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol`` command tree.
        - ``.word``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD`` command tree.
        - ``.wordcount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt`` command tree.
        - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR`` command tree.
        - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blue = SearchSearchItemTriggerABusCphyBlue(device, f"{self._cmd_syntax}:BLUe")
        self._condition = SearchSearchItemTriggerABusCphyCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusCphyData(device, f"{self._cmd_syntax}:DATa")
        self._error = SearchSearchItemTriggerABusCphyError(device, f"{self._cmd_syntax}:ERRor")
        self._escapemode = SearchSearchItemTriggerABusCphyEscapemode(
            device, f"{self._cmd_syntax}:ESCAPEMODe"
        )
        self._green = SearchSearchItemTriggerABusCphyGreen(device, f"{self._cmd_syntax}:GREen")
        self._mode = SearchSearchItemTriggerABusCphyMode(device, f"{self._cmd_syntax}:MODe")
        self._packets = SearchSearchItemTriggerABusCphyPackets(
            device, f"{self._cmd_syntax}:PACKets"
        )
        self._pixel = SearchSearchItemTriggerABusCphyPixel(device, f"{self._cmd_syntax}:PIXel")
        self._red = SearchSearchItemTriggerABusCphyRed(device, f"{self._cmd_syntax}:RED")
        self._symbol = SearchSearchItemTriggerABusCphySymbol(device, f"{self._cmd_syntax}:SYMBol")
        self._word = SearchSearchItemTriggerABusCphyWord(device, f"{self._cmd_syntax}:WORD")
        self._wordcount = SearchSearchItemTriggerABusCphyWordcount(
            device, f"{self._cmd_syntax}:WORDCOUNt"
        )
        self._ycbcr = SearchSearchItemTriggerABusCphyYcbcr(device, f"{self._cmd_syntax}:YCBCR")
        self._yuv = SearchSearchItemTriggerABusCphyYuv(device, f"{self._cmd_syntax}:YUV")

    @property
    def blue(self) -> SearchSearchItemTriggerABusCphyBlue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe:VALue`` command.
        """
        return self._blue

    @property
    def condition(self) -> SearchSearchItemTriggerABusCphyCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for an CPHY bus. The default
              trigger on condition is SOT.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY: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:CPHY:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition {SOT| EOT| DATa| EOTPDATa| OPTIONALPARam| SCRambling| COMPression| PACKets| BUSTURNAROUnd| ESCAPEMODe| STop| ERRors| MODe| WORD| SYMBol}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition?

        **Info:**
            - ``SOT`` specifies SOT as the field within a CPHY frame to search on.
            - ``EOT`` specifies EOT as the field within a CPHY frame to search on.
            - ``DATa`` specifies DATa as the field within a CPHY frame to search on.
            - ``EOTPDATa`` specifies EOTPDATa as the field within a CPHY frame to search on.
            - ``OPTIONALPARam`` specifies OPTIONALPARam as the field within a CPHY frame to search
              on.
            - ``SCRambling`` specifies SCRambling as the field within a CPHY frame to search on.
            - ``COMPression`` specifies COMPression as the field within a CPHY frame to search on.
            - ``PACKets`` specifies PACKets as the field within a CPHY frame to search on.
            - ``BUSTURNAROUnd`` specifies BUSTURNAROUnd as the field within a CPHY frame to search
              on.
            - ``ESCAPEMODe`` specifies ESCAPEMODe as the field within a CPHY frame to search on.
            - ``STop`` specifies STop as the field within a CPHY frame to search on.
            - ``ERRors`` specifies ERRors as the field within a CPHY frame to search on.
            - ``MODe`` specifies MODe as the field within a CPHY frame to search on.
            - ``WORD`` specifies WORD as the field within a CPHY frame to search on.
            - ``SYMBol`` specifies SYMBol as the field within a CPHY frame to search on.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusCphyData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa:VALue`` command.
        """
        return self._data

    @property
    def error(self) -> SearchSearchItemTriggerABusCphyError:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor:TYPe`` command.
        """
        return self._error

    @property
    def escapemode(self) -> SearchSearchItemTriggerABusCphyEscapemode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe:COMMand`` command.
        """
        return self._escapemode

    @property
    def green(self) -> SearchSearchItemTriggerABusCphyGreen:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen:VALue`` command.
        """
        return self._green

    @property
    def mode(self) -> SearchSearchItemTriggerABusCphyMode:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe:TYPe`` command.
        """
        return self._mode

    @property
    def packets(self) -> SearchSearchItemTriggerABusCphyPackets:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.list``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:LIST`` command.
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets:TYPe`` command.
        """
        return self._packets

    @property
    def pixel(self) -> SearchSearchItemTriggerABusCphyPixel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.number``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:NUMBer`` command.
            - ``.searchoption``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel:SEARCHOPTion``
              command.
        """
        return self._pixel

    @property
    def red(self) -> SearchSearchItemTriggerABusCphyRed:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED:VALue`` command.
        """
        return self._red

    @property
    def symbol(self) -> SearchSearchItemTriggerABusCphySymbol:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol:VALue`` command.
        """
        return self._symbol

    @property
    def word(self) -> SearchSearchItemTriggerABusCphyWord:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD:VALue`` command.
        """
        return self._word

    @property
    def wordcount(self) -> SearchSearchItemTriggerABusCphyWordcount:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt:VALue`` command.
        """
        return self._wordcount

    @property
    def ycbcr(self) -> SearchSearchItemTriggerABusCphyYcbcr:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.cb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CB`` command.
            - ``.cr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:CR`` command.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR:Y`` command.
        """
        return self._ycbcr

    @property
    def yuv(self) -> SearchSearchItemTriggerABusCphyYuv:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.u``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:U`` command.
            - ``.v``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:V`` command.
            - ``.y``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV:Y`` command.
        """
        return self._yuv


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 (address) value 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: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 <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?

    **Info:**
        - ``<QString>`` is the identifier value.
    """

    _WRAP_ARG_WITH_QUOTES = True


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 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:
        - ``.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._mode = SearchSearchItemTriggerABusCanIdentifierMode(
            device, f"{self._cmd_syntax}:MODe"
        )
        self._value = SearchSearchItemTriggerABusCanIdentifierValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @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 (address) value 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: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 <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:IDentifier:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusCanFdEsibit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit`` command.

    **Description:**
        - This command sets or queries the value of the error state indicator bit (ESI bit) for a
          CAN bus to search on. The search number is specified by x. The search condition must be
          set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?`` query and raise 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:FD:ESIBit value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
          (recessive).
        - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
          (dominant).
        - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
    """


class SearchSearchItemTriggerABusCanFdBrsbit(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit`` command.

    **Description:**
        - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN bus
          to search on. The search number is specified by x. The search condition must be set to
          FDBITS, and the CAN standard must be FDISO or FDNONISO.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?`` query and raise 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:FD:BRSBit value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?

    **Info:**
        - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
          (fast data enabled).
        - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
          (fast data disabled).
        - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
    """


class SearchSearchItemTriggerABusCanFd(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.brsbit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit`` command.
        - ``.esibit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._brsbit = SearchSearchItemTriggerABusCanFdBrsbit(device, f"{self._cmd_syntax}:BRSBit")
        self._esibit = SearchSearchItemTriggerABusCanFdEsibit(device, f"{self._cmd_syntax}:ESIBit")

    @property
    def brsbit(self) -> SearchSearchItemTriggerABusCanFdBrsbit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit`` command.

        **Description:**
            - This command sets or queries the value of the bit rate switch bit (BRS bit) for a CAN
              bus to search on. The search number is specified by x. The search condition must be
              set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?`` query and raise 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:FD:BRSBit value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the BRS bit has a value of 1
              (fast data enabled).
            - ``ZERo`` filters CAN FD packets to only match those where the BRS bit has a value of 0
              (fast data disabled).
            - ``NOCARE`` disables filtering of CAN FD packets on the BRS bit.
        """
        return self._brsbit

    @property
    def esibit(self) -> SearchSearchItemTriggerABusCanFdEsibit:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit`` command.

        **Description:**
            - This command sets or queries the value of the error state indicator bit (ESI bit) for
              a CAN bus to search on. The search number is specified by x. The search condition must
              be set to FDBITS, and the CAN standard must be FDISO or FDNONISO.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?`` query and raise 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:FD:ESIBit value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit {ONE|ZERo|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit?

        **Info:**
            - ``ONE`` filters CAN FD packets to only match those where the ESI bit has a value of 1
              (recessive).
            - ``ZERo`` filters CAN FD packets to only match those where the ESI bit has a value of 0
              (dominant).
            - ``NOCARE`` disables filtering of CAN FD packets on the ESI bit.
        """
        return self._esibit


class SearchSearchItemTriggerABusCanErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType`` command.

    **Description:**
        - This command sets or queries the type of error condition for a CAN bus to search on. 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:CAN:ERRType?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:ERRType value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor |ANYERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType?

    **Info:**
        - ``ACKMISS`` specifies a search based on a missing ACK field.
        - ``BITSTUFFing`` specifies a search based on a bit stuffing error.
        - ``FORMERRor`` specifies a search based on a CAN FD form error. To use this option, the CAN
          standard must be set to FDISO or FDNONISO.
        - ``ANYERRor`` specifies a search based on any error type.
    """


class SearchSearchItemTriggerABusCanDataValue(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data value to be used when searching on a CAN bus
          signal. The search condition must be set to IDANDDATA OR DATA.

    **Usage:**
        - 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 <QString>

    **Info:**
        - ``<QString>``
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusCanDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to be used when
          searching on a CAN bus signal. The search condition must be set to IDANDDATA or DATA. 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 <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?

    **Info:**
        - ``<NR1>`` 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 SearchSearchItemTriggerABusCanDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset value, in bytes, to use when searching on the
          CAN data field. The search number is specified by x. The search condition must be set to
          DATA or IDANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and maximum
          is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD). The maximum is
          dependent on the number of bytes being matched and the CAN standard selected. Its value is
          calculated as [Absolute Maximum] - [Data Match Size]. For CAN 2.0, the absolute maximum is
          8 bytes. For ISO CAN FD and Non-ISO CAN FD, the absolute maximum is 64 bytes. The minimum
          data match size is 1 byte, which produces the ranges listed above. Increasing the data
          match size above 1 byte will adjust the range of valid data offset values accordingly.
    """


class SearchSearchItemTriggerABusCanDataDirection(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection`` command.

    **Description:**
        - This command specifies the CAN search type to be valid on a Read, Write, or Either
          condition. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:DATa:DIRection value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection {READ|WRITE|NOCARE}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection?

    **Info:**
        - ``READ`` specifies the read direction.
        - ``WRITE`` specifies the write direction.
        - ``NOCARE`` specifies either data direction.
    """


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:
        - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet`` 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._direction = SearchSearchItemTriggerABusCanDataDirection(
            device, f"{self._cmd_syntax}:DIRection"
        )
        self._offset = SearchSearchItemTriggerABusCanDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        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 direction(self) -> SearchSearchItemTriggerABusCanDataDirection:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection`` command.

        **Description:**
            - This command specifies the CAN search type to be valid on a Read, Write, or Either
              condition. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:DATa:DIRection value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection {READ|WRITE|NOCARE}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection?

        **Info:**
            - ``READ`` specifies the read direction.
            - ``WRITE`` specifies the write direction.
            - ``NOCARE`` specifies either data direction.
        """
        return self._direction

    @property
    def offset(self) -> SearchSearchItemTriggerABusCanDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset value, in bytes, to use when searching on
              the CAN data field. The search number is specified by x. The search condition must be
              set to DATA or IDANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is an integer whose minimum and default values are -1 (don't care) and
              maximum is up to 7 (for CAN 2.0) or up to 63 (for ISO CAN FD and Non-ISO CAN FD). The
              maximum is dependent on the number of bytes being matched and the CAN standard
              selected. Its value is calculated as [Absolute Maximum] - [Data Match Size]. For CAN
              2.0, the absolute maximum is 8 bytes. For ISO CAN FD and Non-ISO CAN FD, the absolute
              maximum is 64 bytes. The minimum data match size is 1 byte, which produces the ranges
              listed above. Increasing the data match size above 1 byte will adjust the range of
              valid data offset values accordingly.
        """
        return self._offset

    @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 length of the data string, in bytes, to be used when
              searching on a CAN bus signal. The search condition must be set to IDANDDATA or DATA.
              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 <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:SIZe?

        **Info:**
            - ``<NR1>`` 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 binary data value to be used when searching on a CAN
              bus signal. The search condition must be set to IDANDDATA OR DATA.

        **Usage:**
            - 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 <QString>

        **Info:**
            - ``<QString>``
        """
        return self._value


class SearchSearchItemTriggerABusCanCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition`` command.

    **Description:**
        - This command sets or queries the search condition for a CAN bus. 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 {SOF| FRAMEtype| IDentifier| DATa| IDANDDATA| EOF| ERRor| FDBITS}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?

    **Info:**
        - ``SOF`` specifies the search condition for a CAN bus as start of frame.
        - ``FRAMEtype`` specifies the search condition for a CAN bus as frame type.
        - ``IDentifier`` specifies the search condition for a CAN bus as identifier.
        - ``IDANDDATA`` specifies the search condition for a CAN bus as ID and data.
        - ``EOF`` specifies the search condition for a CAN bus as end of frame.
        - ``ERRor`` specifies the search condition for a CAN bus as error.
        - ``FDBITS`` specifies the search condition for a CAN bus as FD bits.
    """  # 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.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType`` command.
        - ``.fd``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD`` 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._errtype = SearchSearchItemTriggerABusCanErrtype(device, f"{self._cmd_syntax}:ERRType")
        self._fd = SearchSearchItemTriggerABusCanFd(device, f"{self._cmd_syntax}:FD")
        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 search condition for a CAN bus. 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 {SOF| FRAMEtype| IDentifier| DATa| IDANDDATA| EOF| ERRor| FDBITS}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:CONDition?

        **Info:**
            - ``SOF`` specifies the search condition for a CAN bus as start of frame.
            - ``FRAMEtype`` specifies the search condition for a CAN bus as frame type.
            - ``IDentifier`` specifies the search condition for a CAN bus as identifier.
            - ``IDANDDATA`` specifies the search condition for a CAN bus as ID and data.
            - ``EOF`` specifies the search condition for a CAN bus as end of frame.
            - ``ERRor`` specifies the search condition for a CAN bus as error.
            - ``FDBITS`` specifies the search condition for a CAN bus as FD bits.
        """  # 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:
            - ``.direction``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:DIRection`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:DATa:OFFSet`` 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 errtype(self) -> SearchSearchItemTriggerABusCanErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType`` command.

        **Description:**
            - This command sets or queries the type of error condition for a CAN bus to search on.
              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:CAN:ERRType?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN: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:CAN:ERRType value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType {ACKMISS|BITSTUFFing|FORMERRor |ANYERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType?

        **Info:**
            - ``ACKMISS`` specifies a search based on a missing ACK field.
            - ``BITSTUFFing`` specifies a search based on a bit stuffing error.
            - ``FORMERRor`` specifies a search based on a CAN FD form error. To use this option, the
              CAN standard must be set to FDISO or FDNONISO.
            - ``ANYERRor`` specifies a search based on any error type.
        """
        return self._errtype

    @property
    def fd(self) -> SearchSearchItemTriggerABusCanFd:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.brsbit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:BRSBit`` command.
            - ``.esibit``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD:ESIBit`` command.
        """
        return self._fd

    @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:
            - ``.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


class SearchSearchItemTriggerABusBS8b10bCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition`` command.

    **Description:**
        - This command sets or queries the type of data search for an 8B10B bus. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B: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:B:S8B10B:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition {SYMbols|ERRors}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``SYMbols`` specifies the search condition as data or control.
        - ``ERRors`` specifies the search condition as Symbol error or disparity error.
    """


class SearchSearchItemTriggerABusBS8b10b(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusBS8b10bCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusBS8b10bCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition`` command.

        **Description:**
            - This command sets or queries the type of data search for an 8B10B bus. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B: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:B:S8B10B:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition {SYMbols|ERRors}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``SYMbols`` specifies the search condition as data or control.
            - ``ERRors`` specifies the search condition as Symbol error or disparity error.
        """
        return self._condition


class SearchSearchItemTriggerABusBPsifiveStatusValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue`` command.

    **Description:**
        - This command sets or queries the binary status string used for PSI5 triggering if the
          trigger condition is status.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus: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:B:PSIFIVe:STATus:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveStatus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveStatusValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveStatusValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue`` command.

        **Description:**
            - This command sets or queries the binary status string used for PSI5 triggering if the
              trigger condition is status.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus: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:B:PSIFIVe:STATus:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveSensorAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary sensor address string used for PSI5 triggering if
          the trigger condition is Sensor Address. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor: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:B:PSIFIVe:SENSor:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveSensorAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveSensorAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveSensorAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary sensor address string used for PSI5 triggering
              if the trigger condition is Sensor Address. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor: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:B:PSIFIVe:SENSor:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveSensor(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusBPsifiveSensorAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusBPsifiveSensorAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess:VALue``
              command.
        """
        return self._address


class SearchSearchItemTriggerABusBPsifiveSensorstatusType(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe`` command.

    **Description:**
        - This command sets or queries the sensor status for PSI5 bus.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus: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:B:PSIFIVe:SENSORSTATus:TYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe {READy|BUSY|DEFect|SERVICEMODe|UNLocked}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe?

    **Info:**
        - ``READy`` specifies the sensor status as ready. This is the default value.
        - ``BUSY`` specifies the sensor status as busy.
        - ``DEFect`` specifies the sensor status as defect.
        - ``SERVICEMODe`` specifies the sensor status as service mode.
        - ``UNLocked`` specifies the sensor status as unlocked.
    """  # noqa: E501


class SearchSearchItemTriggerABusBPsifiveSensorstatus(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._type = SearchSearchItemTriggerABusBPsifiveSensorstatusType(
            device, f"{self._cmd_syntax}:TYPe"
        )

    @property
    def type(self) -> SearchSearchItemTriggerABusBPsifiveSensorstatusType:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe`` command.

        **Description:**
            - This command sets or queries the sensor status for PSI5 bus.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus: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:B:PSIFIVe:SENSORSTATus:TYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe {READy|BUSY|DEFect|SERVICEMODe|UNLocked}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe?

        **Info:**
            - ``READy`` specifies the sensor status as ready. This is the default value.
            - ``BUSY`` specifies the sensor status as busy.
            - ``DEFect`` specifies the sensor status as defect.
            - ``SERVICEMODe`` specifies the sensor status as service mode.
            - ``UNLocked`` specifies the sensor status as unlocked.
        """  # noqa: E501
        return self._type


class SearchSearchItemTriggerABusBPsifiveRegisterAddressValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue`` command.

    **Description:**
        - This command sets or queries the binary register address string used for PSI5 triggering
          if the trigger condition is Register Address. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister: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:B:PSIFIVe:REGister:ADDRess:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveRegisterAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveRegisterAddressValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveRegisterAddressValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue`` command.

        **Description:**
            - This command sets or queries the binary register address string used for PSI5
              triggering if the trigger condition is Register Address. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister: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:B:PSIFIVe:REGister:ADDRess:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveRegister(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusBPsifiveRegisterAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusBPsifiveRegisterAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess:VALue``
              command.
        """
        return self._address


class SearchSearchItemTriggerABusBPsifiveRegisteraddress(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess`` command.

    **Description:**
        - This command sets or queries the register address for PSI5 bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess {TWOBIT|SIXBIT|EIGHTBIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?

    **Info:**
        - ``TWOBIT`` specifies the register address value as 2 bit. This is the default value.
        - ``SIXBIT`` specifies the register address value as 6 bit.
        - ``EIGHTBIT`` specifies the register address value as 8 bit.
    """


class SearchSearchItemTriggerABusBPsifiveFunctioncodetype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe`` command.

    **Description:**
        - This command sets or queries the binary data string used for PSI5 triggering if the
          trigger condition is a Function Code. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveErrortype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe`` command.

    **Description:**
        - This command sets or queries the error type for an PSI5 bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe {ANY|PARity|CRC|RESPONSECODe}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?

    **Info:**
        - ``ANY`` specifies the error type value as any. This is the default value.
        - ``PARity`` specifies the error type value as parity.
        - ``CRC`` specifies the error type value as CRC.
        - ``RESPONSECODe`` specifies the error type value as response code.
    """


class SearchSearchItemTriggerABusBPsifiveDataRegionBValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for PSI5 triggering if the
          trigger condition is data region B. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B: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:B:PSIFIVe:DATa:REGion:B:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveDataRegionB(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveDataRegionBValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveDataRegionBValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for PSI5 triggering if the
              trigger condition is data region B. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B: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:B:PSIFIVe:DATa:REGion:B:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveDataRegionAValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string used for PSI5 triggering if the
          trigger condition is data region A. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A: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:B:PSIFIVe:DATa:REGion:A:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveDataRegionA(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveDataRegionAValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveDataRegionAValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string used for PSI5 triggering if the
              trigger condition is data region A. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A: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:B:PSIFIVe:DATa:REGion:A:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveDataRegion(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A`` command tree.
        - ``.b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._a = SearchSearchItemTriggerABusBPsifiveDataRegionA(device, f"{self._cmd_syntax}:A")
        self._b = SearchSearchItemTriggerABusBPsifiveDataRegionB(device, f"{self._cmd_syntax}:B")

    @property
    def a(self) -> SearchSearchItemTriggerABusBPsifiveDataRegionA:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A:VALue``
              command.
        """
        return self._a

    @property
    def b(self) -> SearchSearchItemTriggerABusBPsifiveDataRegionB:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B:VALue``
              command.
        """
        return self._b


class SearchSearchItemTriggerABusBPsifiveDataEcuSensorValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue`` command.

    **Description:**
        - This command sets or queries the binary Data string used for PSI5 triggering if the
          trigger condition is Data in ECU to Sensor communication mode. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor: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:B:PSIFIVe:DATa:ECU:SENSor:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue?

    **Info:**
        - ``<QString>`` 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.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveDataEcuSensor(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveDataEcuSensorValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveDataEcuSensorValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue`` command.

        **Description:**
            - This command sets or queries the binary Data string used for PSI5 triggering if the
              trigger condition is Data in ECU to Sensor communication mode. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor: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:B:PSIFIVe:DATa:ECU:SENSor:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue?

        **Info:**
            - ``<QString>`` 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 SearchSearchItemTriggerABusBPsifiveDataEcu(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.sensor``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._sensor = SearchSearchItemTriggerABusBPsifiveDataEcuSensor(
            device, f"{self._cmd_syntax}:SENSor"
        )

    @property
    def sensor(self) -> SearchSearchItemTriggerABusBPsifiveDataEcuSensor:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor:VALue``
              command.
        """
        return self._sensor


class SearchSearchItemTriggerABusBPsifiveData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.ecu``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU`` command tree.
        - ``.region``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._ecu = SearchSearchItemTriggerABusBPsifiveDataEcu(device, f"{self._cmd_syntax}:ECU")
        self._region = SearchSearchItemTriggerABusBPsifiveDataRegion(
            device, f"{self._cmd_syntax}:REGion"
        )

    @property
    def ecu(self) -> SearchSearchItemTriggerABusBPsifiveDataEcu:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.sensor``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU:SENSor`` command
              tree.
        """
        return self._ecu

    @property
    def region(self) -> SearchSearchItemTriggerABusBPsifiveDataRegion:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:A`` command tree.
            - ``.b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion:B`` command tree.
        """
        return self._region


class SearchSearchItemTriggerABusBPsifiveDatabits(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs`` command.

    **Description:**
        - This command sets or queries the binary register address string used for PSI5 triggering
          if the trigger condition is Data in ECU to Sensor communication mode. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs {FOURBIT|EIGHTBIT|TWENTYBIT}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?

    **Info:**
        - ``FOURBIT`` specifies the data bit value as 4 bit.
        - ``EIGHTBIT`` specifies the data bit value as 8 bit.
        - ``TWENTYBIT`` specifies the data bit value as 20 bit.
    """


class SearchSearchItemTriggerABusBPsifiveCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition`` command.

    **Description:**
        - This command sets or queries the trigger condition for an PSI5 bus. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe: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:B:PSIFIVe:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition {STARt| STATus| DATa| BLOCkid| ERRors| STARTBIT| FUNCTIONCODe| ECUDATa| SENSORADDRess| REGISTERADDRess| SENSORSTATus|CRCERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition?

    **Info:**
        - ``STARt`` specifies the search condition as Start. This is the default trigger.
        - ``STATus`` specifies the search condition as Status.
        - ``DATa`` specifies the search condition as Data.
        - ``BLOCkid`` specifies the search condition as Block ID.
        - ``ERRors`` specifies the search condition as Errors.
        - ``STARTBIT`` specifies the search condition as Start Bit.
        - ``FUNCTIONCODe`` specifies the search condition as Function Code.
        - ``ECUDATa`` specifies the search condition as ECU Data.
        - ``SENSORADDRess`` specifies the search condition as Sensor Address.
        - ``REGISTERADDRess`` specifies the search condition as Register Address.
        - ``SENSORSTATus`` specifies the search condition as Sensor Status.
        - ``CRCERRor`` specifies the search condition as CRC Error.
    """  # noqa: E501


class SearchSearchItemTriggerABusBPsifiveBlockdataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary block data string used for PSI5 triggering if the
          trigger condition is block id.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa: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:B:PSIFIVe:BLOCKDATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue?

    **Info:**
        - ``<QString>`` specifies the binary block data string.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusBPsifiveBlockdata(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa?`` query and raise an AssertionError
          if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusBPsifiveBlockdataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusBPsifiveBlockdataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary block data string used for PSI5 triggering if
              the trigger condition is block id.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa: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:B:PSIFIVe:BLOCKDATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue?

        **Info:**
            - ``<QString>`` specifies the binary block data string.
        """
        return self._value


#  pylint: disable=too-many-instance-attributes
class SearchSearchItemTriggerABusBPsifive(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.blockdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa`` command tree.
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition`` command.
        - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa`` command tree.
        - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe`` command.
        - ``.functioncodetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe``
          command.
        - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess``
          command.
        - ``.register``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister`` command tree.
        - ``.sensorstatus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus`` command
          tree.
        - ``.sensor``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor`` command tree.
        - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._blockdata = SearchSearchItemTriggerABusBPsifiveBlockdata(
            device, f"{self._cmd_syntax}:BLOCKDATa"
        )
        self._condition = SearchSearchItemTriggerABusBPsifiveCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._databits = SearchSearchItemTriggerABusBPsifiveDatabits(
            device, f"{self._cmd_syntax}:DATABITs"
        )
        self._data = SearchSearchItemTriggerABusBPsifiveData(device, f"{self._cmd_syntax}:DATa")
        self._errortype = SearchSearchItemTriggerABusBPsifiveErrortype(
            device, f"{self._cmd_syntax}:ERRORTYPe"
        )
        self._functioncodetype = SearchSearchItemTriggerABusBPsifiveFunctioncodetype(
            device, f"{self._cmd_syntax}:FUNCTIONCODETYPe"
        )
        self._registeraddress = SearchSearchItemTriggerABusBPsifiveRegisteraddress(
            device, f"{self._cmd_syntax}:REGISTERADDRess"
        )
        self._register = SearchSearchItemTriggerABusBPsifiveRegister(
            device, f"{self._cmd_syntax}:REGister"
        )
        self._sensorstatus = SearchSearchItemTriggerABusBPsifiveSensorstatus(
            device, f"{self._cmd_syntax}:SENSORSTATus"
        )
        self._sensor = SearchSearchItemTriggerABusBPsifiveSensor(
            device, f"{self._cmd_syntax}:SENSor"
        )
        self._status = SearchSearchItemTriggerABusBPsifiveStatus(
            device, f"{self._cmd_syntax}:STATus"
        )

    @property
    def blockdata(self) -> SearchSearchItemTriggerABusBPsifiveBlockdata:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa:VALue`` command.
        """
        return self._blockdata

    @property
    def condition(self) -> SearchSearchItemTriggerABusBPsifiveCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition`` command.

        **Description:**
            - This command sets or queries the trigger condition for an PSI5 bus. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe: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:B:PSIFIVe:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition {STARt| STATus| DATa| BLOCkid| ERRors| STARTBIT| FUNCTIONCODe| ECUDATa| SENSORADDRess| REGISTERADDRess| SENSORSTATus|CRCERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition?

        **Info:**
            - ``STARt`` specifies the search condition as Start. This is the default trigger.
            - ``STATus`` specifies the search condition as Status.
            - ``DATa`` specifies the search condition as Data.
            - ``BLOCkid`` specifies the search condition as Block ID.
            - ``ERRors`` specifies the search condition as Errors.
            - ``STARTBIT`` specifies the search condition as Start Bit.
            - ``FUNCTIONCODe`` specifies the search condition as Function Code.
            - ``ECUDATa`` specifies the search condition as ECU Data.
            - ``SENSORADDRess`` specifies the search condition as Sensor Address.
            - ``REGISTERADDRess`` specifies the search condition as Register Address.
            - ``SENSORSTATus`` specifies the search condition as Sensor Status.
            - ``CRCERRor`` specifies the search condition as CRC Error.
        """  # noqa: E501
        return self._condition

    @property
    def databits(self) -> SearchSearchItemTriggerABusBPsifiveDatabits:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs`` command.

        **Description:**
            - This command sets or queries the binary register address string used for PSI5
              triggering if the trigger condition is Data in ECU to Sensor communication mode. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs {FOURBIT|EIGHTBIT|TWENTYBIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs?

        **Info:**
            - ``FOURBIT`` specifies the data bit value as 4 bit.
            - ``EIGHTBIT`` specifies the data bit value as 8 bit.
            - ``TWENTYBIT`` specifies the data bit value as 20 bit.
        """
        return self._databits

    @property
    def data(self) -> SearchSearchItemTriggerABusBPsifiveData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.ecu``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:ECU`` command tree.
            - ``.region``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa:REGion`` command
              tree.
        """
        return self._data

    @property
    def errortype(self) -> SearchSearchItemTriggerABusBPsifiveErrortype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe`` command.

        **Description:**
            - This command sets or queries the error type for an PSI5 bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe {ANY|PARity|CRC|RESPONSECODe}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe?

        **Info:**
            - ``ANY`` specifies the error type value as any. This is the default value.
            - ``PARity`` specifies the error type value as parity.
            - ``CRC`` specifies the error type value as CRC.
            - ``RESPONSECODe`` specifies the error type value as response code.
        """
        return self._errortype

    @property
    def functioncodetype(self) -> SearchSearchItemTriggerABusBPsifiveFunctioncodetype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe`` command.

        **Description:**
            - This command sets or queries the binary data string used for PSI5 triggering if the
              trigger condition is a Function Code. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe?

        **Info:**
            - ``<QString>`` 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._functioncodetype

    @property
    def registeraddress(self) -> SearchSearchItemTriggerABusBPsifiveRegisteraddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess`` command.

        **Description:**
            - This command sets or queries the register address for PSI5 bus. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess {TWOBIT|SIXBIT|EIGHTBIT}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess?

        **Info:**
            - ``TWOBIT`` specifies the register address value as 2 bit. This is the default value.
            - ``SIXBIT`` specifies the register address value as 6 bit.
            - ``EIGHTBIT`` specifies the register address value as 8 bit.
        """
        return self._registeraddress

    @property
    def register(self) -> SearchSearchItemTriggerABusBPsifiveRegister:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister:ADDRess``
              command tree.
        """
        return self._register

    @property
    def sensorstatus(self) -> SearchSearchItemTriggerABusBPsifiveSensorstatus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.type``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus:TYPe`` command.
        """
        return self._sensorstatus

    @property
    def sensor(self) -> SearchSearchItemTriggerABusBPsifiveSensor:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor:ADDRess`` command
              tree.
        """
        return self._sensor

    @property
    def status(self) -> SearchSearchItemTriggerABusBPsifiveStatus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus:VALue`` command.
        """
        return self._status


class SearchSearchItemTriggerABusBNrzCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition`` command.

    **Description:**
        - This command specifies a field or condition for an NRZ bus to search on. The search number
          is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ: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:B:NRZ:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition {DATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition?

    **Info:**
        - ``Search<x>`` is the number of the search.
        - ``DATa`` specifies the search condition as Data Characters.
    """


class SearchSearchItemTriggerABusBNrz(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusBNrzCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusBNrzCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition`` command.

        **Description:**
            - This command specifies a field or condition for an NRZ bus to search on. The search
              number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ: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:B:NRZ:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition {DATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition?

        **Info:**
            - ``Search<x>`` is the number of the search.
            - ``DATa`` specifies the search condition as Data Characters.
        """
        return self._condition


class SearchSearchItemTriggerABusB(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B?``
          query and raise an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.nrz``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ`` command tree.
        - ``.psifive``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe`` command tree.
        - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._nrz = SearchSearchItemTriggerABusBNrz(device, f"{self._cmd_syntax}:NRZ")
        self._psifive = SearchSearchItemTriggerABusBPsifive(device, f"{self._cmd_syntax}:PSIFIVe")
        self._s8b10b = SearchSearchItemTriggerABusBS8b10b(device, f"{self._cmd_syntax}:S8B10B")

    @property
    def nrz(self) -> SearchSearchItemTriggerABusBNrz:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ:CONDition`` command.
        """
        return self._nrz

    @property
    def psifive(self) -> SearchSearchItemTriggerABusBPsifive:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.blockdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:BLOCKDATa`` command
              tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:CONDition`` command.
            - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATABITs`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:DATa`` command tree.
            - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:ERRORTYPe`` command.
            - ``.functioncodetype``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:FUNCTIONCODETYPe`` command.
            - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGISTERADDRess``
              command.
            - ``.register``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:REGister`` command tree.
            - ``.sensorstatus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSORSTATus``
              command tree.
            - ``.sensor``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:SENSor`` command tree.
            - ``.status``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe:STATus`` command tree.
        """
        return self._psifive

    @property
    def s8b10b(self) -> SearchSearchItemTriggerABusBS8b10b:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B:CONDition`` command.
        """
        return self._s8b10b


class SearchSearchItemTriggerABusAutoethernetTcpheaderSourceportValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue`` command.

    **Description:**
        - This command sets or queries the binary source port value to use when searching on an
          AutoEthernet bus signal. The search condition needs to be set to TCPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:SOUrceport:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetTcpheaderSourceport(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetTcpheaderSourceportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderSourceportValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue`` command.

        **Description:**
            - This command sets or queries the binary source port value to use when searching on an
              AutoEthernet bus signal. The search condition needs to be set to TCPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:SOUrceport:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnumValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue`` command.

    **Description:**
        - This command sets or queries the TCP header sequence number value to use when searching on
          the AutoEthernet TCP header destination 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:AUTOETHERnet:TCPHeader:SEQnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:SEQnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnum(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnumValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue`` command.

        **Description:**
            - This command sets or queries the TCP header sequence number value to use when
              searching on the AutoEthernet TCP header destination 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:AUTOETHERnet:TCPHeader:SEQnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:SEQnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationportValue(
    SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue`` command.

    **Description:**
        - This command sets or queries the binary destination port value to use when searching on
          the AutoEthernet TCP header destination 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:AUTOETHERnet:TCPHeader:DESTinationport:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport: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:AUTOETHERnet:TCPHeader:DESTinationport:VALue value``
          command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationport(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationportValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationportValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue`` command.

        **Description:**
            - This command sets or queries the binary destination port value to use when searching
              on the AutoEthernet TCP header destination 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:AUTOETHERnet:TCPHeader:DESTinationport:VALue?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport: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:AUTOETHERnet:TCPHeader:DESTinationport:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetTcpheaderAcknumValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue`` command.

    **Description:**
        - This command sets or queries the binary ack number value to use when searching on an
          AutoEthernet bus signal. The default is all X's (don't care). The search condition needs
          to be set to TCPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:ACKnum:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetTcpheaderAcknum(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetTcpheaderAcknumValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderAcknumValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue`` command.

        **Description:**
            - This command sets or queries the binary ack number value to use when searching on an
              AutoEthernet bus signal. The default is all X's (don't care). The search condition
              needs to be set to TCPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:TCPHeader:ACKnum:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetTcpheader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.acknum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum`` command
          tree.
        - ``.destinationport``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport`` command tree.
        - ``.seqnum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum`` command
          tree.
        - ``.sourceport``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._acknum = SearchSearchItemTriggerABusAutoethernetTcpheaderAcknum(
            device, f"{self._cmd_syntax}:ACKnum"
        )
        self._destinationport = SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationport(
            device, f"{self._cmd_syntax}:DESTinationport"
        )
        self._seqnum = SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnum(
            device, f"{self._cmd_syntax}:SEQnum"
        )
        self._sourceport = SearchSearchItemTriggerABusAutoethernetTcpheaderSourceport(
            device, f"{self._cmd_syntax}:SOUrceport"
        )

    @property
    def acknum(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderAcknum:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum:VALue``
              command.
        """
        return self._acknum

    @property
    def destinationport(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderDestinationport:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport:VALue``
              command.
        """
        return self._destinationport

    @property
    def seqnum(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderSeqnum:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum:VALue``
              command.
        """
        return self._seqnum

    @property
    def sourceport(self) -> SearchSearchItemTriggerABusAutoethernetTcpheaderSourceport:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport?`` query and raise
              an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport:VALue`` command.
        """
        return self._sourceport


class SearchSearchItemTriggerABusAutoethernetQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on an AutoEthernet
          bus signal. The search condition must be set to Client Data or MAC Length/Type.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual| LESSEQual|MOREEQual| INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusAutoethernetQtagValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue`` command.

    **Description:**
        - This command sets or queries the binary Q-tag information to use when searching on an
          AutoEthernet bus signal. The search condition needs to be set to QTAG.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:QTAG:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetQtag(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetQtagValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetQtagValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue`` command.

        **Description:**
            - This command sets or queries the binary Q-tag information to use when searching on an
              AutoEthernet bus signal. The search condition needs to be set to QTAG.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:QTAG:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetMacLengthValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue`` command.

    **Description:**
        - This command sets or queries the MAC length value to use when searching on an Ethernet bus
          signal. The search condition needs to be set to MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:MAC:LENgth:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetMacLengthHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue`` command.

    **Description:**
        - This command sets or queries the binary MAC length high value to use when searching on an
          AutoEthernet bus signal. The search condition needs to be set to MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth: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:AUTOETHERnet:MAC:LENgth:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetMacLength(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue``
          command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusAutoethernetMacLengthHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._value = SearchSearchItemTriggerABusAutoethernetMacLengthValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusAutoethernetMacLengthHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue`` command.

        **Description:**
            - This command sets or queries the binary MAC length high value to use when searching on
              an AutoEthernet bus signal. The search condition needs to be set to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth: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:AUTOETHERnet:MAC:LENgth:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._hivalue

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetMacLengthValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue`` command.

        **Description:**
            - This command sets or queries the MAC length value to use when searching on an Ethernet
              bus signal. The search condition needs to be set to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:MAC:LENgth:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetMacAddressSourceValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

    **Description:**
        - This command sets or queries the binary MAC address source value to use when searching on
          an AutoEthernet bus signal. The search condition needs to be set to MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetMacAddressSource(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetMacAddressSourceValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetMacAddressSourceValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue`` command.

        **Description:**
            - This command sets or queries the binary MAC address source value to use when searching
              on an AutoEthernet bus signal. The search condition needs to be set to MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetMacAddressDestinationValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue`` command.

    **Description:**
        - This command sets or queries the binary MAC address destination value to use when
          searching on an AutoEthernet bus signal. The search condition needs to be set to
          MACADDRess.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?`` query and
          raise an AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue value``
          command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetMacAddressDestination(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetMacAddressDestinationValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetMacAddressDestinationValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue`` command.

        **Description:**
            - This command sets or queries the binary MAC address destination value to use when
              searching on an AutoEthernet bus signal. The search condition needs to be set to
              MACADDRess.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?`` query
              and raise an AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetMacAddress(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.destination``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination`` command tree.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destination = SearchSearchItemTriggerABusAutoethernetMacAddressDestination(
            device, f"{self._cmd_syntax}:DESTination"
        )
        self._source = SearchSearchItemTriggerABusAutoethernetMacAddressSource(
            device, f"{self._cmd_syntax}:SOUrce"
        )

    @property
    def destination(self) -> SearchSearchItemTriggerABusAutoethernetMacAddressDestination:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination:VALue`` command.
        """
        return self._destination

    @property
    def source(self) -> SearchSearchItemTriggerABusAutoethernetMacAddressSource:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce:VALue`` command.
        """
        return self._source


class SearchSearchItemTriggerABusAutoethernetMac(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess`` command
          tree.
        - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._address = SearchSearchItemTriggerABusAutoethernetMacAddress(
            device, f"{self._cmd_syntax}:ADDRess"
        )
        self._length = SearchSearchItemTriggerABusAutoethernetMacLength(
            device, f"{self._cmd_syntax}:LENgth"
        )

    @property
    def address(self) -> SearchSearchItemTriggerABusAutoethernetMacAddress:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.destination``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:DESTination`` command tree.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess:SOUrce``
              command tree.
        """
        return self._address

    @property
    def length(self) -> SearchSearchItemTriggerABusAutoethernetMacLength:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:HIVALue``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth:VALue``
              command.
        """
        return self._length


class SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddrValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue`` command.

    **Description:**
        - This command sets or queries the binary source address value to use when searching on an
          AutoEthernet bus signal. The search condition needs to be set to IPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:IPHeader:SOUrceaddr:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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
          (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddrValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue`` command.

        **Description:**
            - This command sets or queries the binary source address value to use when searching on
              an AutoEthernet bus signal. The search condition needs to be set to IPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:IPHeader:SOUrceaddr:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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 (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetIpheaderProtocolValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue`` command.

    **Description:**
        - This command sets or queries the binary protocol value to use when searching on the
          Ethernet bus signal. The search condition needs to be set to IPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:IPHeader:PROTOcol:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``QString`` is a quoted string of up to eight (8) characters where the allowable
          characters are 0, 1, and X. The bits specified in the quoted string replace the least
          significant bits (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetIpheaderProtocol(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue``
          command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetIpheaderProtocolValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderProtocolValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue`` command.

        **Description:**
            - This command sets or queries the binary protocol value to use when searching on the
              Ethernet bus signal. The search condition needs to be set to IPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:IPHeader:PROTOcol:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``QString`` is a quoted string of up to eight (8) characters where the allowable
              characters are 0, 1, and X. The bits specified in the quoted string replace the least
              significant bits (LSB), leaving any unspecified upper bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddrValue(
    SCPICmdWrite, SCPICmdRead
):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue`` command.

    **Description:**
        - This command sets or queries the binary destination address value to use when searching on
          an AutoEthernet bus signal. The search condition needs to be set to IPHeader.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr: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:AUTOETHERnet:IPHeader:DESTinationaddr:VALue value``
          command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``QString`` is a quoted string of up to 32 characters that sets the IP address, where the
          allowable characters are 0, 1, and X. The bits specified in the quoted string replace the
          least significant bits (LSB), leaving any unspecified upper bits unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddr(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr?`` query and raise
          an AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.value``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddrValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddrValue:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue`` command.

        **Description:**
            - This command sets or queries the binary destination address value to use when
              searching on an AutoEthernet bus signal. The search condition needs to be set to
              IPHeader.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr: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:AUTOETHERnet:IPHeader:DESTinationaddr:VALue value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``QString`` is a quoted string of up to 32 characters that sets the IP address, where
              the allowable characters are 0, 1, and X. The bits specified in the quoted string
              replace the least significant bits (LSB), leaving any unspecified upper bits
              unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetIpheader(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    Properties:
        - ``.destinationaddr``: The
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr`` command tree.
        - ``.protocol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol``
          command tree.
        - ``.sourceaddr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr``
          command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._destinationaddr = SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddr(
            device, f"{self._cmd_syntax}:DESTinationaddr"
        )
        self._protocol = SearchSearchItemTriggerABusAutoethernetIpheaderProtocol(
            device, f"{self._cmd_syntax}:PROTOcol"
        )
        self._sourceaddr = SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddr(
            device, f"{self._cmd_syntax}:SOUrceaddr"
        )

    @property
    def destinationaddr(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderDestinationaddr:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr?`` query and
              raise an AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr:VALue``
              command.
        """
        return self._destinationaddr

    @property
    def protocol(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderProtocol:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol:VALue`` command.
        """
        return self._protocol

    @property
    def sourceaddr(self) -> SearchSearchItemTriggerABusAutoethernetIpheaderSourceaddr:
        """``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:IPHeader:SOUrceaddr:VALue`` command.
        """
        return self._sourceaddr


class SearchSearchItemTriggerABusAutoethernetDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary value to use when searching on the AutoEthernet
          bus signal. The search condition needs to be set to DATa.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``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:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe``). The bits specified in the
          quoted string replace the least significant bits (LSB), leaving any unspecified upper bits
          unchanged.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetDataSize(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe`` command.

    **Description:**
        - This command sets or queries the length of the data string, in bytes, to use when
          searching on the AutoEthernet bus signal. The search condition needs to be set to DATa.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:SIZe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``NR1`` sets the data length, in bytes. It is an integer value whose minimum and default
          values are 1, and the maximum value is 16.
    """


class SearchSearchItemTriggerABusAutoethernetDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset value, in bytes, to use when searching on the
          AutoEthernet 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:AUTOETHERnet:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``NR1`` sets the data offset value, in bytes. It is an integer value whose minimum and
          default values are -1 (don't care) and maximum is 1,499.
    """


class SearchSearchItemTriggerABusAutoethernetDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the binary data value to be used when searching on an
          AutoEthernet bus signal. The search condition must be set to DATA and the data qualifier
          to inside or outside range.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``QString`` specifies the binary data value to be used when searching on an AutoEthernet
          bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAutoethernetData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet`` command.
        - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusAutoethernetDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusAutoethernetDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._size = SearchSearchItemTriggerABusAutoethernetDataSize(
            device, f"{self._cmd_syntax}:SIZe"
        )
        self._value = SearchSearchItemTriggerABusAutoethernetDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusAutoethernetDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the binary data value to be used when searching on an
              AutoEthernet bus signal. The search condition must be set to DATA and the data
              qualifier to inside or outside range.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``QString`` specifies the binary data value to be used when searching on an
              AutoEthernet bus signal.
        """
        return self._hivalue

    @property
    def offset(self) -> SearchSearchItemTriggerABusAutoethernetDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset value, in bytes, to use when searching on
              the AutoEthernet 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:AUTOETHERnet:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``NR1`` sets the data offset value, in bytes. It is an integer value whose minimum and
              default values are -1 (don't care) and maximum is 1,499.
        """
        return self._offset

    @property
    def size(self) -> SearchSearchItemTriggerABusAutoethernetDataSize:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe`` command.

        **Description:**
            - This command sets or queries the length of the data string, in bytes, to use when
              searching on the AutoEthernet bus signal. The search condition needs to be set to
              DATa.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:SIZe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``NR1`` sets the data length, in bytes. It is an integer value whose minimum and
              default values are 1, and the maximum value is 16.
        """
        return self._size

    @property
    def value(self) -> SearchSearchItemTriggerABusAutoethernetDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary value to use when searching on the
              AutoEthernet bus signal. The search condition needs to be set to DATa.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``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:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe``). The bits specified in the
              quoted string replace the least significant bits (LSB), leaving any unspecified upper
              bits unchanged.
        """
        return self._value


class SearchSearchItemTriggerABusAutoethernetCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition`` command.

    **Description:**
        - This command sets or queries the field or condition for which to search an AutoEthernet.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition {SSD|SFD|MACADDRess|MACLENgth|IPHeader| TCPHeader|DATa|EOP|FCSError|QTAG}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition?

    **Info:**
        - ``Search<x>`` is the Search number.
        - ``SSD`` specifies to search for Start of frame.
        - ``SFD`` specifies to search for Start of frame delimiter.
        - ``MACADDRess`` specifies to search for MAC addresses field.
        - ``MACLENgth`` specifies to search for MAC length/type field.
        - ``IPHeader`` specifies to search for IP header field.
        - ``TCPHeader`` specifies to search for TCP header field.
        - ``DATa`` specifies to search for TCP/IPv4 or MAC protocol client data field.
        - ``EOP`` specifies to search for End of Packet field.
        - ``FCSError`` specifies to search for Frame Check Sequence Error (CRC) field.
        - ``QTAG`` specifies to search for IEEE 802.1Q (VLAN) control information field.
    """  # noqa: E501


class SearchSearchItemTriggerABusAutoethernet(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa`` command tree.
        - ``.ipheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader`` command tree.
        - ``.mac``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC`` command tree.
        - ``.qtag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG`` command tree.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier`` command.
        - ``.tcpheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader`` command
          tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusAutoethernetCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusAutoethernetData(device, f"{self._cmd_syntax}:DATa")
        self._ipheader = SearchSearchItemTriggerABusAutoethernetIpheader(
            device, f"{self._cmd_syntax}:IPHeader"
        )
        self._mac = SearchSearchItemTriggerABusAutoethernetMac(device, f"{self._cmd_syntax}:MAC")
        self._qtag = SearchSearchItemTriggerABusAutoethernetQtag(device, f"{self._cmd_syntax}:QTAG")
        self._qualifier = SearchSearchItemTriggerABusAutoethernetQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._tcpheader = SearchSearchItemTriggerABusAutoethernetTcpheader(
            device, f"{self._cmd_syntax}:TCPHeader"
        )

    @property
    def condition(self) -> SearchSearchItemTriggerABusAutoethernetCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition`` command.

        **Description:**
            - This command sets or queries the field or condition for which to search an
              AutoEthernet.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition {SSD|SFD|MACADDRess|MACLENgth|IPHeader| TCPHeader|DATa|EOP|FCSError|QTAG}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``SSD`` specifies to search for Start of frame.
            - ``SFD`` specifies to search for Start of frame delimiter.
            - ``MACADDRess`` specifies to search for MAC addresses field.
            - ``MACLENgth`` specifies to search for MAC length/type field.
            - ``IPHeader`` specifies to search for IP header field.
            - ``TCPHeader`` specifies to search for TCP header field.
            - ``DATa`` specifies to search for TCP/IPv4 or MAC protocol client data field.
            - ``EOP`` specifies to search for End of Packet field.
            - ``FCSError`` specifies to search for Frame Check Sequence Error (CRC) field.
            - ``QTAG`` specifies to search for IEEE 802.1Q (VLAN) control information field.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusAutoethernetData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:HIVALue``
              command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:OFFSet`` command.
            - ``.size``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:SIZe`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa:VALue`` command.
        """
        return self._data

    @property
    def ipheader(self) -> SearchSearchItemTriggerABusAutoethernetIpheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.destinationaddr``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:DESTinationaddr`` command tree.
            - ``.protocol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:PROTOcol``
              command tree.
            - ``.sourceaddr``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader:SOUrceaddr`` command tree.
        """
        return self._ipheader

    @property
    def mac(self) -> SearchSearchItemTriggerABusAutoethernetMac:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:ADDRess`` command
              tree.
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC:LENgth`` command
              tree.
        """
        return self._mac

    @property
    def qtag(self) -> SearchSearchItemTriggerABusAutoethernetQtag:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG:VALue`` command.
        """
        return self._qtag

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusAutoethernetQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on an
              AutoEthernet bus signal. The search condition must be set to Client Data or MAC
              Length/Type.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet: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:AUTOETHERnet:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier {LESSthan|MOREthan|EQual|UNEQual| LESSEQual|MOREEQual| INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier?

        **Info:**
            - ``Search<x>`` is the Search number.
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def tcpheader(self) -> SearchSearchItemTriggerABusAutoethernetTcpheader:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        Sub-properties:
            - ``.acknum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:ACKnum``
              command tree.
            - ``.destinationport``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:DESTinationport`` command
              tree.
            - ``.seqnum``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SEQnum``
              command tree.
            - ``.sourceport``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader:SOUrceport`` command tree.
        """
        return self._tcpheader


class SearchSearchItemTriggerABusAudioDataWord(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD`` command.

    **Description:**
        - This command sets or queries the alignment of the data (left, right or either) to be used
          when searching on a non-TDM type audio bus signal. The search condition must be set to
          DATA using ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:NONTdm:CONDition``. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?`` query and raise an AssertionError if
          the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD {EITher|LEFt|RIGht}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?

    **Info:**
        - ``EITher`` aligns the data to either left or right.
        - ``LEFt`` aligns the data to the left.
        - ``RIGht`` aligns the data to the right.
    """


class SearchSearchItemTriggerABusAudioDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the single or low data word to be
          used when searching on an audio bus signal. The search condition must be set to DATA using
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio``:{NONTdm|TDM}``:CONDition``. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue?

    **Info:**
        - ``<QString>`` is the lower word value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAudioDataTdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the single or low data word to be
          used when searching on an TDM audio bus signal. The search condition must be set to DATA
          using ``SEARCH:SEARCH``{x}``:TRIGger:A:BUS:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?`` query and raise an AssertionError
          if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the single or low data word to be used when
          searching on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAudioDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on an audio bus
          signal. The search condition must be set to DATa using
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio``:{NONTdm|TDM}``:CONDition``. The search number is
          specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier?

    **Info:**
        - ``LESSthan`` sets the qualifier to less than.
        - ``MOREthan`` sets the qualifier to greater than.
        - ``EQual`` sets the qualifier to equal.
        - ``UNEQual`` sets the qualifier to not equal.
        - ``LESSEQual`` sets the qualifier to less than or equal.
        - ``MOREEQual`` sets the qualifier to greater than or equal.
        - ``INrange`` sets the qualifier to in range.
        - ``OUTrange`` sets the qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusAudioDataOffset(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet`` command.

    **Description:**
        - This command sets or queries the data offset value (TDM channel) to be used when searching
          on a TDM type audio bus signal. The search condition must be set to DATa using
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:TDM:CONDition``. The search number is specified by
          x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:OFFSet value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet <NR1>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet?

    **Info:**
        - ``<NR1>`` is the data offset value.
    """


class SearchSearchItemTriggerABusAudioDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the high data word to be used when
          searching on an audio bus signal. The search condition must be set to DATa using
          ``:SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition``. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue?

    **Info:**
        - ``<QString>`` specifies the upper word value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAudioDataHitdmvalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue`` command.

    **Description:**
        - This command sets or queries the binary data string for the high data word to be used when
          searching on an TDM audio bus signal. The search condition must be set to DATa using
          ``SEARCH:SEARCH``{x}``:TRIGger:A:BUS:AUDio:CONDition``.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?`` query and raise an
          AssertionError if the returned value does not match ``value``.
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?

    **Info:**
        - ``<QString>`` is the binary data string for the high data word to be used when searching
          on an TDM audio bus signal.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusAudioData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.hitdmvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue`` command.
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue`` command.
        - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier`` command.
        - ``.tdmvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue`` command.
        - ``.word``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hitdmvalue = SearchSearchItemTriggerABusAudioDataHitdmvalue(
            device, f"{self._cmd_syntax}:HITDMVALue"
        )
        self._hivalue = SearchSearchItemTriggerABusAudioDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._offset = SearchSearchItemTriggerABusAudioDataOffset(
            device, f"{self._cmd_syntax}:OFFSet"
        )
        self._qualifier = SearchSearchItemTriggerABusAudioDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._tdmvalue = SearchSearchItemTriggerABusAudioDataTdmvalue(
            device, f"{self._cmd_syntax}:TDMVALue"
        )
        self._value = SearchSearchItemTriggerABusAudioDataValue(device, f"{self._cmd_syntax}:VALue")
        self._word = SearchSearchItemTriggerABusAudioDataWord(device, f"{self._cmd_syntax}:WORD")

    @property
    def hitdmvalue(self) -> SearchSearchItemTriggerABusAudioDataHitdmvalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the high data word to be used
              when searching on an TDM audio bus signal. The search condition must be set to DATa
              using ``SEARCH:SEARCH``{x}``:TRIGger:A:BUS:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the high data word to be used when
              searching on an TDM audio bus signal.
        """
        return self._hitdmvalue

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusAudioDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the high data word to be used
              when searching on an audio bus signal. The search condition must be set to DATa using
              ``:SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition``. The search number is specified by
              x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue?

        **Info:**
            - ``<QString>`` specifies the upper word value.
        """
        return self._hivalue

    @property
    def offset(self) -> SearchSearchItemTriggerABusAudioDataOffset:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet`` command.

        **Description:**
            - This command sets or queries the data offset value (TDM channel) to be used when
              searching on a TDM type audio bus signal. The search condition must be set to DATa
              using ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:TDM:CONDition``. The search number is
              specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:OFFSet value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet <NR1>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet?

        **Info:**
            - ``<NR1>`` is the data offset value.
        """
        return self._offset

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusAudioDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on an audio bus
              signal. The search condition must be set to DATa using
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio``:{NONTdm|TDM}``:CONDition``. The search number
              is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier {EQual|UNEQual| LESSthan|MOREthan|LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier?

        **Info:**
            - ``LESSthan`` sets the qualifier to less than.
            - ``MOREthan`` sets the qualifier to greater than.
            - ``EQual`` sets the qualifier to equal.
            - ``UNEQual`` sets the qualifier to not equal.
            - ``LESSEQual`` sets the qualifier to less than or equal.
            - ``MOREEQual`` sets the qualifier to greater than or equal.
            - ``INrange`` sets the qualifier to in range.
            - ``OUTrange`` sets the qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def tdmvalue(self) -> SearchSearchItemTriggerABusAudioDataTdmvalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the single or low data word to
              be used when searching on an TDM audio bus signal. The search condition must be set to
              DATA using ``SEARCH:SEARCH``{x}``:TRIGger:A:BUS:AUDio:CONDition``.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?`` query and raise an
              AssertionError if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue?

        **Info:**
            - ``<QString>`` is the binary data string for the single or low data word to be used
              when searching on an TDM audio bus signal.
        """
        return self._tdmvalue

    @property
    def value(self) -> SearchSearchItemTriggerABusAudioDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the binary data string for the single or low data word to
              be used when searching on an audio bus signal. The search condition must be set to
              DATA using ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio``:{NONTdm|TDM}``:CONDition``. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue?

        **Info:**
            - ``<QString>`` is the lower word value.
        """
        return self._value

    @property
    def word(self) -> SearchSearchItemTriggerABusAudioDataWord:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD`` command.

        **Description:**
            - This command sets or queries the alignment of the data (left, right or either) to be
              used when searching on a non-TDM type audio bus signal. The search condition must be
              set to DATA using ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:NONTdm:CONDition``. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?`` query and raise an AssertionError
              if the returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD {EITher|LEFt|RIGht}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD?

        **Info:**
            - ``EITher`` aligns the data to either left or right.
            - ``LEFt`` aligns the data to the left.
            - ``RIGht`` aligns the data to the right.
        """
        return self._word


class SearchSearchItemTriggerABusAudioCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition`` command.

    **Description:**
        - This command sets or queries the condition (word select / frame sync, or matching data) to
          be used when searching on an audio bus signal. The search number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition {SOF|DATa}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition?

    **Info:**
        - ``SOF`` specifies to search on a word select or start of frame (depending on Audio Type).
        - ``DATA`` specifies to search on matching data.
    """


class SearchSearchItemTriggerABusAudio(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusAudioCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusAudioData(device, f"{self._cmd_syntax}:DATa")

    @property
    def condition(self) -> SearchSearchItemTriggerABusAudioCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition`` command.

        **Description:**
            - This command sets or queries the condition (word select / frame sync, or matching
              data) to be used when searching on an audio bus signal. The search number is specified
              by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio: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:AUDio:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition {SOF|DATa}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition?

        **Info:**
            - ``SOF`` specifies to search on a word select or start of frame (depending on Audio
              Type).
            - ``DATA`` specifies to search on matching data.
        """
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusAudioData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.hitdmvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HITDMVALue`` command.
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:HIVALue`` command.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:OFFSet`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:QUALifier`` command.
            - ``.tdmvalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:TDMVALue`` command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:VALue`` command.
            - ``.word``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa:WORD`` command.
        """
        return self._data


class SearchSearchItemTriggerABusArinc429aSsmValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue`` command.

    **Description:**
        - This command sets or queries the label when searching on an ARINC429 SSM field. The search
          number is specified by x. The search condition must be set to DATa or LABELANDDATA, and
          the data format must be set to DATA or SDIDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM: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:ARINC429A:SSM:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aSsm(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusArinc429aSsmValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusArinc429aSsmValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue`` command.

        **Description:**
            - This command sets or queries the label when searching on an ARINC429 SSM field. The
              search number is specified by x. The search condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA or SDIDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM: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:ARINC429A:SSM:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class SearchSearchItemTriggerABusArinc429aSdiValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue`` command.

    **Description:**
        - This command sets or queries the label when searching on an ARINC429 SDI field. The search
          number is specified by x. The search condition must be set to DATa or LABELANDDATA, and
          the data format must be set to DATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI: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:ARINC429A:SDI:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aSdi(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._value = SearchSearchItemTriggerABusArinc429aSdiValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def value(self) -> SearchSearchItemTriggerABusArinc429aSdiValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue`` command.

        **Description:**
            - This command sets or queries the label when searching on an ARINC429 SDI field. The
              search number is specified by x. The search condition must be set to DATa or
              LABELANDDATA, and the data format must be set to DATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI: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:ARINC429A:SDI:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class SearchSearchItemTriggerABusArinc429aLabelValue(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue`` command.

    **Description:**
        - This command sets or queries the low value when searching on an ARINC429 label field. The
          search number is specified by x. The search condition must be set to LABel or
          LABELANDDATA.

    **Usage:**
        - Using the ``.write(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue <QString>

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aLabelQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on label data for an
          ARINC429 bus signal. The search number is specified by x. The search condition must be set
          to LABel or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel: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:ARINC429A:LABel:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusArinc429aLabelHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when searching on an ARINC429 label field. The
          search number is specified by x. The search condition must be set to LABel, and the label
          qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel: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:ARINC429A:LABel:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aLabel(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusArinc429aLabelHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusArinc429aLabelQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusArinc429aLabelValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusArinc429aLabelHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when searching on an ARINC429 label field.
              The search number is specified by x. The search condition must be set to LABel, and
              the label qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel: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:ARINC429A:LABel:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusArinc429aLabelQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on label data for
              an ARINC429 bus signal. The search number is specified by x. The search condition must
              be set to LABel or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel: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:ARINC429A:LABel:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusArinc429aLabelValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue`` command.

        **Description:**
            - This command sets or queries the low value when searching on an ARINC429 label field.
              The search number is specified by x. The search condition must be set to LABel or
              LABELANDDATA.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue <QString>

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class SearchSearchItemTriggerABusArinc429aErrtype(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe`` command.

    **Description:**
        - This command sets or queries the error type when searching on an ARINC429 bus signal. 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:ARINC429A:ERRTYPe?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:ERRTYPe value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe?

    **Info:**
        - ``ANY`` sets the error type to match any of the other available error types.
        - ``PARity`` sets the error type to match on parity errors (parity value results in even
          parity count for a word).
        - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
          data).
        - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time between
          two packets on the bus).
    """


class SearchSearchItemTriggerABusArinc429aDataValue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue`` command.

    **Description:**
        - This command sets or queries the low value when searching on an ARINC429 data field. The
          search number is specified by x. The search condition must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:VALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aDataQualifier(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier`` command.

    **Description:**
        - This command sets or queries the qualifier to be used when searching on data in the DATA
          field for an ARINC429 bus signal. The search number is specified by x. The search
          condition must be set to DATa or LABELANDDATA.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:QUALifier value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier?

    **Info:**
        - ``EQual`` sets the data qualifier to equal.
        - ``UNEQual`` sets the data qualifier to unequal.
        - ``LESSthan`` sets the data qualifier to less than.
        - ``MOREthan`` sets the data qualifier to more than.
        - ``LESSEQual`` sets the data qualifier to less equal.
        - ``MOREEQual`` sets the data qualifier to more equal.
        - ``INrange`` sets the data qualifier to in range.
        - ``OUTrange`` sets the data qualifier to out of range.
    """  # noqa: E501


class SearchSearchItemTriggerABusArinc429aDataHivalue(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue`` command.

    **Description:**
        - This command sets or queries the high value when searching on an ARINC429 data field. The
          search number is specified by x. The search condition must be set to DATa or LABELANDDATA,
          and the data qualifier must be INrange or OUTrange.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:HIVALue value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue <QString>
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue?

    **Info:**
        - ``<QString>`` is the label value.
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchSearchItemTriggerABusArinc429aData(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa?`` query and raise an AssertionError if
          the returned value does not match ``value``.

    Properties:
        - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue`` command.
        - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier`` command.
        - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue`` command.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._hivalue = SearchSearchItemTriggerABusArinc429aDataHivalue(
            device, f"{self._cmd_syntax}:HIVALue"
        )
        self._qualifier = SearchSearchItemTriggerABusArinc429aDataQualifier(
            device, f"{self._cmd_syntax}:QUALifier"
        )
        self._value = SearchSearchItemTriggerABusArinc429aDataValue(
            device, f"{self._cmd_syntax}:VALue"
        )

    @property
    def hivalue(self) -> SearchSearchItemTriggerABusArinc429aDataHivalue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue`` command.

        **Description:**
            - This command sets or queries the high value when searching on an ARINC429 data field.
              The search number is specified by x. The search condition must be set to DATa or
              LABELANDDATA, and the data qualifier must be INrange or OUTrange.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:HIVALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._hivalue

    @property
    def qualifier(self) -> SearchSearchItemTriggerABusArinc429aDataQualifier:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier`` command.

        **Description:**
            - This command sets or queries the qualifier to be used when searching on data in the
              DATA field for an ARINC429 bus signal. The search number is specified by x. The search
              condition must be set to DATa or LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:QUALifier value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier {EQual|UNEQual|LESSthan|MOREthan |LESSEQual|MOREEQual|INrange|OUTrange}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier?

        **Info:**
            - ``EQual`` sets the data qualifier to equal.
            - ``UNEQual`` sets the data qualifier to unequal.
            - ``LESSthan`` sets the data qualifier to less than.
            - ``MOREthan`` sets the data qualifier to more than.
            - ``LESSEQual`` sets the data qualifier to less equal.
            - ``MOREEQual`` sets the data qualifier to more equal.
            - ``INrange`` sets the data qualifier to in range.
            - ``OUTrange`` sets the data qualifier to out of range.
        """  # noqa: E501
        return self._qualifier

    @property
    def value(self) -> SearchSearchItemTriggerABusArinc429aDataValue:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue`` command.

        **Description:**
            - This command sets or queries the low value when searching on an ARINC429 data field.
              The search number is specified by x. The search condition must be set to DATa or
              LABELANDDATA.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:DATa:VALue value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue <QString>
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue?

        **Info:**
            - ``<QString>`` is the label value.
        """
        return self._value


class SearchSearchItemTriggerABusArinc429aCondition(SCPICmdWrite, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition`` command.

    **Description:**
        - This command specifies a field or condition for an ARINC429 bus to search on. The search
          number is specified by x.

    **Usage:**
        - Using the ``.query()`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition?`` query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:CONDition value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA|EOW|ERRor}
        - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition?

    **Info:**
        - ``SOW`` specifies a search for the first bit of a word.
        - ``LABel`` specifies a search for a matching label.
        - ``DATa`` specifies a search for matching packet data fields.
        - ``LABELANDDATA`` specifies a search for a matching label and matching packet data
          field(s).
        - ``EOW`` specifies a search for the 32nd bit of a word.
        - ``ERRor`` specifies a search for a specified error condition.
    """


class SearchSearchItemTriggerABusArinc429a(SCPICmdRead):
    """The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A`` command tree.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A?``
          query.
        - Using the ``.verify(value)`` method will send the
          ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A?`` query and raise an AssertionError if the
          returned value does not match ``value``.

    Properties:
        - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition`` command.
        - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa`` command tree.
        - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe`` command.
        - ``.label``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel`` command tree.
        - ``.sdi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI`` command tree.
        - ``.ssm``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM`` command tree.
    """

    def __init__(self, device: Optional["PIDevice"], cmd_syntax: str) -> None:
        super().__init__(device, cmd_syntax)
        self._condition = SearchSearchItemTriggerABusArinc429aCondition(
            device, f"{self._cmd_syntax}:CONDition"
        )
        self._data = SearchSearchItemTriggerABusArinc429aData(device, f"{self._cmd_syntax}:DATa")
        self._errtype = SearchSearchItemTriggerABusArinc429aErrtype(
            device, f"{self._cmd_syntax}:ERRTYPe"
        )
        self._label = SearchSearchItemTriggerABusArinc429aLabel(device, f"{self._cmd_syntax}:LABel")
        self._sdi = SearchSearchItemTriggerABusArinc429aSdi(device, f"{self._cmd_syntax}:SDI")
        self._ssm = SearchSearchItemTriggerABusArinc429aSsm(device, f"{self._cmd_syntax}:SSM")

    @property
    def condition(self) -> SearchSearchItemTriggerABusArinc429aCondition:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition`` command.

        **Description:**
            - This command specifies a field or condition for an ARINC429 bus to search on. The
              search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:CONDition value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition {SOW|LABel|DATa|LABELANDDATA|EOW|ERRor}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition?

        **Info:**
            - ``SOW`` specifies a search for the first bit of a word.
            - ``LABel`` specifies a search for a matching label.
            - ``DATa`` specifies a search for matching packet data fields.
            - ``LABELANDDATA`` specifies a search for a matching label and matching packet data
              field(s).
            - ``EOW`` specifies a search for the 32nd bit of a word.
            - ``ERRor`` specifies a search for a specified error condition.
        """  # noqa: E501
        return self._condition

    @property
    def data(self) -> SearchSearchItemTriggerABusArinc429aData:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa:VALue`` command.
        """
        return self._data

    @property
    def errtype(self) -> SearchSearchItemTriggerABusArinc429aErrtype:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe`` command.

        **Description:**
            - This command sets or queries the error type when searching on an ARINC429 bus signal.
              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:ARINC429A:ERRTYPe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A: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:ARINC429A:ERRTYPe value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe {ANY|PARity|WORD|GAP}
            - SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe?

        **Info:**
            - ``ANY`` sets the error type to match any of the other available error types.
            - ``PARity`` sets the error type to match on parity errors (parity value results in even
              parity count for a word).
            - ``WORD`` sets the error type to match on word errors (any unframed or unknown decode
              data).
            - ``GAP`` sets the error type to match on gap violations (less than 4 bits idle time
              between two packets on the bus).
        """
        return self._errtype

    @property
    def label(self) -> SearchSearchItemTriggerABusArinc429aLabel:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel?`` query and raise an AssertionError
              if the returned value does not match ``value``.

        Sub-properties:
            - ``.hivalue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:HIVALue`` command.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:QUALifier``
              command.
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel:VALue`` command.
        """
        return self._label

    @property
    def sdi(self) -> SearchSearchItemTriggerABusArinc429aSdi:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI:VALue`` command.
        """
        return self._sdi

    @property
    def ssm(self) -> SearchSearchItemTriggerABusArinc429aSsm:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.value``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM:VALue`` command.
        """
        return self._ssm


#  pylint: disable=too-many-instance-attributes,too-many-public-methods
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:
        - ``.arinc429a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A`` command tree.
        - ``.audio``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio`` command tree.
        - ``.autoethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet`` command tree.
        - ``.b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B`` command tree.
        - ``.can``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.
        - ``.cphy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY`` command tree.
        - ``.cxpi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI`` command tree.
        - ``.dphy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY`` command tree.
        - ``.espi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI`` command tree.
        - ``.ethercat``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT`` command tree.
        - ``.ethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.
        - ``.eusb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB`` command tree.
        - ``.flexray``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.
        - ``.i2c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.
        - ``.i3c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C`` command tree.
        - ``.lin``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.
        - ``.manchester``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester`` command tree.
        - ``.mdio``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO`` command tree.
        - ``.mil1553b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.
        - ``.nrz``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ`` command tree.
        - ``.onewire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe`` command tree.
        - ``.parallel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.
        - ``.rs232c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.
        - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.
        - ``.sdlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC`` command tree.
        - ``.sent``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT`` command tree.
        - ``.smbus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS`` command tree.
        - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.
        - ``.spacewire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe`` command tree.
        - ``.spi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.
        - ``.spmi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI`` command tree.
        - ``.svid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID`` 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._arinc429a = SearchSearchItemTriggerABusArinc429a(
            device, f"{self._cmd_syntax}:ARINC429A"
        )
        self._audio = SearchSearchItemTriggerABusAudio(device, f"{self._cmd_syntax}:AUDio")
        self._autoethernet = SearchSearchItemTriggerABusAutoethernet(
            device, f"{self._cmd_syntax}:AUTOETHERnet"
        )
        self._b = SearchSearchItemTriggerABusB(device, f"{self._cmd_syntax}:B")
        self._can = SearchSearchItemTriggerABusCan(device, f"{self._cmd_syntax}:CAN")
        self._cphy = SearchSearchItemTriggerABusCphy(device, f"{self._cmd_syntax}:CPHY")
        self._cxpi = SearchSearchItemTriggerABusCxpi(device, f"{self._cmd_syntax}:CXPI")
        self._dphy = SearchSearchItemTriggerABusDphy(device, f"{self._cmd_syntax}:DPHY")
        self._espi = SearchSearchItemTriggerABusEspi(device, f"{self._cmd_syntax}:ESPI")
        self._ethercat = SearchSearchItemTriggerABusEthercat(device, f"{self._cmd_syntax}:ETHERCAT")
        self._ethernet = SearchSearchItemTriggerABusEthernet(device, f"{self._cmd_syntax}:ETHERnet")
        self._eusb = SearchSearchItemTriggerABusEusb(device, f"{self._cmd_syntax}:EUSB")
        self._flexray = SearchSearchItemTriggerABusFlexray(device, f"{self._cmd_syntax}:FLEXRAY")
        self._i2c = SearchSearchItemTriggerABusI2c(device, f"{self._cmd_syntax}:I2C")
        self._i3c = SearchSearchItemTriggerABusI3c(device, f"{self._cmd_syntax}:I3C")
        self._lin = SearchSearchItemTriggerABusLin(device, f"{self._cmd_syntax}:LIN")
        self._manchester = SearchSearchItemTriggerABusManchester(
            device, f"{self._cmd_syntax}:MANChester"
        )
        self._mdio = SearchSearchItemTriggerABusMdio(device, f"{self._cmd_syntax}:MDIO")
        self._mil1553b = SearchSearchItemTriggerABusMil1553b(device, f"{self._cmd_syntax}:MIL1553B")
        self._nrz = SearchSearchItemTriggerABusNrz(device, f"{self._cmd_syntax}:NRZ")
        self._onewire = SearchSearchItemTriggerABusOnewire(device, f"{self._cmd_syntax}:ONEWIRe")
        self._parallel = SearchSearchItemTriggerABusParallel(device, f"{self._cmd_syntax}:PARallel")
        self._rs232c = SearchSearchItemTriggerABusRs232c(device, f"{self._cmd_syntax}:RS232C")
        self._s8b10b = SearchSearchItemTriggerABusS8b10b(device, f"{self._cmd_syntax}:S8B10B")
        self._sdlc = SearchSearchItemTriggerABusSdlc(device, f"{self._cmd_syntax}:SDLC")
        self._sent = SearchSearchItemTriggerABusSent(device, f"{self._cmd_syntax}:SENT")
        self._smbus = SearchSearchItemTriggerABusSmbus(device, f"{self._cmd_syntax}:SMBUS")
        self._source = SearchSearchItemTriggerABusSource(device, f"{self._cmd_syntax}:SOUrce")
        self._spacewire = SearchSearchItemTriggerABusSpacewire(
            device, f"{self._cmd_syntax}:SPACEWIRe"
        )
        self._spi = SearchSearchItemTriggerABusSpi(device, f"{self._cmd_syntax}:SPI")
        self._spmi = SearchSearchItemTriggerABusSpmi(device, f"{self._cmd_syntax}:SPMI")
        self._svid = SearchSearchItemTriggerABusSvid(device, f"{self._cmd_syntax}:SVID")
        self._usb = SearchSearchItemTriggerABusUsb(device, f"{self._cmd_syntax}:USB")

    @property
    def arinc429a(self) -> SearchSearchItemTriggerABusArinc429a:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:DATa`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:ERRTYPe`` command.
            - ``.label``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:LABel`` command tree.
            - ``.sdi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SDI`` command tree.
            - ``.ssm``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A:SSM`` command tree.
        """
        return self._arinc429a

    @property
    def audio(self) -> SearchSearchItemTriggerABusAudio:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio:DATa`` command tree.
        """
        return self._audio

    @property
    def autoethernet(self) -> SearchSearchItemTriggerABusAutoethernet:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:DATa`` command tree.
            - ``.ipheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:IPHeader`` command
              tree.
            - ``.mac``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:MAC`` command tree.
            - ``.qtag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QTAG`` command tree.
            - ``.qualifier``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:QUALifier`` command.
            - ``.tcpheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet:TCPHeader`` command
              tree.
        """
        return self._autoethernet

    @property
    def b(self) -> SearchSearchItemTriggerABusB:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.nrz``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:NRZ`` command tree.
            - ``.psifive``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:PSIFIVe`` command tree.
            - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B:S8B10B`` command tree.
        """
        return self._b

    @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.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:ERRType`` command.
            - ``.fd``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN:FD`` 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 cphy(self) -> SearchSearchItemTriggerABusCphy:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:BLUe`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:DATa`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ERRor`` command tree.
            - ``.escapemode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:ESCAPEMODe`` command tree.
            - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:GREen`` command tree.
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:MODe`` command tree.
            - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PACKets`` command tree.
            - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:PIXel`` command tree.
            - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:RED`` command tree.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:SYMBol`` command tree.
            - ``.word``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORD`` command tree.
            - ``.wordcount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:WORDCOUNt`` command tree.
            - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YCBCR`` command tree.
            - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY:YUV`` command tree.
        """
        return self._cphy

    @property
    def cxpi(self) -> SearchSearchItemTriggerABusCxpi:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:CONDition`` command.
            - ``.counter``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:COUNter`` command tree.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DATa`` command tree.
            - ``.dlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:DLC`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:ERROR`` command tree.
            - ``.extdlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:EXTDLC`` command tree.
            - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMEID`` command tree.
            - ``.frame``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:FRAMe`` command tree.
            - ``.netmn``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI:NETMN`` command tree.
        """
        return self._cxpi

    @property
    def dphy(self) -> SearchSearchItemTriggerABusDphy:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.blue``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:BLUe`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:DATa`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ERRor`` command tree.
            - ``.escapemode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:ESCAPEMODe`` command tree.
            - ``.green``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:GREen`` command tree.
            - ``.mode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:MODe`` command tree.
            - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PACKets`` command tree.
            - ``.pixel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:PIXel`` command tree.
            - ``.red``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:RED`` command tree.
            - ``.wordcount``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:WORDCOUNt`` command tree.
            - ``.ycbcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YCBCR`` command tree.
            - ``.yuv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY:YUV`` command tree.
        """
        return self._dphy

    @property
    def espi(self) -> SearchSearchItemTriggerABusEspi:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ADDRess`` command tree.
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:COMMAND`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CONDition`` command.
            - ``.cycletype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:CYCLETYPe`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:DATa`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:ERRor`` command tree.
            - ``.length``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:LENGth`` command tree.
            - ``.phase``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:PHASe`` command.
            - ``.respcycle``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:RESPCYCLE`` command tree.
            - ``.smbus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:SMBUS`` command tree.
            - ``.tag``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:TAG`` command tree.
            - ``.virtualwire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI:VIRTUALWIRe`` command
              tree.
        """
        return self._espi

    @property
    def ethercat(self) -> SearchSearchItemTriggerABusEthercat:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.addressmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ADDRESSMODe`` command.
            - ``.cntnv``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CNTNV`` command tree.
            - ``.commandtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:COMMANDTYPe`` command.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CONDition`` command.
            - ``.cyc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:CYC`` command tree.
            - ``.datagram``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAM`` command.
            - ``.datagramheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATAGRAMHEADer``
              command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DATa`` command tree.
            - ``.destinationaddress``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DESTINATIONADDRess`` command tree.
            - ``.deviceaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:DEVICEADDRess``
              command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:ERRor`` command tree.
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:FRAMETYPe`` command.
            - ``.hash``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HASH`` command tree.
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:HEADer`` command tree.
            - ``.identification``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDENtification``
              command tree.
            - ``.idx``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IDX`` command tree.
            - ``.index``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:INDex`` command tree.
            - ``.ipdestination``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPDESTination``
              command tree.
            - ``.ipsource``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IPSOURce`` command tree.
            - ``.irq``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:IRQ`` command tree.
            - ``.len``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LEN`` command tree.
            - ``.logicaladdress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:LOGICALADDRess``
              command tree.
            - ``.mailboxtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILBOXTYPe`` command.
            - ``.mailbox``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:MAILbox`` command.
            - ``.networkvariable``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWORKVARiable``
              command tree.
            - ``.network``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:NETWork`` command tree.
            - ``.offset``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:OFFSet`` command tree.
            - ``.position``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:POSition`` command tree.
            - ``.protocoltype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PROTOCOLTYPe``
              command.
            - ``.pubid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:PUBID`` command tree.
            - ``.quality``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:QUALity`` command tree.
            - ``.service``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SERVice`` command tree.
            - ``.sourceaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SOURCEADDRess``
              command tree.
            - ``.src``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:SRC`` command tree.
            - ``.tci``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:TCI`` command tree.
            - ``.wkc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT:WKC`` command tree.
        """
        return self._ethercat

    @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.
            - ``.tcpheader``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet:TCPHeader`` command
              tree.
        """
        return self._ethernet

    @property
    def eusb(self) -> SearchSearchItemTriggerABusEusb:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ADDress`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:CONDition`` command.
            - ``.databits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATABITS`` command tree.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:DATa`` command tree.
            - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDPoint`` command tree.
            - ``.endsearch``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ENDSEARch`` command.
            - ``.eop``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOP`` command tree.
            - ``.eopbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:EOPBITS`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:ERRType`` command.
            - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:HANDSHAKEType`` command.
            - ``.rap``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:RAP`` command tree.
            - ``.sofframenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SOFFRAMENUMber``
              command.
            - ``.specialtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPECIALType`` command.
            - ``.split``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SPLit`` command tree.
            - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNC`` command tree.
            - ``.syncbits``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCBITS`` command tree.
            - ``.syncsearch``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:SYNCSEARch`` command.
            - ``.tokentype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB:TOKENType`` command.
        """
        return self._eusb

    @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.
            - ``.frameid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEID`` command tree.
            - ``.frametype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:FRAMEType`` command.
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY:HEADER`` 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 i3c(self) -> SearchSearchItemTriggerABusI3c:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ADDRess`` command tree.
            - ``.bcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCR`` command tree.
            - ``.bcrtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BCRType`` command tree.
            - ``.bpackets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BPACKets`` command.
            - ``.brgtid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:BRGTID`` command tree.
            - ``.ccode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CCODe`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DATa`` command tree.
            - ``.dcr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCR`` command tree.
            - ``.dcrtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DCRType`` command tree.
            - ``.dword``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:DWORd`` command tree.
            - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ERRORTYPe`` command.
            - ``.eventbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:EVENTBYTe`` command tree.
            - ``.freqbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:FREQBYTe`` command tree.
            - ``.gslsb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSLSb`` command tree.
            - ``.gsmsb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:GSMSb`` command tree.
            - ``.id``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:ID`` command tree.
            - ``.inaccbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:INACCBYTe`` command tree.
            - ``.maxread``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXREAD`` command tree.
            - ``.maxrturn``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXRTURN`` command tree.
            - ``.maxwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:MAXWRITe`` command tree.
            - ``.packets``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:PACKets`` command.
            - ``.saddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SADDress`` command tree.
            - ``.sdr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SDR`` command tree.
            - ``.statebyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATEBYTe`` command tree.
            - ``.static``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:STATic`` command tree.
            - ``.supportbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:SUPPORTBYTe`` command tree.
            - ``.testmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C:TESTMODe`` command tree.
        """
        return self._i3c

    @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 manchester(self) -> SearchSearchItemTriggerABusManchester:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester?`` query and raise an AssertionError if
              the returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:DATa`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:ERRor`` command tree.
            - ``.header``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:HEADER`` command tree.
            - ``.sync``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:SYNC`` command tree.
            - ``.trailer``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:TRAILER`` command tree.
            - ``.packetoffdata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester:packetOffData``
              command tree.
        """
        return self._manchester

    @property
    def mdio(self) -> SearchSearchItemTriggerABusMdio:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ADDress`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DATa`` command tree.
            - ``.devicetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:DEVicetype`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:ERRType`` command.
            - ``.opcode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:OPCode`` command tree.
            - ``.physicaladdress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:PHYSicaladdress``
              command tree.
            - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO:REGisteraddress``
              command tree.
        """
        return self._mdio

    @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.
        """
        return self._mil1553b

    @property
    def nrz(self) -> SearchSearchItemTriggerABusNrz:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ:DATa`` command tree.
        """
        return self._nrz

    @property
    def onewire(self) -> SearchSearchItemTriggerABusOnewire:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:COMMand`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:DATa`` command tree.
            - ``.matchrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:MATCHROM`` command tree.
            - ``.overdrive``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:OVERDRIVe`` command tree.
            - ``.readrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:READROM`` command tree.
            - ``.searchrom``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe:SEARCHROM`` command tree.
        """
        return self._onewire

    @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 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 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:
            - ``.disparity``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:DISParity`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:ERRor`` command.
            - ``.symbol``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B:SYMbol`` command tree.
        """
        return self._s8b10b

    @property
    def sdlc(self) -> SearchSearchItemTriggerABusSdlc:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ADDRess`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:DATa`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:ERROR`` command tree.
            - ``.frame``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:FRAMe`` command tree.
            - ``.staddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:STADDress`` command tree.
            - ``.supervisory``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:SUPervisory`` command
              tree.
            - ``.unnumbered``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC:UNNumbered`` command tree.
        """
        return self._sdlc

    @property
    def sent(self) -> SearchSearchItemTriggerABusSent:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:CONDition`` command.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:ERRType`` command.
            - ``.fast``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:FAST`` command tree.
            - ``.pause``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:PAUSE`` command tree.
            - ``.slow``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT:SLOW`` command tree.
        """
        return self._sent

    @property
    def smbus(self) -> SearchSearchItemTriggerABusSmbus:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.address``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ADDRess`` command tree.
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:COMMand`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DATa`` command tree.
            - ``.deviceaddr``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:DEVICEADDR`` command tree.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:ERROr`` command tree.
            - ``.fieldbyte``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:FIELDBYTe`` command.
            - ``.udiddata``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS:UDIDDATa`` command tree.
        """
        return self._smbus

    @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 spacewire(self) -> SearchSearchItemTriggerABusSpacewire:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONDition`` command.
            - ``.controlchartype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCHARTYPe``
              command.
            - ``.controlcodetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:CONTROLCODETYPe``
              command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:DATa`` command tree.
            - ``.errortype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:ERRORTYPe`` command.
            - ``.timecode``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe:TIMECode`` command tree.
        """
        return self._spacewire

    @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.
            - ``.sourcetype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI:SOURCETYpe`` command.
        """
        return self._spi

    @property
    def spmi(self) -> SearchSearchItemTriggerABusSpmi:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:DATa`` command tree.
            - ``.masteraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:MASTERADDRess`` command
              tree.
            - ``.noresponse``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:NORESPonse`` command.
            - ``.registeraddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:REGISTERADDRess``
              command tree.
            - ``.slaveaddress``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI:SLAVEADDRess`` command
              tree.
        """
        return self._spmi

    @property
    def svid(self) -> SearchSearchItemTriggerABusSvid:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.command``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:COMMand`` command tree.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:CONDition`` command.
            - ``.error``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:ERRor`` command tree.
            - ``.payload``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:PAYLoad`` command tree.
            - ``.slave``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID:SLAVE`` command tree.
        """
        return self._svid

    @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.
            - ``.condition``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:CONDition`` command.
            - ``.data``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:DATa`` command tree.
            - ``.endpoint``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ENDPoint`` command tree.
            - ``.errtype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:ERRTYPE`` command.
            - ``.handshaketype``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:HANDSHAKEType`` command.
            - ``.sofframenumber``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB:SOFFRAMENUMber``
              command.
            - ``.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.
        - ``.ddrread``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD`` command tree.
        - ``.ddrreadwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE`` command tree.
        - ``.ddrwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE`` command tree.
        - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.
        - ``.logic``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.
        - ``.pulsewidth``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth`` 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.
        - ``.stopacq``: The ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq`` command.
        - ``.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.
        - ``.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._ddrread = SearchSearchItemTriggerADdrread(device, f"{self._cmd_syntax}:DDRREAD")
        self._ddrreadwrite = SearchSearchItemTriggerADdrreadwrite(
            device, f"{self._cmd_syntax}:DDRREADWRITE"
        )
        self._ddrwrite = SearchSearchItemTriggerADdrwrite(device, f"{self._cmd_syntax}:DDRWRITE")
        self._edge = SearchSearchItemTriggerAEdge(device, f"{self._cmd_syntax}:EDGE")
        self._logic = SearchSearchItemTriggerALogic(device, f"{self._cmd_syntax}:LOGIc")
        self._pulsewidth = SearchSearchItemTriggerAPulsewidth(
            device, f"{self._cmd_syntax}:PULSEWidth"
        )
        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._stopacq = SearchSearchItemTriggerAStopacq(device, f"{self._cmd_syntax}:STOPAcq")
        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._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:
            - ``.arinc429a``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ARINC429A`` command tree.
            - ``.audio``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUDio`` command tree.
            - ``.autoethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:AUTOETHERnet`` command tree.
            - ``.b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:B`` command tree.
            - ``.can``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CAN`` command tree.
            - ``.cphy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CPHY`` command tree.
            - ``.cxpi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:CXPI`` command tree.
            - ``.dphy``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:DPHY`` command tree.
            - ``.espi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ESPI`` command tree.
            - ``.ethercat``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERCAT`` command tree.
            - ``.ethernet``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ETHERnet`` command tree.
            - ``.eusb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:EUSB`` command tree.
            - ``.flexray``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:FLEXRAY`` command tree.
            - ``.i2c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I2C`` command tree.
            - ``.i3c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:I3C`` command tree.
            - ``.lin``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:LIN`` command tree.
            - ``.manchester``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MANChester`` command tree.
            - ``.mdio``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MDIO`` command tree.
            - ``.mil1553b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:MIL1553B`` command tree.
            - ``.nrz``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:NRZ`` command tree.
            - ``.onewire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:ONEWIRe`` command tree.
            - ``.parallel``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:PARallel`` command tree.
            - ``.rs232c``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:RS232C`` command tree.
            - ``.s8b10b``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:S8B10B`` command tree.
            - ``.sdlc``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SDLC`` command tree.
            - ``.sent``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SENT`` command tree.
            - ``.smbus``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SMBUS`` command tree.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SOUrce`` command.
            - ``.spacewire``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPACEWIRe`` command tree.
            - ``.spi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPI`` command tree.
            - ``.spmi``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SPMI`` command tree.
            - ``.svid``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:SVID`` command tree.
            - ``.usb``: The ``SEARCH:SEARCH<x>:TRIGger:A:BUS:USB`` command tree.
        """
        return self._bus

    @property
    def ddrread(self) -> SearchSearchItemTriggerADdrread:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.burstdetectmethod``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTDETectmethod``
              command.
            - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLENGTH`` command.
            - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:BURSTLatency`` command.
            - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSActive`` command.
            - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSLevel`` command.
            - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSMode`` command.
            - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:CSSource`` command.
            - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATARate`` command.
            - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:DATASource`` command.
            - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:HYSteresis`` command.
            - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC1SOUrce`` command
              tree.
            - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC2SOUrce`` command
              tree.
            - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC3SOUrce`` command
              tree.
            - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:LOGIC4SOUrce`` command
              tree.
            - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MARgin`` command.
            - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MAXCAS`` command.
            - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:MINCas`` command.
            - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:POSTAMBLE`` command tree.
            - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:PREAMBLE`` command tree.
            - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLEVELMode`` command.
            - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:REFLevel`` command tree.
            - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STANdard`` command.
            - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:STROBESource`` command.
            - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD:TOLERance`` command.
        """
        return self._ddrread

    @property
    def ddrreadwrite(self) -> SearchSearchItemTriggerADdrreadwrite:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE?`` query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.burstdetectmethod``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTDETectmethod`` command.
            - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLENGTH`` command.
            - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:BURSTLatency``
              command.
            - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSActive`` command.
            - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSLevel`` command.
            - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSMode`` command.
            - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:CSSource`` command.
            - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATARate`` command.
            - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:DATASource`` command.
            - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:HYSteresis`` command.
            - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC1SOUrce``
              command tree.
            - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC2SOUrce``
              command tree.
            - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC3SOUrce``
              command tree.
            - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:LOGIC4SOUrce``
              command tree.
            - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MARgin`` command.
            - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MAXCAS`` command.
            - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:MINCas`` command.
            - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:POSTAMBLE`` command
              tree.
            - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:PREAMBLE`` command tree.
            - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLEVELMode``
              command.
            - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:REFLevel`` command tree.
            - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STANdard`` command.
            - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:STROBESource``
              command.
            - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE:TOLERance`` command.
        """
        return self._ddrreadwrite

    @property
    def ddrwrite(self) -> SearchSearchItemTriggerADdrwrite:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.burstdetectmethod``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTDETectmethod``
              command.
            - ``.burstlength``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLENGTH`` command.
            - ``.burstlatency``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:BURSTLatency`` command.
            - ``.csactive``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSActive`` command.
            - ``.cslevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSLevel`` command.
            - ``.csmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSMode`` command.
            - ``.cssource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:CSSource`` command.
            - ``.datarate``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATARate`` command.
            - ``.datasource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:DATASource`` command.
            - ``.hysteresis``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:HYSteresis`` command.
            - ``.logic1source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC1SOUrce`` command
              tree.
            - ``.logic2source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC2SOUrce`` command
              tree.
            - ``.logic3source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC3SOUrce`` command
              tree.
            - ``.logic4source``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:LOGIC4SOUrce`` command
              tree.
            - ``.margin``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MARgin`` command.
            - ``.maxcas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MAXCAS`` command.
            - ``.mincas``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:MINCas`` command.
            - ``.postamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:POSTAMBLE`` command tree.
            - ``.preamble``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:PREAMBLE`` command tree.
            - ``.reflevelmode``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLEVELMode`` command.
            - ``.reflevel``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:REFLevel`` command tree.
            - ``.standard``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STANdard`` command.
            - ``.strobesource``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:STROBESource`` command.
            - ``.tolerance``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE:TOLERance`` command.
        """
        return self._ddrwrite

    @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.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE:THReshold`` command.
        """
        return self._edge

    @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:
            - ``.clock``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:CLOCk`` command tree.
            - ``.deltatime``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:DELTatime`` command.
            - ``.function``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:FUNCtion`` command.
            - ``.input``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:INPUT`` command tree.
            - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LEVel`` command tree.
            - ``.logicpattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:LOGICPattern`` command tree.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:POLarity`` command.
            - ``.useclockedge``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:USEClockedge`` command.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:WHEn`` command.
        """
        return self._logic

    @property
    def pulsewidth(self) -> SearchSearchItemTriggerAPulsewidth:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth`` command tree.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth?`` query and raise an AssertionError if the
              returned value does not match ``value``.

        Sub-properties:
            - ``.highlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:HIGHLimit`` command.
            - ``.logicqualification``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOGICQUALification`` command.
            - ``.lowlimit``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:LOWLimit`` command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:POLarity`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:THReshold`` command.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth:WHEn`` command.
        """
        return self._pulsewidth

    @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:
            - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:LOGICQUALification``
              command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:POLarity`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:RUNT:SOUrce`` command.
            - ``.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.
            - ``.holdtime``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:HOLDTime`` command.
            - ``.level``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LEVel`` command tree.
            - ``.logicpattern``: The ``SEARCH:SEARCH<x>:TRIGger:A:SETHold:LOGICPattern`` command
              tree.
            - ``.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.

        **Description:**
            - This command sets or queries the enabled state of the search. The search number is
              specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:STATE value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:STATE {<NR1>|OFF|ON}

        **Info:**
            - ``<NR1>`` = 1 enables the search. Any other character disables the search.
            - ``ON`` enables the search.
            - ``OFF`` disables the search.
        """
        return self._state

    @property
    def stopacq(self) -> SearchSearchItemTriggerAStopacq:
        """Return the ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq`` command.

        **Description:**
            - This command sets or queries whether acquisitions are stopped when a search hit is
              found. The search number is specified by x.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq?``
              query.
            - Using the ``.verify(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq?`` query and raise an AssertionError if the
              returned value does not match ``value``.
            - Using the ``.write(value)`` method will send the
              ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq {<NR1>|OFF|ON}
            - SEARCH:SEARCH<x>:TRIGger:A:STOPAcq?

        **Info:**
            - ``<x>`` is the number of the search on which to enable or disable the stop acquisition
              function.
            - ``<NR1>`` = 1 enables stopping when a search hit is found. Any other character
              disables the feature.
            - ``ON`` enables stopping when a search hit is found.
            - ``OFF`` disables stopping on a search hit.
        """
        return self._stopacq

    @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:
            - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:LOGICQUALification``
              command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:POLarity`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:TIMEOut:THReshold`` command.
            - ``.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.
            - ``.logicqualification``: The
              ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:LOGICQUALification`` command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:POLarity`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:TRANsition:SOUrce`` command.
            - ``.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. The search number is specified by x.

        **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|PULSEWidth|TIMEOut|LOGIc| SETHold|WINdow|Bus|DDRRead|DDRREADWrite|DDRWrite}
            - 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.
            - ``PULSEWidth`` triggers on input signal source pulses that are inside or outside of
              the given time range specified by
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:PATtern:WHEn:LESSLimit`` and
              ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc:PATtern:WHEn:MORELimit``. The polarity is selected
              using the ``SEARCH:SEARCH<x>:TRIGger:A:RUNT``: POLarity command.
            - ``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.
            - ``LOGIc`` specifies that a search occurs when specified conditions are met, and is
              controlled by the ``SEARCH:A:LOGIc`` commands.
            - ``SETHold`` triggers on a functional pattern combination of one to three data sources
              at the time of the clock transition.
            - ``WINdow`` triggers on an input signal source that enters or exits the horizontal band
              defined by the two trigger levels.
            - ``Bus`` specifies that a search occurs when a communications signal is found.
            - ``DDRRead`` triggers on a DDR Read event.
            - ``DDRREADWrite`` triggers on a DDR Read or Write event.
            - ``DDRWrite`` triggers on a DDR Write event.
        """  # noqa: E501
        return self._type

    @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:
            - ``.crossing``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:CROSSIng`` command.
            - ``.logicqualification``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:LOGICQUALification``
              command.
            - ``.polarity``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:POLarity`` command.
            - ``.source``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:SOUrce`` command.
            - ``.threshold``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:THReshold`` command tree.
            - ``.when``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow:WHEn`` command.
            - ``.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.
            - ``.ddrread``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREAD`` command tree.
            - ``.ddrreadwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRREADWRITE`` command tree.
            - ``.ddrwrite``: The ``SEARCH:SEARCH<x>:TRIGger:A:DDRWRITE`` command tree.
            - ``.edge``: The ``SEARCH:SEARCH<x>:TRIGger:A:EDGE`` command tree.
            - ``.logic``: The ``SEARCH:SEARCH<x>:TRIGger:A:LOGIc`` command tree.
            - ``.pulsewidth``: The ``SEARCH:SEARCH<x>:TRIGger:A:PULSEWidth`` 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.
            - ``.stopacq``: The ``SEARCH:SEARCH<x>:TRIGger:A:STOPAcq`` command.
            - ``.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.
            - ``.window``: The ``SEARCH:SEARCH<x>:TRIGger:A:WINdow`` 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 SearchSearchItemNavigate(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:NAVigate`` command.

    **Description:**
        - This command sets the navigation action for search marks. The NONE action is the default
          setting when no action is being taken. The search number is specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:NAVigate value``
          command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:NAVigate {NEXT|PREVious|MIN|NONE|MAX}

    **Info:**
        - ``NEXT`` goes to the next search mark.
        - ``PREVious`` goes to the previous search mark.
        - ``MIN`` goes to the search result with the smallest value. Only supported by search
          results which have quantitative values (example: pulse width is supported, but not edge).
        - ``NONE`` is the default setting when no action is being taken.
        - ``MAX`` goes to the search result with the largest value. Only supported by search results
          which have quantitative values (example: pulse width is supported, but not edge).
    """


class SearchSearchItemCopy(SCPICmdWrite):
    """The ``SEARCH:SEARCH<x>:COPy`` command.

    **Description:**
        - This command (no query form) copies the search criteria to or from the trigger. The search
          number is specified by x.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:COPy value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch}

    **Info:**
        - ``SEARCHtotrigger`` copies the search criteria to the trigger.
        - ``TRIGgertosearch`` copies the trigger criteria to the search.
    """


class SearchSearchItem(ValidatedDynamicNumberCmd, SCPICmdRead):
    """The ``SEARCH:SEARCH<x>`` command tree.

    **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``.

    Properties:
        - ``.copy``: The ``SEARCH:SEARCH<x>:COPy`` command.
        - ``.navigate``: The ``SEARCH:SEARCH<x>:NAVigate`` command.
        - ``.total``: The ``SEARCH:SEARCH<x>:TOTAL`` command.
        - ``.trigger``: The ``SEARCH:SEARCH<x>:TRIGger`` command tree.
    """

    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._navigate = SearchSearchItemNavigate(device, f"{self._cmd_syntax}:NAVigate")
        self._total = SearchSearchItemTotal(device, f"{self._cmd_syntax}:TOTAL")
        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 or from the trigger. The
              search number is specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:COPy value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:COPy {SEARCHtotrigger|TRIGgertosearch}

        **Info:**
            - ``SEARCHtotrigger`` copies the search criteria to the trigger.
            - ``TRIGgertosearch`` copies the trigger criteria to the search.
        """
        return self._copy

    @property
    def navigate(self) -> SearchSearchItemNavigate:
        """Return the ``SEARCH:SEARCH<x>:NAVigate`` command.

        **Description:**
            - This command sets the navigation action for search marks. The NONE action is the
              default setting when no action is being taken. The search number is specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:SEARCH<x>:NAVigate value``
              command.

        **SCPI Syntax:**

        ::

            - SEARCH:SEARCH<x>:NAVigate {NEXT|PREVious|MIN|NONE|MAX}

        **Info:**
            - ``NEXT`` goes to the next search mark.
            - ``PREVious`` goes to the previous search mark.
            - ``MIN`` goes to the search result with the smallest value. Only supported by search
              results which have quantitative values (example: pulse width is supported, but not
              edge).
            - ``NONE`` is the default setting when no action is being taken.
            - ``MAX`` goes to the search result with the largest value. Only supported by search
              results which have quantitative values (example: pulse width is supported, but not
              edge).
        """
        return self._navigate

    @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 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 SearchList(SCPICmdRead):
    """The ``SEARCH:LIST`` command.

    **Description:**
        - This command returns a comma separated list of all currently defined searches.

    **Usage:**
        - Using the ``.query()`` method will send the ``SEARCH:LIST?`` query.
        - Using the ``.verify(value)`` method will send the ``SEARCH:LIST?`` query and raise an
          AssertionError if the returned value does not match ``value``.

    **SCPI Syntax:**

    ::

        - SEARCH:LIST?
    """


class SearchDelete(SCPICmdWrite):
    """The ``SEARCH:DELete`` command.

    **Description:**
        - This command deletes the specified search.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:DELete value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:DELete <QString>

    **Info:**
        - ``<QString>`` is the specified search. The argument is of the form 'SEARCH<NR1>', where
          <NR1> is ≥ 1).
    """

    _WRAP_ARG_WITH_QUOTES = True


class SearchDeleteall(SCPICmdWriteNoArguments):
    """The ``SEARCH:DELETEALL`` command.

    **Description:**
        - This command deletes all the active instances of search definitions defined in the scope
          application.

    **Usage:**
        - Using the ``.write()`` method will send the ``SEARCH:DELETEALL`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:DELETEALL
    """


class SearchAddnew(SCPICmdWrite):
    """The ``SEARCH:ADDNew`` command.

    **Description:**
        - This command adds the specified search.

    **Usage:**
        - Using the ``.write(value)`` method will send the ``SEARCH:ADDNew value`` command.

    **SCPI Syntax:**

    ::

        - SEARCH:ADDNew <QString>

    **Info:**
        - ``<QString>`` is the specified search. The argument is of the form 'SEARCH<NR1>', where
          <NR1> is ≥ 1.
    """

    _WRAP_ARG_WITH_QUOTES = True


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:
        - ``.addnew``: The ``SEARCH:ADDNew`` command.
        - ``.deleteall``: The ``SEARCH:DELETEALL`` command.
        - ``.delete``: The ``SEARCH:DELete`` command.
        - ``.list``: The ``SEARCH:LIST`` command.
        - ``.search``: The ``SEARCH:SEARCH<x>`` command tree.
        - ``.selected``: The ``SEARCH:SELected`` command.
    """

    def __init__(self, device: Optional["PIDevice"] = None, cmd_syntax: str = "SEARCH") -> None:
        super().__init__(device, cmd_syntax)
        self._addnew = SearchAddnew(device, f"{self._cmd_syntax}:ADDNew")
        self._deleteall = SearchDeleteall(device, f"{self._cmd_syntax}:DELETEALL")
        self._delete = SearchDelete(device, f"{self._cmd_syntax}:DELete")
        self._list = SearchList(device, f"{self._cmd_syntax}:LIST")
        self._search: Dict[int, SearchSearchItem] = DefaultDictPassKeyToFactory(
            lambda x: SearchSearchItem(device, f"{self._cmd_syntax}:SEARCH{x}")
        )
        self._selected = SearchSelected(device, f"{self._cmd_syntax}:SELected")

    @property
    def addnew(self) -> SearchAddnew:
        """Return the ``SEARCH:ADDNew`` command.

        **Description:**
            - This command adds the specified search.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:ADDNew value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:ADDNew <QString>

        **Info:**
            - ``<QString>`` is the specified search. The argument is of the form 'SEARCH<NR1>',
              where <NR1> is ≥ 1.
        """
        return self._addnew

    @property
    def deleteall(self) -> SearchDeleteall:
        """Return the ``SEARCH:DELETEALL`` command.

        **Description:**
            - This command deletes all the active instances of search definitions defined in the
              scope application.

        **Usage:**
            - Using the ``.write()`` method will send the ``SEARCH:DELETEALL`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:DELETEALL
        """
        return self._deleteall

    @property
    def delete(self) -> SearchDelete:
        """Return the ``SEARCH:DELete`` command.

        **Description:**
            - This command deletes the specified search.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:DELete value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:DELete <QString>

        **Info:**
            - ``<QString>`` is the specified search. The argument is of the form 'SEARCH<NR1>',
              where <NR1> is ≥ 1).
        """
        return self._delete

    @property
    def list(self) -> SearchList:
        """Return the ``SEARCH:LIST`` command.

        **Description:**
            - This command returns a comma separated list of all currently defined searches.

        **Usage:**
            - Using the ``.query()`` method will send the ``SEARCH:LIST?`` query.
            - Using the ``.verify(value)`` method will send the ``SEARCH:LIST?`` query and raise an
              AssertionError if the returned value does not match ``value``.

        **SCPI Syntax:**

        ::

            - SEARCH:LIST?
        """
        return self._list

    @property
    def search(self) -> Dict[int, SearchSearchItem]:
        """Return the ``SEARCH:SEARCH<x>`` command tree.

        **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``.

        Sub-properties:
            - ``.copy``: The ``SEARCH:SEARCH<x>:COPy`` command.
            - ``.navigate``: The ``SEARCH:SEARCH<x>:NAVigate`` command.
            - ``.total``: The ``SEARCH:SEARCH<x>:TOTAL`` command.
            - ``.trigger``: The ``SEARCH:SEARCH<x>:TRIGger`` command tree.
        """
        return self._search

    @property
    def selected(self) -> SearchSelected:
        """Return the ``SEARCH:SELected`` command.

        **Description:**
            - This command sets or queries the selected search, for example SEARCH1. The search
              number is specified by x.

        **Usage:**
            - Using the ``.write(value)`` method will send the ``SEARCH:SELected value`` command.

        **SCPI Syntax:**

        ::

            - SEARCH:SELected SEARCH1

        **Info:**
            - ``SEARCH1`` is the specified search.
        """
        return self._selected
