async def send_rpc(self, conn_id, address, rpc_id, payload, timeout):
        """Asynchronously send an RPC to this IOTile device

        Args:
            conn_id (int): A unique identifier that will refer to this connection
            address (int): the address of the tile that we wish to send the RPC to
            rpc_id (int): the 16-bit id of the RPC we want to call
            payload (bytearray): the payload of the command
            timeout (float): the number of seconds to wait for the RPC to execute
        """

        self._ensure_connection(conn_id, True)
        dev = self._get_property(conn_id, 'device')

        try:
            res = dev.call_rpc(address, rpc_id, bytes(payload))
            if inspect.iscoroutine(res):
                return await res
            else:
                return res
        except (RPCInvalidIDError, RPCNotFoundError, TileNotFoundError, RPCErrorCode, BusyRPCResponse):
            raise
        except Exception:
            self._logger.exception("Exception inside rpc %d:0x%04X, payload=%s",
                                   address, rpc_id, payload)
            raise
async def send_rpc ( self , conn_id , address , rpc_id , payload , timeout ) : self . _ensure_connection ( conn_id , True ) dev = self . _get_property ( conn_id , 'device' ) try : res = dev . call_rpc ( address , rpc_id , bytes ( payload ) ) if inspect . iscoroutine ( res ) : return await res else : return res except ( RPCInvalidIDError , RPCNotFoundError , TileNotFoundError , RPCErrorCode , BusyRPCResponse ) : raise except Exception : self . _logger . exception ( "Exception inside rpc %d:0x%04X, payload=%s" , address , rpc_id , payload ) raise
Asynchronously send an RPC to this IOTile device

        Args:
            conn_id (int): A unique identifier that will refer to this connection
            address (int): the address of the tile that we wish to send the RPC to
            rpc_id (int): the 16-bit id of the RPC we want to call
            payload (bytearray): the payload of the command
            timeout (float): the number of seconds to wait for the RPC to execute