/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the  service binding logic.
 /// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
 /// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
 /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
 public static void BindService(grpc::ServiceBinderBase serviceBinder, SingleAxisBase serviceImpl)
 {
     serviceBinder.AddMethod(__Method_ScanDevices, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.ScanDevicesRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.ScanDevicesResponse>(serviceImpl.ScanDevices));
     serviceBinder.AddMethod(__Method_Initialize, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.InitializeRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.InitializeResponse>(serviceImpl.Initialize));
     serviceBinder.AddMethod(__Method_Shutdown, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.ShutdownRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.ShutdownResponse>(serviceImpl.Shutdown));
     serviceBinder.AddMethod(__Method_HomeMotor, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.HomeMotorRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.Position>(serviceImpl.HomeMotor));
     serviceBinder.AddMethod(__Method_GetRange, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.GetRangeRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.StageRange>(serviceImpl.GetRange));
     serviceBinder.AddMethod(__Method_GetPosition, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.GetPositionRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.Position>(serviceImpl.GetPosition));
     serviceBinder.AddMethod(__Method_MoveAbsolute, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.MoveAbsoluteRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.Position>(serviceImpl.MoveAbsolute));
     serviceBinder.AddMethod(__Method_MoveRelative, serviceImpl == null ? null : new grpc::ServerStreamingServerMethod <global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.MoveRelativeRequest, global::Instrosetta.Interfaces.MotionControl.Singleaxis.V1.Position>(serviceImpl.MoveRelative));
 }
 /// <summary>Creates service definition that can be registered with a server</summary>
 /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
 public static grpc::ServerServiceDefinition BindService(SingleAxisBase serviceImpl)
 {
     return(grpc::ServerServiceDefinition.CreateBuilder()
            .AddMethod(__Method_ScanDevices, serviceImpl.ScanDevices)
            .AddMethod(__Method_Initialize, serviceImpl.Initialize)
            .AddMethod(__Method_Shutdown, serviceImpl.Shutdown)
            .AddMethod(__Method_HomeMotor, serviceImpl.HomeMotor)
            .AddMethod(__Method_GetRange, serviceImpl.GetRange)
            .AddMethod(__Method_GetPosition, serviceImpl.GetPosition)
            .AddMethod(__Method_MoveAbsolute, serviceImpl.MoveAbsolute)
            .AddMethod(__Method_MoveRelative, serviceImpl.MoveRelative).Build());
 }