SI.PIXL.Client
Search Results for

    Show / Hide Table of Contents

    Class PIXLClient

    Represents a SiLA 2 client for the Singer Instrument Company Limited PIXL.

    Inheritance
    object
    PIXLClient
    Implements
    IDisposable
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: SI.PIXL.Client
    Assembly: SI.PIXL.Client.dll
    Syntax
    public sealed class PIXLClient : IDisposable

    Constructors

    PIXLClient(Channel)

    Initializes a new instance of the PIXLClient class. This will attempt to connect the client to the PIXL and synchronize all properties.

    Declaration
    public PIXLClient(Channel channel)
    Parameters
    Type Name Description
    Channel channel

    The gRPC channel the device is on.

    Examples

    This sample shows how to call the PIXLClient(Channel) constructor.

    // Get a gRPC channel for the PIXL at a known port.
    var channel = PIXLClient.GetPIXLChannel("127.0.0.1", 50052);
    
    // Check that the channel is not null.
    if (channel == null)
        throw new NullReferenceException("The gRPC channel for the PIXL is null.");
    
    // Create a new instance of the PIXL class.
    var pixl = new PIXLClient(channel);

    PIXLClient(string, int)

    Initializes a new instance of the PIXLClient class. This will attempt to connect the client to the PIXL and synchronize all properties.

    Declaration
    public PIXLClient(string host, int port)
    Parameters
    Type Name Description
    string host

    The IP address of the PIXL. The IP address of the PIXL can be found in the 'Settings > API' section of the PIXL software.

    int port

    The PIXL's gRPC port. The default port is 50052, this can be found in the 'Settings > API' section of the PIXL software.

    Examples

    This sample shows how to call the PIXLClient(string, int) constructor.

    // Create a new instance of the PIXL class using a known port.
    var pixl = new PIXLClient("127.0.0.1", 50052);

    Fields

    AllBays

    Get an array containing all of the PIXLs bays.

    Declaration
    public static readonly Bays[] AllBays
    Field Value
    Type Description
    Bays[]

    CloseMotorisedDoorCommandName

    Get the command name for close motorised door.

    Declaration
    public const string CloseMotorisedDoorCommandName = "CloseMotorisedDoor"
    Field Value
    Type Description
    string

    InitialiseCommandName

    Get the command name for initialise.

    Declaration
    public const string InitialiseCommandName = "RunInitialisation"
    Field Value
    Type Description
    string

    NoColonyLimit

    Get the value used to represent no colony limit.

    Declaration
    public const int NoColonyLimit = -1
    Field Value
    Type Description
    int

    OpenMotorisedDoorCommandName

    Get the command name for open motorised door.

    Declaration
    public const string OpenMotorisedDoorCommandName = "OpenMotorisedDoor"
    Field Value
    Type Description
    string

    ResetCommandName

    Get the command name for reset.

    Declaration
    public const string ResetCommandName = "Reset"
    Field Value
    Type Description
    string

    RunColonyDetectionCommandName

    Get the command name for run colony detection workflow.

    Declaration
    public const string RunColonyDetectionCommandName = "RunColonyDetectionWorkflow"
    Field Value
    Type Description
    string

    RunRandomColonyPickingWorkflowCommandName

    Get the command name for run random colony picking workflow.

    Declaration
    public const string RunRandomColonyPickingWorkflowCommandName = "RunRandomColonyPickingWorkflow"
    Field Value
    Type Description
    string

    RunRearrayWorkflowCommandName

    Get the command name for run re-array workflow.

    Declaration
    public const string RunRearrayWorkflowCommandName = "RunRearrayWorkflow"
    Field Value
    Type Description
    string

    RunRearrayWorkflowFromFileCommandName

    Get the command name for run re-array workflow from file.

    Declaration
    public const string RunRearrayWorkflowFromFileCommandName = "RunRearrayWorkflowFromFile"
    Field Value
    Type Description
    string

    RunUVSterilisationCommandName

    Get the command name for run UV sterilisation.

    Declaration
    public const string RunUVSterilisationCommandName = "RunUVSterilisation"
    Field Value
    Type Description
    string

    Properties

    ActiveError

    Get the active error.

    Declaration
    public ActiveError ActiveError { get; }
    Property Value
    Type Description
    ActiveError
    Examples

    This sample shows how to use the ActiveError property.

    // Check for an error.
    if (pixl.ActiveError.HasActiveError)
    {
        // Display the active error on the Console.
        Console.WriteLine($"There is an active error with code {pixl.ActiveError.Code}: {pixl.ActiveError.Description}");
    }
    else
    {
        // Display that there is no error on the Console.
        Console.WriteLine("There is no active error.");
    }

    AvailableColonyDetectionProjectTemplates

    Get the available project templates for the Colony Detection workflow.

    Declaration
    public string[] AvailableColonyDetectionProjectTemplates { get; }
    Property Value
    Type Description
    string[]
    Examples

    This sample shows how to call the AvailableColonyDetectionProjectTemplates property. If project templates are present in multiple locations on the PIXL the name of the project template will be postfixed with and underscore and the location of the project template. For example, if there is a project template called 'Example' in both the CurrentUser and Import directories on the PIXL the returned names would be 'Example_CurrentUser' and 'Example_Import'.

    // Get all available Colony Detection project templates.
    var templates = pixl.AvailableColonyDetectionProjectTemplates;
    
    // Iterate all templates and display its name on the Console.
    foreach (var template in templates)
        Console.WriteLine(template);

    AvailablePinningProfiles

    Get the available pinning profiles.

    Declaration
    public string[] AvailablePinningProfiles { get; }
    Property Value
    Type Description
    string[]
    Examples

    This sample shows how to call the AvailablePinningProfiles property. If pinning profiles are present in multiple locations on the PIXL the name of the profile will be postfixed with and underscore and the location of the pinning profile. For example, if there is a pinning profile called 'Example' in both the CurrentUser and Import directories on the PIXL the returned names would be 'Example_CurrentUser' and 'Example_Import'.

    // Get all available pinning profiles.
    var profiles = pixl.AvailablePinningProfiles;
    
    // Iterate all profiles and display its name on the Console.
    foreach (var profile in profiles)
        Console.WriteLine(profiles);

    AvailableRandomColonyPickingProjectTemplates

    Get the available project templates for the Random Colony Picking workflow. If project templates are present in multiple locations on the PIXL the name of the project template will be postfixed with and underscore and the location of the project template. For example, if there is a project template called 'Example' in both the CurrentUser and Import directories on the PIXL the returned names would be 'Example_CurrentUser' and 'Example_Import'.

    Declaration
    public string[] AvailableRandomColonyPickingProjectTemplates { get; }
    Property Value
    Type Description
    string[]
    Examples

    This sample shows how to call the AvailableRandomColonyPickingProjectTemplates property.

    // Get all available Random Colony Picking project templates.
    var templates = pixl.AvailableRandomColonyPickingProjectTemplates;
    
    // Iterate all templates and display its name on the Console.
    foreach (var template in templates)
        Console.WriteLine(template);

    AvailableRearrayProjectTemplates

    Get the available project templates for the Re-array workflow.

    Declaration
    public string[] AvailableRearrayProjectTemplates { get; }
    Property Value
    Type Description
    string[]
    Examples

    This sample shows how to call the AvailableRearrayProjectTemplates property. If project templates are present in multiple locations on the PIXL the name of the project template will be postfixed with and underscore and the location of the project template. For example, if there is a project template called 'Example' in both the CurrentUser and Import directories on the PIXL the returned names would be 'Example_CurrentUser' and 'Example_Import'.

    // Get all available Re-array project templates.
    var templates = pixl.AvailableRearrayProjectTemplates;
    
    // Iterate all templates and display its name on the Console.
    foreach (var template in templates)
        Console.WriteLine(template);

    CanAwaken

    Get if the PIXL can awaken.

    Declaration
    public bool CanAwaken { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the CanAwaken property.

    // Display if the PIXL can awaken on the Console.
    Console.WriteLine($"PIXL can awaken: {pixl.CanAwaken}.");

    CanSleep

    Get if the PIXL can sleep.

    Declaration
    public bool CanSleep { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the CanSleep property.

    // Display if the PIXL can sleep on the Console.
    Console.WriteLine($"PIXL can sleep: {pixl.CanSleep}.");

    CleavesOnCurrentBlade

    Get the amount of cleaves that have been made on the current blade.

    Declaration
    public int CleavesOnCurrentBlade { get; }
    Property Value
    Type Description
    int
    Examples

    This sample shows how to use the CleavesOnCurrentBlade property.

    // Display the PIXL's total cleaves using the current blade on the Console.
    Console.WriteLine($"PIXL has done {pixl.CleavesOnCurrentBlade} cleaves on the current blade.");

    HasMotorisedDoor

    Get if the PIXL has a motorised door.

    Declaration
    public bool HasMotorisedDoor { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the HasMotorisedDoor property.

    // Display if the PIXL has an motorised door on the Console.
    Console.WriteLine($"PIXL has motorised door: {pixl.HasMotorisedDoor}.");

    IsAsleep

    Get if the PIXL is asleep.

    Declaration
    public bool IsAsleep { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsAsleep property.

    // Display if the PIXL is asleep on the Console.
    Console.WriteLine($"PIXL is asleep: {pixl.IsAsleep}.");

    IsConnectionLive

    Get if the connection is live.

    Declaration
    public bool IsConnectionLive { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsConnectionLive property.

    // Display if the PIXL has a live connection on the Console.
    Console.WriteLine($"PIXL has a live connection: {pixl.IsConnectionLive}.");

    IsDoorClosed

    Get if the PIXL's door is closed.

    Declaration
    public bool IsDoorClosed { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsDoorClosed property.

    // Display if the PIXL's door is closed on the Console.
    Console.WriteLine($"PIXL's door is closed: {pixl.IsDoorClosed}.");

    IsDoorLocked

    Get if the PIXL's door is locked.

    Declaration
    public bool IsDoorLocked { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsDoorLocked property.

    // Display if the PIXL's door is locked on the Console.
    Console.WriteLine($"PIXL's door is locked: {pixl.IsDoorLocked}.");

    IsInitialised

    Get if the PIXL is initialised.

    Declaration
    public bool IsInitialised { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsInitialised property.

    // Display if the PIXL is initialised on the Console.
    Console.WriteLine($"PIXL is initialised: {pixl.IsInitialised}.");

    IsWorkflowExecutionAllowedWithInsufficientPickupLine

    Get if the execution of a workflow is allowed when there is insufficient PickupLine remaining to complete the workflow.

    Declaration
    public bool IsWorkflowExecutionAllowedWithInsufficientPickupLine { get; }
    Property Value
    Type Description
    bool
    Examples

    This sample shows how to use the IsWorkflowExecutionAllowedWithInsufficientPickupLine property.

    // Display if allowing the execution of a workflow when there is insufficient PickupLine remaining, on the Console.
    Console.WriteLine($"Allow the execution of a workflow when there is insufficient PickupLine remaining: {pixl.IsWorkflowExecutionAllowedWithInsufficientPickupLine}.");

    OperationalStatus

    Get the PIXL's operational status.

    Declaration
    public OperationalStatus OperationalStatus { get; }
    Property Value
    Type Description
    OperationalStatus
    Examples

    This sample shows how to use the OperationalStatus property.

    // Publish an update to the Console.
    Console.WriteLine($"Current running command is {pixl.OperationalStatus.ProgressAsPercentage}% complete, and has an estimated {pixl.OperationalStatus.EstimatedRemainingTime} remaining.");

    PickupLineRemainingInMeters

    Get the estimated amount of PickupLine remaining (in meters) on the current reel.

    Declaration
    public double PickupLineRemainingInMeters { get; }
    Property Value
    Type Description
    double
    Examples

    This sample shows how to use the PickupLineRemainingInMeters property.

    // Display the PIXL's remaining PickupLine on the current reel on the Console.
    Console.WriteLine($"PIXL has used {pixl.PickupLineRemainingInMeters}m of PickupLine from the current reel.");

    PickupLineUsedInMeters

    Get the amount of PickupLine that has been used (in meters) from the current reel.

    Declaration
    public double PickupLineUsedInMeters { get; }
    Property Value
    Type Description
    double
    Examples

    This sample shows how to use the PickupLineUsedInMeters property.

    // Display the PIXL's amount of PickupLine used from the current reel on the Console.
    Console.WriteLine($"PIXL has used {pixl.PickupLineUsedInMeters}m of PickupLine from the current reel.");

    RemainingCleavesOnCurrentBlade

    Get the estimated amount of cleaves that remain on the current blade.

    Declaration
    public int RemainingCleavesOnCurrentBlade { get; }
    Property Value
    Type Description
    int
    Examples

    This sample shows how to use the RemainingCleavesOnCurrentBlade property.

    // Display the PIXL's remaining cleaves on the current blade on the Console.
    Console.WriteLine($"PIXL has {pixl.RemainingCleavesOnCurrentBlade} cleaves on the current blade.");

    RemainingUVSterilisationTime

    Get the remaining UV sterilisation time.

    Declaration
    public TimeSpan RemainingUVSterilisationTime { get; }
    Property Value
    Type Description
    TimeSpan
    Examples

    This sample shows how to use the RemainingUVSterilisationTime property.

    // Display the PIXL's total remaining UV sterilisation duration on the Console.
    Console.WriteLine($"PIXL's UV sterilisation has a remaining duration of {pixl.RemainingUVSterilisationTime}.");

    RequiredPlateInteractionInstructions

    Get the required plate interaction instructions.

    Declaration
    public string RequiredPlateInteractionInstructions { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to handle the RequiredPlateInteractionInstructions property.

    // Display instructions on the Console.
    Console.WriteLine(pixl.RequiredPlateInteractionInstructions);

    RequiredPlateInteractions

    Get the required plate interactions.

    Declaration
    public PlateRequest[] RequiredPlateInteractions { get; }
    Property Value
    Type Description
    PlateRequest[]
    Examples

    This sample shows how to handle the RequiredPlateInteractions property.

    // Iterate all interactions.
    foreach (var interaction in pixl.RequiredPlateInteractions)
    {
        // Display the requests on the Console.
        Console.WriteLine($"Please {interaction.Action} {interaction.Plate.ID} ({interaction.Plate.Type}, {interaction.Plate.Role}) into the {interaction.Bay} bay.");
    }

    SerialNumber

    Get the PIXL's serial number.

    Declaration
    public string SerialNumber { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to use the SerialNumber property.

    // Display the PIXL's serial number on the Console.
    Console.WriteLine($"PIXL's serial number is {pixl.SerialNumber}.");

    ServerDescription

    Get the server description of the SiLA2 device.

    Declaration
    public string ServerDescription { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to use the ServerDescription property.

    // Display the PIXL's server description on the Console.
    Console.WriteLine($"PIXL's server description is {ServerDescription}.");

    ServerVendorUrl

    Get the server vendor url of the SiLA2 device.

    Declaration
    public string ServerVendorUrl { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to use the ServerVendorUrl property.

    // Display the PIXL's server vendor url on the Console.
    Console.WriteLine($"PIXL's server vendor url is {ServerVendorUrl}.");

    ServerVersion

    Get the server version of the SiLA2 device.

    Declaration
    public string ServerVersion { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to use the ServerVersion property.

    // Display the PIXL's server version on the Console.
    Console.WriteLine($"PIXL's server version is {ServerVersion}.");

    SoftwareVersion

    Get the PIXL's software version.

    Declaration
    public string SoftwareVersion { get; }
    Property Value
    Type Description
    string
    Examples

    This sample shows how to use the SoftwareVersion property.

    // Display the PIXL's software version on the Console.
    Console.WriteLine($"PIXL's software version is {pixl.SoftwareVersion}.");

    UVBulbRemainingDuration

    Get the estimated remaining duration of life left on the current UV bulb.

    Declaration
    public TimeSpan UVBulbRemainingDuration { get; }
    Property Value
    Type Description
    TimeSpan
    Examples

    This sample shows how to use the UVBulbRemainingDuration property.

    // Display the PIXL's total remaining UV bulb duration on the Console.
    Console.WriteLine($"PIXL's UV bulb has a remaining life of {pixl.UVBulbRemainingDuration}.");

    UVBulbTotalDuration

    Get the total duration of use the current UV bulb has had.

    Declaration
    public TimeSpan UVBulbTotalDuration { get; }
    Property Value
    Type Description
    TimeSpan
    Examples

    This sample shows how to use the UVBulbTotalDuration property.

    // Display the PIXL's total UV bulb duration on the Console.
    Console.WriteLine($"PIXL's UV bulb has been used for {pixl.UVBulbTotalDuration}.");

    Methods

    Abort()

    Abort a pending operation.

    Declaration
    public ApiCommandResponse Abort()
    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to call the Abort() method.

    // Abort any operation running on the PIXL.
    var result = pixl.Abort();
    
    // Display the result of the abort operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("Abort complete.");
    else
        Console.WriteLine($"Abort failed because {result.Message}");

    AllowWorkflowExecutionWithInsufficientPickupLine(bool)

    Adjust if the execution of a workflow is allowed when there is insufficient PickupLine remaining to complete the workflow.

    Declaration
    public void AllowWorkflowExecutionWithInsufficientPickupLine(bool allow)
    Parameters
    Type Name Description
    bool allow

    Set if the execution of a workflow is allowed when there is insufficient PickupLine remaining to complete the workflow.

    Examples

    This sample shows how to use the AllowWorkflowExecutionWithInsufficientPickupLine(bool) method.

    // Disallow workflow execution when there is insufficient PickupLine.
    pixl.AllowWorkflowExecutionWithInsufficientPickupLine(false);

    Awaken()

    Awaken the PIXL.

    Declaration
    public ApiCommandResponse Awaken()
    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to use the Awaken() method.

    // Awaken the PIXL.
    var result = pixl.Awaken();
    
    // Display the result of the awaken operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("Awaken complete.");
    else
        Console.WriteLine($"Awaken failed because {result.Message}");

    CloseMotorisedDoor()

    Close the PIXL's motorised door.

    Declaration
    public Task<ApiCommandResponse> CloseMotorisedDoor()
    Returns
    Type Description
    Task<ApiCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the CloseMotorisedDoor() method.

    // Close the PIXL's motorised door.
    var result = pixl.CloseMotorisedDoor();
    
    // Display the result of the close operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("CloseMotorisedDoor complete.");
    else
        Console.WriteLine($"CloseMotorisedDoor failed because {result.Message}");

    CloseMotorisedDoor(ApiCommandResponseCallback)

    Close the PIXL's motorised door.

    Declaration
    public Task CloseMotorisedDoor(ApiCommandResponseCallback callback)
    Parameters
    Type Name Description
    ApiCommandResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the CloseMotorisedDoor(ApiCommandResponseCallback) method.

    // Close the PIXL's motorised door.
    pixl.CloseMotorisedDoor(x => Console.WriteLine(x => x.Message));

    DetermineRandomColonyPickingStartPosition(string, string, string)

    Determine the next row and column for a target layout.

    Declaration
    public RandomColonyPickingStartPosition DetermineRandomColonyPickingStartPosition(string projectTemplateName, string currentRow, string currentColumn)
    Parameters
    Type Name Description
    string projectTemplateName

    The name of the project template to use. If this is not specified the last used template will be used.

    string currentRow

    The current row. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    string currentColumn

    The current column. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    Returns
    Type Description
    RandomColonyPickingStartPosition

    The start position.

    Examples

    This sample shows how to use the DetermineRandomColonyPickingStartPosition(string, string, string) method.

    // Determine the next row and column for a target layout.
    var position = pixl.DetermineRandomColonyPickingStartPosition("ProjectTemplate", "B", "3");
    // Check the position is valid and if so print on the Console.
    if (position.IsPositionAvailable)
        Console.WriteLine($"Next position is {position.TargetLayoutStartRow},{position.TargetLayoutStartColumn}.")

    Dispose()

    Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

    Declaration
    public void Dispose()

    DownloadImage(string)

    Downloads an image as a base64 string.

    Declaration
    public Task<DownloadImageResponse> DownloadImage(string path)
    Parameters
    Type Name Description
    string path

    The path to the image to get.

    Returns
    Type Description
    Task<DownloadImageResponse>

    A base64 string of the requested image.

    Examples

    This sample shows how to use the DownloadImage(string) method.

    // Get the project image paths from project 1805180F0D33183000
    var image = pixl.DownloadImage("C:\\Users\\username\\AppData\\Roaming\\Singer Instrument Company Limited\\PIXL\\Tracking\\2024_05_24\\Random Colony Picking\\1805180F0D33183000").ImageBase64;

    DownloadImage(string, DownloadImageResponseCallback)

    Downloads an image as a base64 string.

    Declaration
    public Task DownloadImage(string path, DownloadImageResponseCallback callback)
    Parameters
    Type Name Description
    string path

    The path to the image to get.

    DownloadImageResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    A base64 string of the requested image.

    Examples

    This sample shows how to use the DownloadImage(string, DownloadImageResponseCallback) method.

    // Get the 'Original' image base 64 from project 1805180F0D33183000 and display the result on the Console.
    pixl.DownloadImage("C:\\Users\\username\\AppData\\Roaming\\Singer Instrument Company Limited\\PIXL\\Tracking\\2024_05_24\\Random Colony Picking\\1805180F0D33183000\\Original.png", x => Console.WriteLine(x.ImageBase64));

    DownloadProjectTemplateToClient(string, ProjectType)

    Downloads a project template to the client.

    Declaration
    public DownloadProjectTemplateToClientResponse DownloadProjectTemplateToClient(string projectTemplateName, ProjectType projectType)
    Parameters
    Type Name Description
    string projectTemplateName

    The name of the project to download.

    ProjectType projectType

    The project type to download.

    Returns
    Type Description
    DownloadProjectTemplateToClientResponse

    The project XML as a string.

    Examples

    This sample shows how to use the DownloadProjectTemplateToClient(string, ProjectType) method.

    // Download the project template to the PIXL client.
    var projectXmlAsString = pixl.DownloadProjectTemplateToClient(projectTemplateName, projectType).TemplateXml;

    GetAllPIXLChannels()

    Gets an array of all channels to all PIXLs on the network.

    Declaration
    public static Channel[] GetAllPIXLChannels()
    Returns
    Type Description
    Channel[]

    The channels to the PIXLs.

    Examples

    This sample shows how to call the GetAllPIXLChannels() method.

    // Get an array of gRPC channels for the PIXL.
    var channels = PIXLClient.GetAllPIXLChannels();

    GetAvailablePlateDimensionFileNames(PlateTypes)

    Get a list of all available plate dimension file names for a given plate type.

    Declaration
    public string[] GetAvailablePlateDimensionFileNames(PlateTypes plateType)
    Parameters
    Type Name Description
    PlateTypes plateType

    The plate type to get the available plate dimension file names for.

    Returns
    Type Description
    string[]

    An array of strings containing the names of all available plate dimension files for the given plate type.

    Examples

    This sample shows how to use the GetAvailablePlateDimensionFileNames(PlateTypes) method.

    // Get a list of all available plate dimension file names for the 150mm petri dish.
    var allAvailableFileNames = pixl.GetAvailablePlateDimensionFileNames(PlateTypes.Petri_150);
    
    // Iterate all names and display on the Console.
    foreach (var name in allAvailableFileNames)
        Console.WriteLine(name);

    GetImplementedFeatures()

    Get the features this SiLA2 device implements.

    Declaration
    public List<string> GetImplementedFeatures()
    Returns
    Type Description
    List<string>

    The implemented features.

    Examples

    This sample shows how to use the GetImplementedFeatures() method.

    // Display the PIXL's implemented features on the Console.
    foreach (var feature in pixl.GetImplementedFeatures())
        Console.WriteLine($"PIXL implements feature {feature}.");

    GetPIXLChannel()

    Get a channel to a PIXL. This will get a channel to the first discovered PIXL on the network.

    Declaration
    public static Channel GetPIXLChannel()
    Returns
    Type Description
    Channel

    The channel to the PIXL.

    Examples

    This sample shows how to call the GetPIXLChannel() method.

    // Get a gRPC channel for the PIXL using the first port that is discovered.
    var channel = PIXLClient.GetPIXLChannel();

    GetPIXLChannel(string, int)

    Get a channel to a PIXL. This will get a channel based on a socket.

    Declaration
    public static Channel GetPIXLChannel(string host, int port)
    Parameters
    Type Name Description
    string host

    The IP address of the PIXL. The IP address of the PIXL can be found in the 'Settings > API' section of the PIXL software.

    int port

    The PIXL's gRPC port. The default port is 50052, this can be found in the 'Settings > API' section of the PIXL software.

    Returns
    Type Description
    Channel

    The channel to the PIXL.

    Examples

    This sample shows how to call the GetPIXLChannel(string, int) method.

    // Get a gRPC channel for the PIXL at a known port.
    var channel = PIXLClient.GetPIXLChannel("127.0.0.1", 50052);

    GetPlateLoadedInBay(Bays)

    Get the plate that is loaded in a bay.

    Declaration
    public Plate GetPlateLoadedInBay(Bays bay)
    Parameters
    Type Name Description
    Bays bay

    The bay.

    Returns
    Type Description
    Plate

    The plate loaded in the bay.

    Examples

    This sample shows how to use the GetPlateLoadedInBay(Bays) method.

    // Get the plate that is loaded in the red bay.
    var plate = pixl.GetPlateLoadedInBay(Bays.Red);
    
    // Display the plate on the Console.
    Console.WriteLine(plate);

    GetPlateLocation(string)

    Get the location of a plate.

    Declaration
    public Bays GetPlateLocation(string id)
    Parameters
    Type Name Description
    string id

    The ID of the plate.

    Returns
    Type Description
    Bays

    The bay the plate is loaded in.

    Examples

    This sample shows how to use the GetPlateLocation(string) method.

    // Determine the bay a plate with an ID of "1234" is loaded in to.
    var bay = pixl.GetPlateLocation("1234");
    
    // Display the bay on the Console.
    Console.WriteLine(bay);

    GetProjectImages(string)

    Gets all images for a given project directory.

    Declaration
    public ProjectImagesResponse GetProjectImages(string projectDirectory)
    Parameters
    Type Name Description
    string projectDirectory

    The project directory to retrieve images from.

    Returns
    Type Description
    ProjectImagesResponse

    A struct containing a string for the original and processed image paths as well as a thumbnail object containing all thumbnail image file names and the image paths.

    Examples

    This sample shows how to use the GetProjectImages(string) method.

    // Get the project image paths from project 1805180F0D33183000
    var originalImagePath = pixl.GetProjectImages("C:\\Users\\username\\AppData\\Roaming\\Singer Instrument Company Limited\\PIXL\\Tracking\\2024_05_24\\Random Colony Picking\\1805180F0D33183000").OriginalImagePath;

    Initialise()

    Initialise the PIXL.

    Declaration
    public Task<ApiCommandResponse> Initialise()
    Returns
    Type Description
    Task<ApiCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the Initialise() method.

    // Initialise the PIXL.
    pixl.Initialise();

    Initialise(ApiCommandResponseCallback)

    Initialise the PIXL.

    Declaration
    public Task Initialise(ApiCommandResponseCallback callback)
    Parameters
    Type Name Description
    ApiCommandResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the Initialise(ApiCommandResponseCallback) method.

    // Initialise the PIXL.
    pixl.Initialise(x => Console.WriteLine(x.Message));

    IsBayOccupied(Bays)

    Determine if a bay is occupied.

    Declaration
    public bool IsBayOccupied(Bays bay)
    Parameters
    Type Name Description
    Bays bay

    The bay.

    Returns
    Type Description
    bool

    True if the bay is occupied, else false.

    Examples

    This sample shows how to use the IsBayOccupied(Bays) method.

    // Determine if the red bay is occupied.
    var isOccupied = pixl.IsBayOccupied(Bays.Red);

    IsPlateLoaded(string)

    Determine if a plate is loaded.

    Declaration
    public bool IsPlateLoaded(string id)
    Parameters
    Type Name Description
    string id

    The ID of the plate.

    Returns
    Type Description
    bool

    True if the plate is loaded, else false.

    Examples

    This sample shows how to use the IsPlateLoaded(string) method.

    // Determine if a plate with an ID of "1234" is loaded.
    var isLoaded = pixl.IsPlateLoaded("1234");

    OpenMotorisedDoor()

    Open the PIXL's motorised door.

    Declaration
    public Task<ApiCommandResponse> OpenMotorisedDoor()
    Returns
    Type Description
    Task<ApiCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the OpenMotorisedDoor() method.

    // Open the PIXL's motorised door.
    var result = pixl.OpenMotorisedDoor();
    
    // Display the result of the open operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("OpenMotorisedDoor complete.");
    else
        Console.WriteLine($"OpenMotorisedDoor failed because {result.Message}");

    OpenMotorisedDoor(ApiCommandResponseCallback)

    Open the PIXL's motorised door.

    Declaration
    public Task OpenMotorisedDoor(ApiCommandResponseCallback callback)
    Parameters
    Type Name Description
    ApiCommandResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the OpenMotorisedDoor(ApiCommandResponseCallback) method.

    // Open the PIXL's motorised door.
    pixl.OpenMotorisedDoor(x => Console.WriteLine(x => x.Message));

    PlateLoaded(Bays, string, PlateTypes, PlateRoles)

    Notify the PIXL that a plate has been loaded.

    Declaration
    public ApiCommandResponse PlateLoaded(Bays bay, string plateID, PlateTypes plateType, PlateRoles plateRole)
    Parameters
    Type Name Description
    Bays bay

    The bay to load the plate into.

    string plateID

    The ID of the plate.

    PlateTypes plateType

    The plate type.

    PlateRoles plateRole

    The plate role.

    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to use the PlateLoaded(Bays, string, PlateTypes, PlateRoles) method.

    // Notify that a 96 colony source PlusPlate into the red bay.
    pixl.PlateLoaded(Bays.Red, "Plates ID", PlateTypes.PlusPlate_96, PlateRoles.Source);

    PlateLoaded(Bays, string, PlateTypes, PlateRoles, string)

    Notify the PIXL that a plate has been loaded.

    Declaration
    public ApiCommandResponse PlateLoaded(Bays bay, string plateID, PlateTypes plateType, PlateRoles plateRole, string plateDimensions)
    Parameters
    Type Name Description
    Bays bay

    The bay to load the plate into.

    string plateID

    The ID of the plate.

    PlateTypes plateType

    The plate type.

    PlateRoles plateRole

    The plate role.

    string plateDimensions

    The plate dimensions.

    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to use the PlateLoaded(Bays, string, PlateTypes, PlateRoles, string) method.

    // Notify that a 96 colony source PlusPlate into the red bay.
    pixl.PlateLoaded(Bays.Red, "Plates ID", PlateTypes.PlusPlate_96, PlateRoles.Source, string.Empty);

    PlateRemoved(Bays)

    Notify the PIXL that a plate has been removed.

    Declaration
    public ApiCommandResponse PlateRemoved(Bays bay)
    Parameters
    Type Name Description
    Bays bay

    The bay the plate has been removed from.

    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to use the PlateRemoved(Bays) method.

    // Notify that the plate in the red bay has been removed.
    pixl.PlateRemoved(Bays.Red);

    Reset()

    Reset the PIXL.

    Declaration
    public Task<ApiCommandResponse> Reset()
    Returns
    Type Description
    Task<ApiCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the Reset() method.

    // Reset the PIXL.
    var result = pixl.Reset();
    
    // Display the result of the reset operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("Reset complete.");
    else
        Console.WriteLine($"Reset failed because {result.Message}");

    Reset(ApiCommandResponseCallback)

    Reset the PIXL.

    Declaration
    public Task Reset(ApiCommandResponseCallback callback)
    Parameters
    Type Name Description
    ApiCommandResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the Reset(ApiCommandResponseCallback) method.

    // Reset the PIXL.
    pixl.Reset(x => Console.WriteLine(x => x.Message));

    Restart()

    Restart the PIXL.

    Declaration
    public ApiCommandResponse Restart()
    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Examples

    This sample shows how to use the Restart() method.

    // Restart the PIXL.
    var result = pixl.Restart();
    
    // Display the result of the restart operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("Restart complete.");
    else
        Console.WriteLine($"Restart failed because {result.Message}");

    RunColonyDetectionWorkflow(string)

    Run the Colony Detection workflow using the last used project template..

    Declaration
    public Task<RunColonyDetectionCommandResponse> RunColonyDetectionWorkflow(string id)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    Returns
    Type Description
    Task<RunColonyDetectionCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunColonyDetectionWorkflow(string) method.

    // Run the Colony Detection workflow with the last used project template and pinning profile.
    pixl.RunColony DetectionWorkflow("1234");

    RunColonyDetectionWorkflow(string, RunColonyDetectionWorkflowResponseCallback)

    Run the Colony Detection workflow using the last used project template.

    Declaration
    public Task RunColonyDetectionWorkflow(string id, RunColonyDetectionWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    RunColonyDetectionWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunColonyDetectionWorkflow(string, RunColonyDetectionWorkflowResponseCallback) method.

    // Run the Colony Detection workflow with the last used project template and display the result on the Console.
    pixl.RunColonyDetectionWorkflow("1234", x => Console.WriteLine(x.Result.Message));

    RunColonyDetectionWorkflow(string, string)

    Run the Colony Detection workflow using a specified project template..

    Declaration
    public Task<RunColonyDetectionCommandResponse> RunColonyDetectionWorkflow(string id, string projectTemplateName)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    Returns
    Type Description
    Task<RunColonyDetectionCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunColonyDetectionWorkflow(string, string) method.

    // Run the Colony Detection workflow with the last used project template.
    pixl.RunColonyDetectionWorkflow("1234", string.Empty);

    RunColonyDetectionWorkflow(string, string, RunColonyDetectionWorkflowResponseCallback)

    Run the Colony Detection workflow using a specified project template.

    Declaration
    public Task RunColonyDetectionWorkflow(string id, string projectTemplateName, RunColonyDetectionWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    RunColonyDetectionWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunColonyDetectionWorkflow(string, string, RunColonyDetectionWorkflowResponseCallback) method.

    // Run the Colony Detection workflow with the last used project template and display the result on the Console.
    pixl.RunColonyDetectionWorkflow("1234", string.Empty, x => Console.WriteLine(x.Result.Message));

    RunRandomColonyPickingWorkflow(string)

    Run the Random Colony Picking workflow using the last used project template and its pinning profile.

    Declaration
    public Task<RunRandomColonyPickingCommandResponse> RunRandomColonyPickingWorkflow(string id)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    Returns
    Type Description
    Task<RunRandomColonyPickingCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile.
    pixl.RunRandomColonyPickingWorkflow("1234");

    RunRandomColonyPickingWorkflow(string, RunRandomColonyPickingWorkflowResponseCallback)

    Run the Random Colony Picking workflow using the last used project template and its pinning profile.

    Declaration
    public Task RunRandomColonyPickingWorkflow(string id, RunRandomColonyPickingWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    RunRandomColonyPickingWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, RunRandomColonyPickingWorkflowResponseCallback) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile and display the result on the Console.
    pixl.RunRandomColonyPickingWorkflow("1234", x => Console.WriteLine(x.Result.Message));

    RunRandomColonyPickingWorkflow(string, string, string)

    Run the Random Colony Picking workflow using a specified project template and pinning profile.

    Declaration
    public Task<RunRandomColonyPickingCommandResponse> RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    Returns
    Type Description
    Task<RunRandomColonyPickingCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty);

    RunRandomColonyPickingWorkflow(string, string, string, RunRandomColonyPickingWorkflowResponseCallback)

    Run the Random Colony Picking workflow using a specified project template and pinning profile.

    Declaration
    public Task RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, RunRandomColonyPickingWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    RunRandomColonyPickingWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, RunRandomColonyPickingWorkflowResponseCallback) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile and display the result on the Console.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, x => Console.WriteLine(x.Result.Message));

    RunRandomColonyPickingWorkflow(string, string, string, int)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task<RunRandomColonyPickingCommandResponse> RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, int sourceColonyLimit)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    int sourceColonyLimit

    A limit to apply to the number of source colonies that are picked. If no limit is desired specify PIXLClient.NoColonyLimit.

    Returns
    Type Description
    Task<RunRandomColonyPickingCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, int) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, starting at position B3 and limiting to 5 source colonies.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, 5);

    RunRandomColonyPickingWorkflow(string, string, string, int, RunRandomColonyPickingWorkflowResponseCallback)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, int sourceColonyLimit, RunRandomColonyPickingWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    int sourceColonyLimit

    A limit to apply to the number of source colonies that are picked. If no limit is desired specify PIXLClient.NoColonyLimit.

    RunRandomColonyPickingWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, int, RunRandomColonyPickingWorkflowResponseCallback) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, limiting to 5 source colonies and display the result on the Console.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, 5, x => Console.WriteLine(x.Result.Message));

    RunRandomColonyPickingWorkflow(string, string, string, string, string)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task<RunRandomColonyPickingCommandResponse> RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, string targetLayoutStartRow, string targetLayoutStartColumn)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string targetLayoutStartRow

    The row at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    string targetLayoutStartColumn

    The column at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    Returns
    Type Description
    Task<RunRandomColonyPickingCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, string, string) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, starting at position B3.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, "B", "3");

    RunRandomColonyPickingWorkflow(string, string, string, string, string, RunRandomColonyPickingWorkflowResponseCallback)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, string targetLayoutStartRow, string targetLayoutStartColumn, RunRandomColonyPickingWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string targetLayoutStartRow

    The row at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    string targetLayoutStartColumn

    The column at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    RunRandomColonyPickingWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, string, string, RunRandomColonyPickingWorkflowResponseCallback) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, starting at position B3 and display the result on the Console.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, "B", "3", x => Console.WriteLine(x.Result.Message));

    RunRandomColonyPickingWorkflow(string, string, string, string, string, int)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task<RunRandomColonyPickingCommandResponse> RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, string targetLayoutStartRow, string targetLayoutStartColumn, int sourceColonyLimit)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string targetLayoutStartRow

    The row at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    string targetLayoutStartColumn

    The column at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    int sourceColonyLimit

    A limit to apply to the number of source colonies that are picked. If no limit is desired specify PIXLClient.NoColonyLimit.

    Returns
    Type Description
    Task<RunRandomColonyPickingCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, string, string, int) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, starting at position B3 and limiting to 5 source colonies.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, "B", "3", 5);

    RunRandomColonyPickingWorkflow(string, string, string, string, string, int, RunRandomColonyPickingWorkflowResponseCallback)

    Run the Random Colony Picking workflow using a specified project template, pinning profile and target layout start position.

    Declaration
    public Task RunRandomColonyPickingWorkflow(string id, string projectTemplateName, string pinningProfileName, string targetLayoutStartRow, string targetLayoutStartColumn, int sourceColonyLimit, RunRandomColonyPickingWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string targetLayoutStartRow

    The row at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    string targetLayoutStartColumn

    The column at which to start pinning to the target plate. This can be specified as an integer (1 based) or as alphabetically. If this is not specified the position from the current project template is used.

    int sourceColonyLimit

    A limit to apply to the number of source colonies that are picked. If no limit is desired specify PIXLClient.NoColonyLimit.

    RunRandomColonyPickingWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRandomColonyPickingWorkflow(string, string, string, string, string, int, RunRandomColonyPickingWorkflowResponseCallback) method.

    // Run the Random Colony Picking workflow with the last used project template and pinning profile, starting at position B3 and limiting to 5 source colonies and display the result on the Console.
    pixl.RunRandomColonyPickingWorkflow("1234", string.Empty, string.Empty, "B", "3", 5, x => Console.WriteLine(x.Result.Message));

    RunRearrayWorkflow(string, ConsecutivePinningInstruction[])

    Run the re-array workflow using the last used project template and its pinning profile.

    Declaration
    public Task<RunRearrayCommandResponse> RunRearrayWorkflow(string id, ConsecutivePinningInstruction[] consecutivePinningsInstruction)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    ConsecutivePinningInstruction[] consecutivePinningsInstruction

    The consecutive pinnings used in the re-array.

    Returns
    Type Description
    Task<RunRearrayCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflow(string, ConsecutivePinningInstruction[]) method.

    Define some plates.
    var plate1 = new Plate("Source_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Source);
    var plate2 = new Plate("Target_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Target);
    
     Define some pinnings instructions.
    var pinnings = new[]
    {
        new ConsecutivePinningInstruction(new[]
        {
            new PinningInstruction(plate1, 1, 1),
            new PinningInstruction(plate2, 1, 1)
        })
    };
    // Run the re-array workflow for the defined pinning operations with the last used project template and pinning profile.
    pixl.RunRearrayWorkflow("1234", string.Empty, string.Empty, pinnings);

    RunRearrayWorkflow(string, ConsecutivePinningInstruction[], RunRearrayWorkflowResponseCallback)

    Run the re-array workflow using the last used project template and its pinning profile.

    Declaration
    public Task RunRearrayWorkflow(string id, ConsecutivePinningInstruction[] consecutivePinningsInstruction, RunRearrayWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    ConsecutivePinningInstruction[] consecutivePinningsInstruction

    The consecutive pinnings used in the re-array.

    RunRearrayWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflow(string, ConsecutivePinningInstruction[], RunRearrayWorkflowResponseCallback) method.

    Define some plates.
    var plate1 = new Plate("Source_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Source);
    var plate2 = new Plate("Target_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Target);
    
     Define some pinnings instructions.
    var pinnings = new[]
    {
        new ConsecutivePinningInstruction(new[]
        {
            new PinningInstruction(plate1, 1, 1),
            new PinningInstruction(plate2, 1, 1)
        })
    };
    // Run the re-array workflow for the defined pinning operations with the last used project template and pinning profile and display the result on the Console.
    pixl.RunRearrayWorkflow("1234", string.Empty, string.Empty, pinnings, x => Console.WriteLine(x.Result.Message));

    RunRearrayWorkflow(string, string, string, ConsecutivePinningInstruction[])

    Run the re-array workflow.

    Declaration
    public Task<RunRearrayCommandResponse> RunRearrayWorkflow(string id, string projectTemplateName, string pinningProfileName, ConsecutivePinningInstruction[] consecutivePinningsInstruction)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the current workflow will be used.

    ConsecutivePinningInstruction[] consecutivePinningsInstruction

    The consecutive pinnings used in the re-array.

    Returns
    Type Description
    Task<RunRearrayCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflow(string, string, string, ConsecutivePinningInstruction[]) method.

    Define some plates.
    var plate1 = new Plate("Source_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Source);
    var plate2 = new Plate("Target_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Target);
    
     Define some pinnings instructions.
    var pinnings = new[]
    {
        new ConsecutivePinningInstruction(new[]
        {
            new PinningInstruction(plate1, 1, 1),
            new PinningInstruction(plate2, 1, 1)
        })
    };
    // Run the re-array workflow for the defined pinning operations with the default project template and pinning profile.
    pixl.RunRearrayWorkflow("1234", string.Empty, string.Empty, pinnings);

    RunRearrayWorkflow(string, string, string, ConsecutivePinningInstruction[], RunRearrayWorkflowResponseCallback)

    Run the re-array workflow.

    Declaration
    public Task RunRearrayWorkflow(string id, string projectTemplateName, string pinningParametersName, ConsecutivePinningInstruction[] consecutivePinningsInstruction, RunRearrayWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningParametersName

    The name of the pinning parameters to use. If this is empty the last used settings will be used.

    ConsecutivePinningInstruction[] consecutivePinningsInstruction

    The consecutive pinnings used in the re-array.

    RunRearrayWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflow(string, string, string, ConsecutivePinningInstruction[], RunRearrayWorkflowResponseCallback) method.

    Define some plates.
    var plate1 = new Plate("Source_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Source);
    var plate2 = new Plate("Target_Plate_1", PlateTypes.PlusPlate_96, PlateRoles.Target);
    
     Define some pinnings instructions.
    var pinnings = new[]
    {
        new ConsecutivePinningInstruction(new[]
        {
            new PinningInstruction(plate1, 1, 1),
            new PinningInstruction(plate2, 1, 1)
        })
    };
    // Run the re-array workflow for the defined pinning operations with the default project template and pinning profile and display the result on the Console.
    pixl.RunRearrayWorkflow("1234", string.Empty, string.Empty, pinnings, x => Console.WriteLine(x.Result.Message));

    RunRearrayWorkflowFromFile(string, string)

    Run the re-array workflow from a file using the last used project template and its pinning profile.

    Declaration
    public Task<RunRearrayCommandResponse> RunRearrayWorkflowFromFile(string id, string path)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string path

    A path to the re-array data file.

    Returns
    Type Description
    Task<RunRearrayCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflowFromFile(string, string) method.

    // Run the re-array workflow for a file called "d:\Test.csv" with the last used project template and pinning profile.
    pixl.RunRearrayWorkflowFromFile("1234", string.Empty, string.Empty, "d:\Test.csv");

    RunRearrayWorkflowFromFile(string, string, RunRearrayWorkflowResponseCallback)

    Run the re-array workflow from a file using the last used project template and its pinning profile.

    Declaration
    public Task RunRearrayWorkflowFromFile(string id, string path, RunRearrayWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string path

    A path to the re-array data file.

    RunRearrayWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflowFromFile(string, string, RunRearrayWorkflowResponseCallback) method.

    // Run the re-array workflow for a file called "d:\Test.csv" with the last used project template and pinning profile and display the result on the Console..
    pixl.RunRearrayWorkflowFromFile("1234", string.Empty, string.Empty, "d:\Test.csv", x => Console.WriteLine(x.Result.Message));

    RunRearrayWorkflowFromFile(string, string, string, string)

    Run the re-array workflow from a file.

    Declaration
    public Task<RunRearrayCommandResponse> RunRearrayWorkflowFromFile(string id, string projectTemplateName, string pinningProfileName, string path)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used template will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string path

    A path to the re-array data file.

    Returns
    Type Description
    Task<RunRearrayCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflowFromFile(string, string, string, string) method.

    // Run the re-array workflow for a file called "d:\Test.csv" with the last used project template and pinning profile.
    pixl.RunRearrayWorkflowFromFile("1234", string.Empty, string.Empty, "d:\Test.csv");

    RunRearrayWorkflowFromFile(string, string, string, string, RunRearrayWorkflowResponseCallback)

    Run the re-array workflow from a file.

    Declaration
    public Task RunRearrayWorkflowFromFile(string id, string projectTemplateName, string pinningProfileName, string path, RunRearrayWorkflowResponseCallback callback)
    Parameters
    Type Name Description
    string id

    The workflow's ID.

    string projectTemplateName

    The name of the project template to use. If this is empty the last used settings will be used.

    string pinningProfileName

    The name of the pinning profile to use. If this is not specified the profile from the workflow will be used.

    string path

    A path to the re-array data file.

    RunRearrayWorkflowResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunRearrayWorkflowFromFile(string, string, string, string, RunRearrayWorkflowResponseCallback) method.

    // Run the re-array workflow for a file called "d:\Test.csv" with the default project template and pinning profile and display the result on the Console..
    pixl.RunRearrayWorkflowFromFile("1234", string.Empty, string.Empty, "d:\Test.csv", x => Console.WriteLine(x.Result.Message));

    RunUVSterilisation(int)

    Run UV sterilisation.

    Declaration
    public Task<ApiCommandResponse> RunUVSterilisation(int minutes)
    Parameters
    Type Name Description
    int minutes

    The number of minutes to run sterilisation for.

    Returns
    Type Description
    Task<ApiCommandResponse>

    The result of the action.

    Examples

    This sample shows how to use the RunUVSterilisation(int) method.

    // Run sterilisation for 20 minutes.
    pixl.RunUVSterilisation(20);

    RunUVSterilisation(int, ApiCommandResponseCallback)

    Run UV sterilisation.

    Declaration
    public Task RunUVSterilisation(int minutes, ApiCommandResponseCallback callback)
    Parameters
    Type Name Description
    int minutes

    The number of minutes to run sterilisation for.

    ApiCommandResponseCallback callback

    A callback to invoke when the command has finished execution.

    Returns
    Type Description
    Task

    The result of the action.

    Examples

    This sample shows how to use the RunUVSterilisation(int, ApiCommandResponseCallback) method.

    // Run sterilisation for 20 minutes and display the result on the console.
    pixl.RunUVSterilisation(20, x => Console.WriteLine(x.Message));

    ShutDown()

    Shutdown the PIXL.

    Declaration
    public ApiCommandResponse ShutDown()
    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Remarks

    Once the PIXL has been shut down it requires a power cycle to restart.

    Examples

    This sample shows how to use the ShutDown() method.

    // Shut down the PIXL.
    pixl.ShutDown();

    Sleep()

    Put the PIXL to sleep.

    Declaration
    public ApiCommandResponse Sleep()
    Returns
    Type Description
    ApiCommandResponse

    The result of the action.

    Remarks

    It is recommended that the PIXL is left in a sleep state when it isn't being used for a long period of time as this will help prolong the life of some of the components.

    Examples

    This sample shows how to use the Sleep() method.

    // Put the PIXL to sleep.
    var result = pixl.Sleep();
    
    // Display the result of the sleep operation based on if it was a success.
    if (result.IsSuccess)
        Console.WriteLine("Sleep complete.");
    else
        Console.WriteLine($"Sleep failed because {result.Message}");

    TryGetFeatureDefinition(string, out Feature, out string)

    Try and get a definition of a feature.

    Declaration
    public bool TryGetFeatureDefinition(string featureIdentifier, out Feature feature, out string message)
    Parameters
    Type Name Description
    string featureIdentifier

    The identifier of the feature.

    Feature feature

    The feature definition.

    string message

    The message.

    Returns
    Type Description
    bool

    True if the definition could be returned, else false.

    Examples

    This sample shows how to use the TryGetFeatureDefinition(string, out Feature, out string) method.

    // Try and get the feature definition
    if (pixl.TryGetFeatureDefinition("featureIdentifier", out Feature feature, out string Message)
        Console.WriteLine($"Got {feature}.");
    else
        Console.WriteLine($"Couldn't get feature with identifier {featureIdentifier} because {message}");

    UploadProjectTemplateToServer(string, bool)

    Uploads a given project template xml as a string to the PIXL server to be served.

    Declaration
    public ApiCommandResponse UploadProjectTemplateToServer(string projectTemplateXML, bool saveTemplate)
    Parameters
    Type Name Description
    string projectTemplateXML

    The project template xml as a string.

    bool saveTemplate

    True to save the project template onto the PIXL. False to use until the PIXL is power cycled.

    Returns
    Type Description
    ApiCommandResponse
    Examples

    This sample shows how to use the UploadProjectTemplateToServer(string, bool) method.

    // Upload the project template to the PIXL server.
    pixl.UploadProjectTemplateToServer(projectTemplateXML, saveTemplate);

    Events

    ActiveErrorChanged

    Occurs when the active error changes.

    Declaration
    public event EventHandler<ActiveError> ActiveErrorChanged
    Event Type
    Type Description
    EventHandler<ActiveError>
    Examples

    This sample shows how to handle the ActiveErrorChanged event.

    // Subscribe to ActiveErrorChanged events.
    pixl.ActiveErrorChanged += (sender, error) =>
    {
        // Check if there is an error and handle updates accordingly.
        if (!error.HasActiveError)
        {
            // Publish an update to the Console.
            Console.WriteLine("There is no active error.");
        }
        else
        {
            // Publish an update to the Console displaying the error details.
            Console.WriteLine($"Active error has changed: Code: {error.Code}, Description: {error.Description}");
        }
    };

    ApiDeactivated

    Occurs when the PIXL reports the Api is being deactivated.

    Declaration
    public event EventHandler ApiDeactivated
    Event Type
    Type Description
    EventHandler
    Examples

    This sample shows how to handle the ApiDeactivated event.

    // Subscribe to ApiDeactivated events.
    pixl.ApiDeactivated += (sender, args) =>
    {
        // Publish an update to the Console.
        Console.WriteLine("The PIXLs api has been deactivated.");
    };

    CanAwakenChanged

    Occurs when the PIXLClient.CanAwaken property changes.

    Declaration
    public event EventHandler<bool> CanAwakenChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the CanAwakenChanged event.

    // Subscribe to CanAwakenChanged events.
    pixl.CanAwakenChanged += (sender, canAwaken) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL can now {(canAwaken ? "awaken" : "not awaken")}.");
    };

    CanSleepChanged

    Occurs when the PIXLClient.CanSleep property changes.

    Declaration
    public event EventHandler<bool> CanSleepChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the CanSleepChanged event.

    // Subscribe to CanSleepChanged events.
    pixl.CanSleepChanged += (sender, canSleep) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL can now {(canSleep ? "sleep" : "not sleep")}.");
    };

    CleavesOnCurrentBladeChanged

    Occurs when the PIXLClient.CleavesOnCurrentBlade property changes.

    Declaration
    public event EventHandler<int> CleavesOnCurrentBladeChanged
    Event Type
    Type Description
    EventHandler<int>
    Examples

    This sample shows how to handle the CleavesOnCurrentBladeChanged event.

    // Subscribe to CleavesOnCurrentBladeChanged events.
    pixl.CleavesOnCurrentBladeChanged += (sender, cleaves) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's current blade has cleaved {cleaves} times.");
    };

    DebugInformationReceived

    Occurs when a new item of debugging information is received.

    Declaration
    public event EventHandler<string> DebugInformationReceived
    Event Type
    Type Description
    EventHandler<string>
    Examples

    This sample shows how to handle the DebugInformationReceived event.

    // Subscribe to DebugInformationReceived events.
    pixl.DebugInformationReceived += (sender, info) =>
    {
        // Publish an update to the Console.
        Console.WriteLine(info);
    };

    IsAsleepChanged

    Occurs when the PIXLClient.IsAsleep property changes.

    Declaration
    public event EventHandler<bool> IsAsleepChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the IsAsleepChanged event.

    // Subscribe to IsAsleepChanged events.
    pixl.IsAsleepChanged += (sender, asleep) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL is now {(asleep ? "asleep" : "awake")}.");
    };

    IsConnectionLiveChanged

    Occurs when the connection to the PIXL is changed.

    Declaration
    public event EventHandler<bool> IsConnectionLiveChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the IsConnectionLiveChanged event.

    // Subscribe to IsConnectionLiveChanged events.
    pixl.IsConnectionLiveChanged += (sender, live) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"The connection to the PIXL is ({live ? "live" : "dead"}).");
    };

    IsDoorClosedChanged

    Occurs when the PIXLClient.IsDoorClosed property changes.

    Declaration
    public event EventHandler<bool> IsDoorClosedChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the IsDoorClosedChanged event.

    // Subscribe to IsDoorClosedChanged events.
    pixl.IsDoorClosedChanged += (sender, isClosed) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's door is now {(isClosed ? "closed" : "open")}.");
    };

    IsDoorLockedChanged

    Occurs when the PIXLClient.IsDoorLocked property changes.

    Declaration
    public event EventHandler<bool> IsDoorLockedChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the IsDoorLockedChanged event.

    // Subscribe to IsDoorLockedChanged events.
    pixl.IsDoorLockedChanged += (sender, isLocked) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's door is now {(isLocked ? "locked" : "unlocked")}.");
    };

    IsInitialisedChanged

    Occurs when the PIXLClient.IsInitialised property changes.

    Declaration
    public event EventHandler<bool> IsInitialisedChanged
    Event Type
    Type Description
    EventHandler<bool>
    Examples

    This sample shows how to handle the IsInitialisedChanged event.

    // Subscribe to IsInitialisedChanged events.
    pixl.IsInitialisedChanged += (sender, initialised) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL is now {(initialised ? "initialised" : "not initialised")}.");
    };

    OperationalStatusChanged

    Occurs when the PIXLClient.OperationalStatus property changes.

    Declaration
    public event EventHandler<OperationalStatus> OperationalStatusChanged
    Event Type
    Type Description
    EventHandler<OperationalStatus>
    Examples

    This sample shows how to handle the OperationalStatusChanged event.

    // Subscribe to OperationalStatusChanged events.
    pixl.OperationalStatusChanged += (sender, status) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"Current running command is {pixl.OperationalStatus.ProgressAsPercentage}% complete, and has an estimated {pixl.OperationalStatus.EstimatedRemainingTime} remaining.");
    };

    PickupLineRemainingInMetersChanged

    Occurs when the PIXLClient.PickupLineRemainingInMeters property changes.

    Declaration
    public event EventHandler<double> PickupLineRemainingInMetersChanged
    Event Type
    Type Description
    EventHandler<double>
    Examples

    This sample shows how to handle the PickupLineRemainingInMetersChanged event.

    // Subscribe to PickupLineRemainingInMetersChanged events.
    pixl.PickupLineRemainingInMetersChanged += (sender, remaining) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL has {remaining}m of PickupLine remaining on the current reel.");
    };

    PickupLineUsedInMetersChanged

    Occurs when the PIXLClient.PickupLineUsedInMeters property changes.

    Declaration
    public event EventHandler<double> PickupLineUsedInMetersChanged
    Event Type
    Type Description
    EventHandler<double>
    Examples

    This sample shows how to handle the PickupLineUsedInMetersChanged event.

    // Subscribe to PickupLineUsedInMetersChanged events.
    pixl.PickupLineUsedInMetersChanged += (sender, used) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL has used {used}m of PickupLine from the current reel.");
    };

    RemainingCleavesOnCurrentBladeChanged

    Occurs when the PIXLClient.RemainingCleavesOnCurrentBlade property changes.

    Declaration
    public event EventHandler<int> RemainingCleavesOnCurrentBladeChanged
    Event Type
    Type Description
    EventHandler<int>
    Examples

    This sample shows how to handle the RemainingCleavesOnCurrentBladeChanged event.

    // Subscribe to RemainingCleavesOnCurrentBladeChanged events.
    pixl.RemainingCleavesOnCurrentBladeChanged += (sender, cleaves) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's current blade has {cleaves} cleaves remaining.");
    };

    RemainingUVSterilisationTimeChanged

    Occurs when the PIXLClient.RemainingUVSterilisationTime property changes.

    Declaration
    public event EventHandler<TimeSpan> RemainingUVSterilisationTimeChanged
    Event Type
    Type Description
    EventHandler<TimeSpan>
    Examples

    This sample shows how to handle the RemainingUVSterilisationTimeChanged event.

    // Subscribe to RemainingUVSterilisationTimeChanged events.
    pixl.RemainingUVSterilisationTimeChanged += (sender, duration) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL UV sterilisation has {duration} remaining.");
    };

    RequiredPlateInteractionInstructionsChanged

    Occurs when the required plate interaction instructions change.

    Declaration
    public event EventHandler<string> RequiredPlateInteractionInstructionsChanged
    Event Type
    Type Description
    EventHandler<string>
    Examples

    This sample shows how to handle the RequiredPlateInteractionInstructionsChanged event.

    // Subscribe to RequiredPlateInteractionInstructionsChanged events.
    pixl.RequiredPlateInteractionInstructionsChanged += (sender, instruction) =>
    {
        // Publish an update to the Console.
        Console.WriteLine(instruction);
    };

    RequiredPlateInteractionsChanged

    Occurs when the required plate interactions change.

    Declaration
    public event EventHandler<PlateRequest[]> RequiredPlateInteractionsChanged
    Event Type
    Type Description
    EventHandler<PlateRequest[]>
    Examples

    This sample shows how to handle the RequiredPlateInteractionsChanged event.

    // Subscribe to RequiredPlateInteractionsChanged events.
    pixl.RequiredPlateInteractionsChanged += (sender, requiredPlateInteractions) =>
    {
        // Check that there is at least one interaction required.
        if (requiredPlateInteractions.Length == 0)
        {
            // Publish an update to the Console.
            Console.WriteLine("There is no required plate interactions.");
        }
        else
        {
            // Iterate all interactions.
            foreach (var interaction in requiredPlateInteractions)
            {
                // Publish an update to the Console displaying the requests.
                Console.WriteLine($"Please {interaction.Action} {interaction.Plate.ID} ({interaction.Plate.Type}, {interaction.Plate.Role}) into the {interaction.Bay} bay.");
            }
        }
    };

    UVBulbRemainingDurationChanged

    Occurs when the PIXLClient.UVBulbRemainingDuration property changes.

    Declaration
    public event EventHandler<TimeSpan> UVBulbRemainingDurationChanged
    Event Type
    Type Description
    EventHandler<TimeSpan>
    Examples

    This sample shows how to handle the UVBulbRemainingDurationChanged event.

    // Subscribe to UVBulbRemainingDurationChanged events.
    pixl.UVBulbRemainingDurationChanged += (sender, duration) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's UV bulb has {duration} remaining.");
    };

    UVBulbTotalDurationChanged

    Occurs when the PIXLClient.UVBulbTotalDuration property changes.

    Declaration
    public event EventHandler<TimeSpan> UVBulbTotalDurationChanged
    Event Type
    Type Description
    EventHandler<TimeSpan>
    Examples

    This sample shows how to handle the UVBulbTotalDurationChanged event.

    // Subscribe to UVBulbTotalDurationChanged events.
    pixl.UVBulbTotalDurationChanged += (sender, duration) =>
    {
        // Publish an update to the Console.
        Console.WriteLine($"PIXL's UV bulb has been used for {duration}.");
    };

    Implements

    IDisposable
    In this article
    Back to top Singer Instrument Company Limited 2024