# 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 api_pb2 as api__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2

GRPC_GENERATED_VERSION = '1.71.0'
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 api_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 Sepia2Stub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.LIB_DecodeError = channel.unary_unary(
                '/sepia2.rpc.Sepia2/LIB_DecodeError',
                request_serializer=api__pb2.Error.SerializeToString,
                response_deserializer=api__pb2.LibDecodeErrorResponse.FromString,
                _registered_method=True)
        self.LIB_GetVersion = channel.unary_unary(
                '/sepia2.rpc.Sepia2/LIB_GetVersion',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.Version.FromString,
                _registered_method=True)
        self.LIB_GetLibUSBVersion = channel.unary_unary(
                '/sepia2.rpc.Sepia2/LIB_GetLibUSBVersion',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.Version.FromString,
                _registered_method=True)
        self.LIB_IsRunningOnWine = channel.unary_unary(
                '/sepia2.rpc.Sepia2/LIB_IsRunningOnWine',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.Bool.FromString,
                _registered_method=True)
        self.USB_OpenDevice = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_OpenDevice',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.UsbDevice.FromString,
                _registered_method=True)
        self.USB_OpenGetSerNumAndClose = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_OpenGetSerNumAndClose',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.UsbDevice.FromString,
                _registered_method=True)
        self.USB_GetStrDescriptor = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_GetStrDescriptor',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.String.FromString,
                _registered_method=True)
        self.USB_GetStrDescrByIdx = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_GetStrDescrByIdx',
                request_serializer=api__pb2.GetStrDescrByIdxRequest.SerializeToString,
                response_deserializer=api__pb2.String.FromString,
                _registered_method=True)
        self.USB_IsOpenDevice = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_IsOpenDevice',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.Bool.FromString,
                _registered_method=True)
        self.USB_CloseDevice = channel.unary_unary(
                '/sepia2.rpc.Sepia2/USB_CloseDevice',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.FWR_DecodeErrPhaseName = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_DecodeErrPhaseName',
                request_serializer=api__pb2.ErrPhaseRequest.SerializeToString,
                response_deserializer=api__pb2.String.FromString,
                _registered_method=True)
        self.FWR_GetVersion = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetVersion',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.String.FromString,
                _registered_method=True)
        self.FWR_GetLastError = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetLastError',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.FwrError.FromString,
                _registered_method=True)
        self.FWR_GetWorkingMode = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetWorkingMode',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.FWR_SetWorkingMode = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_SetWorkingMode',
                request_serializer=api__pb2.FwrSetWorkingModeRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.FWR_RollBackToPermanentValues = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_RollBackToPermanentValues',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.FWR_StoreAsPermanentValues = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_StoreAsPermanentValues',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.FWR_GetModuleMap = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetModuleMap',
                request_serializer=api__pb2.GetModuleMapRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.FWR_GetModuleInfoByMapIdx = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetModuleInfoByMapIdx',
                request_serializer=api__pb2.MapIdxRequest.SerializeToString,
                response_deserializer=api__pb2.ModuleInfo.FromString,
                _registered_method=True)
        self.FWR_GetUptimeInfoByMapIdx = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_GetUptimeInfoByMapIdx',
                request_serializer=api__pb2.MapIdxRequest.SerializeToString,
                response_deserializer=api__pb2.UptimeInfo.FromString,
                _registered_method=True)
        self.FWR_CreateSupportRequestText = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_CreateSupportRequestText',
                request_serializer=api__pb2.FwrRequestSupportRequest.SerializeToString,
                response_deserializer=api__pb2.String.FromString,
                _registered_method=True)
        self.FWR_FreeModuleMap = channel.unary_unary(
                '/sepia2.rpc.Sepia2/FWR_FreeModuleMap',
                request_serializer=api__pb2.DeviceIdx.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetDeviceInfo = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetDeviceInfo',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.PrimaDevInfo.FromString,
                _registered_method=True)
        self.PRI_DecodeOperationMode = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_DecodeOperationMode',
                request_serializer=api__pb2.OperationModeRequest.SerializeToString,
                response_deserializer=api__pb2.PrimaModeInfo.FromString,
                _registered_method=True)
        self.PRI_GetOperationMode = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetOperationMode',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.OperationModeResponse.FromString,
                _registered_method=True)
        self.PRI_SetOperationMode = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetOperationMode',
                request_serializer=api__pb2.OperationModeRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_DecodeTriggerSource = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_DecodeTriggerSource',
                request_serializer=api__pb2.TriggerSourceRequest.SerializeToString,
                response_deserializer=api__pb2.TriggerInfo.FromString,
                _registered_method=True)
        self.PRI_GetTriggerSource = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetTriggerSource',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.PRI_SetTriggerSource = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetTriggerSource',
                request_serializer=api__pb2.TriggerSourceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetTriggerLevelLimits = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetTriggerLevelLimits',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.TriggerLevelInfo.FromString,
                _registered_method=True)
        self.PRI_GetTriggerLevel = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetTriggerLevel',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.PRI_SetTriggerLevel = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetTriggerLevel',
                request_serializer=api__pb2.TriggerLevelRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetFrequencyLimits = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetFrequencyLimits',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.FrequencyLimitsResponse.FromString,
                _registered_method=True)
        self.PRI_GetFrequency = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetFrequency',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.PRI_SetFrequency = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetFrequency',
                request_serializer=api__pb2.SetFrequencyRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetGatingLimits = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetGatingLimits',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.PrimaGatingInfo.FromString,
                _registered_method=True)
        self.PRI_GetGatingData = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetGatingData',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.GatingData.FromString,
                _registered_method=True)
        self.PRI_SetGatingData = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetGatingData',
                request_serializer=api__pb2.GatingDataRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetGatingEnabled = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetGatingEnabled',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Bool.FromString,
                _registered_method=True)
        self.PRI_SetGatingEnabled = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetGatingEnabled',
                request_serializer=api__pb2.GatingEnabledRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetGateHighImpedance = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetGateHighImpedance',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Bool.FromString,
                _registered_method=True)
        self.PRI_SetGateHighImpedance = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetGateHighImpedance',
                request_serializer=api__pb2.HighImpedanceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_DecodeWavelength = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_DecodeWavelength',
                request_serializer=api__pb2.WavelengthRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.PRI_GetWavelengthIdx = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetWavelengthIdx',
                request_serializer=api__pb2.PriRequest.SerializeToString,
                response_deserializer=api__pb2.Int32.FromString,
                _registered_method=True)
        self.PRI_SetWavelengthIdx = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetWavelengthIdx',
                request_serializer=api__pb2.WavelengthRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.PRI_GetIntensity = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_GetIntensity',
                request_serializer=api__pb2.WavelengthRequest.SerializeToString,
                response_deserializer=api__pb2.Uint32.FromString,
                _registered_method=True)
        self.PRI_SetIntensity = channel.unary_unary(
                '/sepia2.rpc.Sepia2/PRI_SetIntensity',
                request_serializer=api__pb2.SetIntensityRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)


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

    def LIB_DecodeError(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 LIB_GetVersion(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 LIB_GetLibUSBVersion(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 LIB_IsRunningOnWine(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 USB_OpenDevice(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 USB_OpenGetSerNumAndClose(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 USB_GetStrDescriptor(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 USB_GetStrDescrByIdx(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 USB_IsOpenDevice(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 USB_CloseDevice(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 FWR_DecodeErrPhaseName(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 FWR_GetVersion(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 FWR_GetLastError(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 FWR_GetWorkingMode(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 FWR_SetWorkingMode(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 FWR_RollBackToPermanentValues(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 FWR_StoreAsPermanentValues(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 FWR_GetModuleMap(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 FWR_GetModuleInfoByMapIdx(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 FWR_GetUptimeInfoByMapIdx(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 FWR_CreateSupportRequestText(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 FWR_FreeModuleMap(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 PRI_GetDeviceInfo(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 PRI_DecodeOperationMode(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 PRI_GetOperationMode(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 PRI_SetOperationMode(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 PRI_DecodeTriggerSource(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 PRI_GetTriggerSource(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 PRI_SetTriggerSource(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 PRI_GetTriggerLevelLimits(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 PRI_GetTriggerLevel(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 PRI_SetTriggerLevel(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 PRI_GetFrequencyLimits(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 PRI_GetFrequency(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 PRI_SetFrequency(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 PRI_GetGatingLimits(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 PRI_GetGatingData(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 PRI_SetGatingData(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 PRI_GetGatingEnabled(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 PRI_SetGatingEnabled(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 PRI_GetGateHighImpedance(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 PRI_SetGateHighImpedance(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 PRI_DecodeWavelength(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 PRI_GetWavelengthIdx(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 PRI_SetWavelengthIdx(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 PRI_GetIntensity(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 PRI_SetIntensity(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 add_Sepia2Servicer_to_server(servicer, server):
    rpc_method_handlers = {
            'LIB_DecodeError': grpc.unary_unary_rpc_method_handler(
                    servicer.LIB_DecodeError,
                    request_deserializer=api__pb2.Error.FromString,
                    response_serializer=api__pb2.LibDecodeErrorResponse.SerializeToString,
            ),
            'LIB_GetVersion': grpc.unary_unary_rpc_method_handler(
                    servicer.LIB_GetVersion,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.Version.SerializeToString,
            ),
            'LIB_GetLibUSBVersion': grpc.unary_unary_rpc_method_handler(
                    servicer.LIB_GetLibUSBVersion,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.Version.SerializeToString,
            ),
            'LIB_IsRunningOnWine': grpc.unary_unary_rpc_method_handler(
                    servicer.LIB_IsRunningOnWine,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.Bool.SerializeToString,
            ),
            'USB_OpenDevice': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_OpenDevice,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.UsbDevice.SerializeToString,
            ),
            'USB_OpenGetSerNumAndClose': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_OpenGetSerNumAndClose,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.UsbDevice.SerializeToString,
            ),
            'USB_GetStrDescriptor': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_GetStrDescriptor,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.String.SerializeToString,
            ),
            'USB_GetStrDescrByIdx': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_GetStrDescrByIdx,
                    request_deserializer=api__pb2.GetStrDescrByIdxRequest.FromString,
                    response_serializer=api__pb2.String.SerializeToString,
            ),
            'USB_IsOpenDevice': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_IsOpenDevice,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.Bool.SerializeToString,
            ),
            'USB_CloseDevice': grpc.unary_unary_rpc_method_handler(
                    servicer.USB_CloseDevice,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'FWR_DecodeErrPhaseName': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_DecodeErrPhaseName,
                    request_deserializer=api__pb2.ErrPhaseRequest.FromString,
                    response_serializer=api__pb2.String.SerializeToString,
            ),
            'FWR_GetVersion': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetVersion,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.String.SerializeToString,
            ),
            'FWR_GetLastError': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetLastError,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.FwrError.SerializeToString,
            ),
            'FWR_GetWorkingMode': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetWorkingMode,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'FWR_SetWorkingMode': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_SetWorkingMode,
                    request_deserializer=api__pb2.FwrSetWorkingModeRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'FWR_RollBackToPermanentValues': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_RollBackToPermanentValues,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'FWR_StoreAsPermanentValues': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_StoreAsPermanentValues,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'FWR_GetModuleMap': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetModuleMap,
                    request_deserializer=api__pb2.GetModuleMapRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'FWR_GetModuleInfoByMapIdx': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetModuleInfoByMapIdx,
                    request_deserializer=api__pb2.MapIdxRequest.FromString,
                    response_serializer=api__pb2.ModuleInfo.SerializeToString,
            ),
            'FWR_GetUptimeInfoByMapIdx': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_GetUptimeInfoByMapIdx,
                    request_deserializer=api__pb2.MapIdxRequest.FromString,
                    response_serializer=api__pb2.UptimeInfo.SerializeToString,
            ),
            'FWR_CreateSupportRequestText': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_CreateSupportRequestText,
                    request_deserializer=api__pb2.FwrRequestSupportRequest.FromString,
                    response_serializer=api__pb2.String.SerializeToString,
            ),
            'FWR_FreeModuleMap': grpc.unary_unary_rpc_method_handler(
                    servicer.FWR_FreeModuleMap,
                    request_deserializer=api__pb2.DeviceIdx.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetDeviceInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetDeviceInfo,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.PrimaDevInfo.SerializeToString,
            ),
            'PRI_DecodeOperationMode': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_DecodeOperationMode,
                    request_deserializer=api__pb2.OperationModeRequest.FromString,
                    response_serializer=api__pb2.PrimaModeInfo.SerializeToString,
            ),
            'PRI_GetOperationMode': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetOperationMode,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.OperationModeResponse.SerializeToString,
            ),
            'PRI_SetOperationMode': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetOperationMode,
                    request_deserializer=api__pb2.OperationModeRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_DecodeTriggerSource': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_DecodeTriggerSource,
                    request_deserializer=api__pb2.TriggerSourceRequest.FromString,
                    response_serializer=api__pb2.TriggerInfo.SerializeToString,
            ),
            'PRI_GetTriggerSource': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetTriggerSource,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'PRI_SetTriggerSource': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetTriggerSource,
                    request_deserializer=api__pb2.TriggerSourceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetTriggerLevelLimits': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetTriggerLevelLimits,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.TriggerLevelInfo.SerializeToString,
            ),
            'PRI_GetTriggerLevel': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetTriggerLevel,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'PRI_SetTriggerLevel': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetTriggerLevel,
                    request_deserializer=api__pb2.TriggerLevelRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetFrequencyLimits': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetFrequencyLimits,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.FrequencyLimitsResponse.SerializeToString,
            ),
            'PRI_GetFrequency': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetFrequency,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'PRI_SetFrequency': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetFrequency,
                    request_deserializer=api__pb2.SetFrequencyRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetGatingLimits': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetGatingLimits,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.PrimaGatingInfo.SerializeToString,
            ),
            'PRI_GetGatingData': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetGatingData,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.GatingData.SerializeToString,
            ),
            'PRI_SetGatingData': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetGatingData,
                    request_deserializer=api__pb2.GatingDataRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetGatingEnabled': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetGatingEnabled,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Bool.SerializeToString,
            ),
            'PRI_SetGatingEnabled': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetGatingEnabled,
                    request_deserializer=api__pb2.GatingEnabledRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetGateHighImpedance': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetGateHighImpedance,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Bool.SerializeToString,
            ),
            'PRI_SetGateHighImpedance': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetGateHighImpedance,
                    request_deserializer=api__pb2.HighImpedanceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_DecodeWavelength': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_DecodeWavelength,
                    request_deserializer=api__pb2.WavelengthRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'PRI_GetWavelengthIdx': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetWavelengthIdx,
                    request_deserializer=api__pb2.PriRequest.FromString,
                    response_serializer=api__pb2.Int32.SerializeToString,
            ),
            'PRI_SetWavelengthIdx': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetWavelengthIdx,
                    request_deserializer=api__pb2.WavelengthRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'PRI_GetIntensity': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_GetIntensity,
                    request_deserializer=api__pb2.WavelengthRequest.FromString,
                    response_serializer=api__pb2.Uint32.SerializeToString,
            ),
            'PRI_SetIntensity': grpc.unary_unary_rpc_method_handler(
                    servicer.PRI_SetIntensity,
                    request_deserializer=api__pb2.SetIntensityRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'sepia2.rpc.Sepia2', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('sepia2.rpc.Sepia2', rpc_method_handlers)


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

    @staticmethod
    def LIB_DecodeError(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,
            '/sepia2.rpc.Sepia2/LIB_DecodeError',
            api__pb2.Error.SerializeToString,
            api__pb2.LibDecodeErrorResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LIB_GetVersion(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,
            '/sepia2.rpc.Sepia2/LIB_GetVersion',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.Version.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LIB_GetLibUSBVersion(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,
            '/sepia2.rpc.Sepia2/LIB_GetLibUSBVersion',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.Version.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def LIB_IsRunningOnWine(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,
            '/sepia2.rpc.Sepia2/LIB_IsRunningOnWine',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.Bool.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_OpenDevice(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,
            '/sepia2.rpc.Sepia2/USB_OpenDevice',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.UsbDevice.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_OpenGetSerNumAndClose(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,
            '/sepia2.rpc.Sepia2/USB_OpenGetSerNumAndClose',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.UsbDevice.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_GetStrDescriptor(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,
            '/sepia2.rpc.Sepia2/USB_GetStrDescriptor',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.String.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_GetStrDescrByIdx(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,
            '/sepia2.rpc.Sepia2/USB_GetStrDescrByIdx',
            api__pb2.GetStrDescrByIdxRequest.SerializeToString,
            api__pb2.String.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_IsOpenDevice(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,
            '/sepia2.rpc.Sepia2/USB_IsOpenDevice',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.Bool.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def USB_CloseDevice(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,
            '/sepia2.rpc.Sepia2/USB_CloseDevice',
            api__pb2.DeviceIdx.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_DecodeErrPhaseName(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,
            '/sepia2.rpc.Sepia2/FWR_DecodeErrPhaseName',
            api__pb2.ErrPhaseRequest.SerializeToString,
            api__pb2.String.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetVersion(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,
            '/sepia2.rpc.Sepia2/FWR_GetVersion',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.String.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetLastError(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,
            '/sepia2.rpc.Sepia2/FWR_GetLastError',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.FwrError.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetWorkingMode(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,
            '/sepia2.rpc.Sepia2/FWR_GetWorkingMode',
            api__pb2.DeviceIdx.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_SetWorkingMode(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,
            '/sepia2.rpc.Sepia2/FWR_SetWorkingMode',
            api__pb2.FwrSetWorkingModeRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_RollBackToPermanentValues(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,
            '/sepia2.rpc.Sepia2/FWR_RollBackToPermanentValues',
            api__pb2.DeviceIdx.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_StoreAsPermanentValues(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,
            '/sepia2.rpc.Sepia2/FWR_StoreAsPermanentValues',
            api__pb2.DeviceIdx.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetModuleMap(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,
            '/sepia2.rpc.Sepia2/FWR_GetModuleMap',
            api__pb2.GetModuleMapRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetModuleInfoByMapIdx(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,
            '/sepia2.rpc.Sepia2/FWR_GetModuleInfoByMapIdx',
            api__pb2.MapIdxRequest.SerializeToString,
            api__pb2.ModuleInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_GetUptimeInfoByMapIdx(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,
            '/sepia2.rpc.Sepia2/FWR_GetUptimeInfoByMapIdx',
            api__pb2.MapIdxRequest.SerializeToString,
            api__pb2.UptimeInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_CreateSupportRequestText(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,
            '/sepia2.rpc.Sepia2/FWR_CreateSupportRequestText',
            api__pb2.FwrRequestSupportRequest.SerializeToString,
            api__pb2.String.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FWR_FreeModuleMap(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,
            '/sepia2.rpc.Sepia2/FWR_FreeModuleMap',
            api__pb2.DeviceIdx.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetDeviceInfo(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,
            '/sepia2.rpc.Sepia2/PRI_GetDeviceInfo',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.PrimaDevInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_DecodeOperationMode(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,
            '/sepia2.rpc.Sepia2/PRI_DecodeOperationMode',
            api__pb2.OperationModeRequest.SerializeToString,
            api__pb2.PrimaModeInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetOperationMode(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,
            '/sepia2.rpc.Sepia2/PRI_GetOperationMode',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.OperationModeResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetOperationMode(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,
            '/sepia2.rpc.Sepia2/PRI_SetOperationMode',
            api__pb2.OperationModeRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_DecodeTriggerSource(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,
            '/sepia2.rpc.Sepia2/PRI_DecodeTriggerSource',
            api__pb2.TriggerSourceRequest.SerializeToString,
            api__pb2.TriggerInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetTriggerSource(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,
            '/sepia2.rpc.Sepia2/PRI_GetTriggerSource',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetTriggerSource(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,
            '/sepia2.rpc.Sepia2/PRI_SetTriggerSource',
            api__pb2.TriggerSourceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetTriggerLevelLimits(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,
            '/sepia2.rpc.Sepia2/PRI_GetTriggerLevelLimits',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.TriggerLevelInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetTriggerLevel(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,
            '/sepia2.rpc.Sepia2/PRI_GetTriggerLevel',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetTriggerLevel(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,
            '/sepia2.rpc.Sepia2/PRI_SetTriggerLevel',
            api__pb2.TriggerLevelRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetFrequencyLimits(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,
            '/sepia2.rpc.Sepia2/PRI_GetFrequencyLimits',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.FrequencyLimitsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetFrequency(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,
            '/sepia2.rpc.Sepia2/PRI_GetFrequency',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetFrequency(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,
            '/sepia2.rpc.Sepia2/PRI_SetFrequency',
            api__pb2.SetFrequencyRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetGatingLimits(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,
            '/sepia2.rpc.Sepia2/PRI_GetGatingLimits',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.PrimaGatingInfo.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetGatingData(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,
            '/sepia2.rpc.Sepia2/PRI_GetGatingData',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.GatingData.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetGatingData(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,
            '/sepia2.rpc.Sepia2/PRI_SetGatingData',
            api__pb2.GatingDataRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetGatingEnabled(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,
            '/sepia2.rpc.Sepia2/PRI_GetGatingEnabled',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Bool.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetGatingEnabled(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,
            '/sepia2.rpc.Sepia2/PRI_SetGatingEnabled',
            api__pb2.GatingEnabledRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetGateHighImpedance(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,
            '/sepia2.rpc.Sepia2/PRI_GetGateHighImpedance',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Bool.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetGateHighImpedance(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,
            '/sepia2.rpc.Sepia2/PRI_SetGateHighImpedance',
            api__pb2.HighImpedanceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_DecodeWavelength(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,
            '/sepia2.rpc.Sepia2/PRI_DecodeWavelength',
            api__pb2.WavelengthRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetWavelengthIdx(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,
            '/sepia2.rpc.Sepia2/PRI_GetWavelengthIdx',
            api__pb2.PriRequest.SerializeToString,
            api__pb2.Int32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetWavelengthIdx(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,
            '/sepia2.rpc.Sepia2/PRI_SetWavelengthIdx',
            api__pb2.WavelengthRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_GetIntensity(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,
            '/sepia2.rpc.Sepia2/PRI_GetIntensity',
            api__pb2.WavelengthRequest.SerializeToString,
            api__pb2.Uint32.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PRI_SetIntensity(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,
            '/sepia2.rpc.Sepia2/PRI_SetIntensity',
            api__pb2.SetIntensityRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
