Class PIXLClient
Represents a SiLA 2 client for the Singer Instrument Company Limited PIXL.
Implements
Inherited Members
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}.");
};