def METHOD_NAME(self,
             cla: int,
             ins: Union[int, enum.IntEnum],
             p1: int = 0,
             p2: int = 0,
             option: Optional[int] = None,
             cdata: bytes = b"") -> Tuple[int, bytes]:
    """Send structured APDUs and wait to receive datas from `self.com`.
    Parameters
    ----------
    cla : int
        Instruction class: CLA (1 byte)
    ins : Union[int, IntEnum]
        Instruction code: INS (1 byte)
    p1 : int
        Instruction parameter: P1 (1 byte).
    p2 : int
        Instruction parameter: P2 (1 byte).
    option : Optional[int]
        Optional parameter: Opt (1 byte).
    cdata : bytes
        Command data (variable length).
    Returns
    -------
    Tuple[int, bytes]
        A pair (sw, rdata) for the status word (2 bytes represented
        as int) and the reponse data (bytes of variable lenght).
    """
    header: bytes = Transport.apdu_header(cla, ins, p1, p2, option, len(cdata))
    return self.com.METHOD_NAME(header + cdata)