# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

import qiclib.packages.grpc.datatypes_pb2 as datatypes__pb2
import qiclib.packages.grpc.qic_unitcell_pb2 as qic__unitcell__pb2

GRPC_GENERATED_VERSION = '1.66.1'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in qic_unitcell_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class UnitCellServiceStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.GetCellCount = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetCellCount',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=datatypes__pb2.UInt.FromString,
                _registered_method=True)
        self.GetCellInfo = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetCellInfo',
                request_serializer=datatypes__pb2.UInt.SerializeToString,
                response_deserializer=qic__unitcell__pb2.CellInfo.FromString,
                _registered_method=True)
        self.GetAllCellInfo = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetAllCellInfo',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.AllCellInfo.FromString,
                _registered_method=True)
        self.StartCells = channel.unary_unary(
                '/qic_unitcell.UnitCellService/StartCells',
                request_serializer=qic__unitcell__pb2.StartCellInfo.SerializeToString,
                response_deserializer=datatypes__pb2.Empty.FromString,
                _registered_method=True)
        self.GetBusyCells = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetBusyCells',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.BusyCellInfo.FromString,
                _registered_method=True)
        self.GetSyncCells = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetSyncCells',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.CellIndexes.FromString,
                _registered_method=True)
        self.GetDataSyncCells = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetDataSyncCells',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.CellIndexes.FromString,
                _registered_method=True)
        self.GetQubitStates = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetQubitStates',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.QubitStateCellInfo.FromString,
                _registered_method=True)
        self.GetPlatformInfo = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetPlatformInfo',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.PlatformInfo.FromString,
                _registered_method=True)
        self.GetConverterStatus = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetConverterStatus',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.ConverterStatus.FromString,
                _registered_method=True)
        self.ClearConverterStatus = channel.unary_unary(
                '/qic_unitcell.UnitCellService/ClearConverterStatus',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=datatypes__pb2.Empty.FromString,
                _registered_method=True)
        self.GetDACSignalTypes = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetDACSignalTypes',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.DACSignalTypes.FromString,
                _registered_method=True)
        self.GetDACRoutingSelect = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetDACRoutingSelect',
                request_serializer=qic__unitcell__pb2.DACIndex.SerializeToString,
                response_deserializer=qic__unitcell__pb2.CellIndexes.FromString,
                _registered_method=True)
        self.SetDACRoutingSelect = channel.unary_unary(
                '/qic_unitcell.UnitCellService/SetDACRoutingSelect',
                request_serializer=qic__unitcell__pb2.DACRouting.SerializeToString,
                response_deserializer=datatypes__pb2.Empty.FromString,
                _registered_method=True)
        self.GetADCConnectedCells = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetADCConnectedCells',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.CellIndexes.FromString,
                _registered_method=True)
        self.GetADCRoutingSelect = channel.unary_unary(
                '/qic_unitcell.UnitCellService/GetADCRoutingSelect',
                request_serializer=datatypes__pb2.Empty.SerializeToString,
                response_deserializer=qic__unitcell__pb2.ADCIndexes.FromString,
                _registered_method=True)
        self.SetADCRoutingSelect = channel.unary_unary(
                '/qic_unitcell.UnitCellService/SetADCRoutingSelect',
                request_serializer=qic__unitcell__pb2.ADCRouting.SerializeToString,
                response_deserializer=datatypes__pb2.Empty.FromString,
                _registered_method=True)
        self.RunExperiment = channel.unary_stream(
                '/qic_unitcell.UnitCellService/RunExperiment',
                request_serializer=qic__unitcell__pb2.ExperimentParameters.SerializeToString,
                response_deserializer=qic__unitcell__pb2.ExperimentResults.FromString,
                _registered_method=True)


class UnitCellServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def GetCellCount(self, request, context):
        """*
        Returns the amount of cells that are present in the current design
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCellInfo(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAllCellInfo(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StartCells(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBusyCells(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSyncCells(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDataSyncCells(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetQubitStates(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetPlatformInfo(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetConverterStatus(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ClearConverterStatus(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDACSignalTypes(self, request, context):
        """*
        Return what module of the Unit Cell every DAC is connected to
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDACRoutingSelect(self, request, context):
        """*
        Return all the cells a DAC is connected to
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetDACRoutingSelect(self, request, context):
        """*
        Route a DAC to a number of cells and inside these cells to a sub-module
        (for example, manipulation, readout, e.t.c.)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetADCConnectedCells(self, request, context):
        """*
        Returns the indices of the cells that are connected to an ADC
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetADCRoutingSelect(self, request, context):
        """*
        Returns the ADC that is connected to a cell.
        Note that the output of this method does not change once an ADC is disconnected, it only changes
        when an ADC is connected.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetADCRoutingSelect(self, request, context):
        """*
        Connects an ADC to some cells or disconnects an ADC from cells
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RunExperiment(self, request, context):
        """*
        @brief Runs a preloaded experiment on the QiController and processes the
        results.

        @param msg ExperimentParameters
        The parameters after which to run the experiment.
        @return ExperimentResults
        containing the measured and processed data of the experiment.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_UnitCellServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetCellCount': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCellCount,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=datatypes__pb2.UInt.SerializeToString,
            ),
            'GetCellInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCellInfo,
                    request_deserializer=datatypes__pb2.UInt.FromString,
                    response_serializer=qic__unitcell__pb2.CellInfo.SerializeToString,
            ),
            'GetAllCellInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAllCellInfo,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.AllCellInfo.SerializeToString,
            ),
            'StartCells': grpc.unary_unary_rpc_method_handler(
                    servicer.StartCells,
                    request_deserializer=qic__unitcell__pb2.StartCellInfo.FromString,
                    response_serializer=datatypes__pb2.Empty.SerializeToString,
            ),
            'GetBusyCells': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBusyCells,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.BusyCellInfo.SerializeToString,
            ),
            'GetSyncCells': grpc.unary_unary_rpc_method_handler(
                    servicer.GetSyncCells,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.CellIndexes.SerializeToString,
            ),
            'GetDataSyncCells': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDataSyncCells,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.CellIndexes.SerializeToString,
            ),
            'GetQubitStates': grpc.unary_unary_rpc_method_handler(
                    servicer.GetQubitStates,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.QubitStateCellInfo.SerializeToString,
            ),
            'GetPlatformInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPlatformInfo,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.PlatformInfo.SerializeToString,
            ),
            'GetConverterStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.GetConverterStatus,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.ConverterStatus.SerializeToString,
            ),
            'ClearConverterStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.ClearConverterStatus,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=datatypes__pb2.Empty.SerializeToString,
            ),
            'GetDACSignalTypes': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDACSignalTypes,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.DACSignalTypes.SerializeToString,
            ),
            'GetDACRoutingSelect': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDACRoutingSelect,
                    request_deserializer=qic__unitcell__pb2.DACIndex.FromString,
                    response_serializer=qic__unitcell__pb2.CellIndexes.SerializeToString,
            ),
            'SetDACRoutingSelect': grpc.unary_unary_rpc_method_handler(
                    servicer.SetDACRoutingSelect,
                    request_deserializer=qic__unitcell__pb2.DACRouting.FromString,
                    response_serializer=datatypes__pb2.Empty.SerializeToString,
            ),
            'GetADCConnectedCells': grpc.unary_unary_rpc_method_handler(
                    servicer.GetADCConnectedCells,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.CellIndexes.SerializeToString,
            ),
            'GetADCRoutingSelect': grpc.unary_unary_rpc_method_handler(
                    servicer.GetADCRoutingSelect,
                    request_deserializer=datatypes__pb2.Empty.FromString,
                    response_serializer=qic__unitcell__pb2.ADCIndexes.SerializeToString,
            ),
            'SetADCRoutingSelect': grpc.unary_unary_rpc_method_handler(
                    servicer.SetADCRoutingSelect,
                    request_deserializer=qic__unitcell__pb2.ADCRouting.FromString,
                    response_serializer=datatypes__pb2.Empty.SerializeToString,
            ),
            'RunExperiment': grpc.unary_stream_rpc_method_handler(
                    servicer.RunExperiment,
                    request_deserializer=qic__unitcell__pb2.ExperimentParameters.FromString,
                    response_serializer=qic__unitcell__pb2.ExperimentResults.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'qic_unitcell.UnitCellService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('qic_unitcell.UnitCellService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class UnitCellService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def GetCellCount(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetCellCount',
            datatypes__pb2.Empty.SerializeToString,
            datatypes__pb2.UInt.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetCellInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetCellInfo',
            datatypes__pb2.UInt.SerializeToString,
            qic__unitcell__pb2.CellInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetAllCellInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetAllCellInfo',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.AllCellInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StartCells(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/StartCells',
            qic__unitcell__pb2.StartCellInfo.SerializeToString,
            datatypes__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBusyCells(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetBusyCells',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.BusyCellInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetSyncCells(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetSyncCells',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.CellIndexes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetDataSyncCells(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetDataSyncCells',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.CellIndexes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetQubitStates(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetQubitStates',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.QubitStateCellInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetPlatformInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetPlatformInfo',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.PlatformInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetConverterStatus(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetConverterStatus',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.ConverterStatus.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ClearConverterStatus(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/ClearConverterStatus',
            datatypes__pb2.Empty.SerializeToString,
            datatypes__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetDACSignalTypes(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetDACSignalTypes',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.DACSignalTypes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetDACRoutingSelect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetDACRoutingSelect',
            qic__unitcell__pb2.DACIndex.SerializeToString,
            qic__unitcell__pb2.CellIndexes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetDACRoutingSelect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/SetDACRoutingSelect',
            qic__unitcell__pb2.DACRouting.SerializeToString,
            datatypes__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetADCConnectedCells(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetADCConnectedCells',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.CellIndexes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetADCRoutingSelect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/GetADCRoutingSelect',
            datatypes__pb2.Empty.SerializeToString,
            qic__unitcell__pb2.ADCIndexes.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetADCRoutingSelect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/qic_unitcell.UnitCellService/SetADCRoutingSelect',
            qic__unitcell__pb2.ADCRouting.SerializeToString,
            datatypes__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RunExperiment(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/qic_unitcell.UnitCellService/RunExperiment',
            qic__unitcell__pb2.ExperimentParameters.SerializeToString,
            qic__unitcell__pb2.ExperimentResults.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
