Chronos Plugins 5.4.0
This documentation covers the plugin interfaces definitions and an example implementation.
Loading...
Searching...
No Matches
AxelSemrau.Chronos.Plugin Namespace Reference

Classes and interfaces that are meant for plugins. The classes and interfaces below this namespace are meant to be upwards compatible across Chronos versions. If you notice any incompatibilities, please let us know. More...

Namespaces

namespace  Columns
 Interfaces for custom sample list column type definitions. These interfaces allow you to define new custom column types definitions which behave just like builtin types and let you define your own column context menus and editors for the sample list.
 
namespace  Config
 Information regarding the currently active configuration. These classes reflect configuration information which is meant to be accessed by plugins. If you miss information here, please let us know, and don't start parsing the Chronos configuration files, as these may change in the future.
 
namespace  Consumables
 
namespace  LegacyDevices
 Access to some functionality of Chronos builtin device drivers. These are added as required. If you are missing something here that would be useful for your plugin, please let us know.
 
namespace  MethodEditor
 Auxiliary functions that can improve the usablility of the method editor for your task types.
 
namespace  SDKSupport
 Functionality supporting CTC's Task SDK plugins.
 
namespace  WPF
 

Classes

class  CustomTaskCategoryAttribute
 Use this if none of the predefined categories fit and you have a better idea than "Misc". More...
 
class  DefaultUnitAttribute
 Use this on your task property if you want the method editor to show a default unit. More...
 
class  DeviceExtensions
 Hopefully useful extensions for IDevice. More...
 
class  DevicesLimitedAttribute
 Add this attribute to your ITaskForDevice.SetDevice method or your IDevice property if you are using more than one device to limit the range of autosamplers that is offered in the method editor. More...
 
class  DynamicPropertyMasterAttribute
 Set this attribute if changing its value in the method editor will result in a different list of properties for the task/service. More...
 
class  FilenameAttribute
 State that the task property describes a filename/folder name and should offer a picker dialog in the Chronos method editor. More...
 
class  Helpers
 Static instance for access to utility functions and resources. More...
 
interface  IAbortableTask
 Implement this interface if your task does some long lasting operation which should be interruptible. More...
 
interface  IAbortSchedules
 Implement this interface if you need to abort schedules on some error condition. More...
 
interface  IAccessProperty
 Gives full access to other tasks's properties. More...
 
interface  IAccessSampleLists
 From Chronos 5.2 on, there can be multiple sample lists at once. More...
 
interface  IAcquisitionHostTask
 This interface is implemented by the acquisition task instance that hosts your parameter list. More...
 
interface  IAcquisitionService
 Implement this interface if you want to provide an acquisition service that is loaded on program start, can provide an optional configuration dialog and be used by the normal Acquisition task in Chronos. More...
 
interface  IAcquisitionServiceBase
 Base for acquisition services, parts that are the same regardless of the parameter list. If you want to provide an acquisition service from your plugin, you must implement the generic interface for your specific parameter type. More...
 
interface  IBarcodeReader
 Implement this interface if your device is a barcode reader that can be used with the ReadBarcode task. More...
 
interface  ICanInterrupt
 For devices that support pausing/aborting independent of a task. More...
 
interface  ICellAccessor
 Gives access to a cell's value. More...
 
interface  IColumnInfo
 Information about a column defined in a method. More...
 
interface  ICommandUsingAcquisitionService
 Implement this interface if your acquisition service supports some kind of utility commands that could be run from a method. More...
 
interface  IConfigInfo
 Get information about the currently active configuration. More...
 
interface  IConfigurableAcquisitionService
 Implement this interface if your acquisition service requires some kind of configuration. More...
 
interface  IDebugHelper
 Utility functions for debugging purposes. More...
 
interface  IDemoAwareTask
 For tasks that try to do some special actions during schedule demo execution. More...
 
interface  IDetailProvidingAcquisitionService
 If there are several instruments or you can provide some version/configuration information for the service, this is the place to do it. More...
 
interface  IDevice
 To be implemented by the "device driver" part of a Chronos plugin. More...
 
interface  IDeviceInfo
 Gives access to information about a device and its connection state, if known. More...
 
interface  IDirectDeviceAccess
 Implement this interface if you need direct access to the list of configured devices. More...
 
interface  IEbisEnabledAcquisitionService
 To be implemented by acquisition services that cooperate with the EBIS module for Chronos. More...
 
interface  IEmbedMethods
 Implement this interface if you want to run a method from within your task. More...
 
interface  IGiveARuntimeHint
 If you can calculate your runtime, you should implement this interface. More...
 
interface  IGuiHelper
 Helper functions for GUI related tasks. More...
 
interface  IHaveConfigurator
 The GUI for the configuration is kept seperately from the service. More...
 
interface  IHaveDebugOutput
 Implement this interface if you wish to provide debug log output. More...
 
interface  IHaveInteractiveErrorHandling
 For devices that allow interactive error handling (like retrying the last action) More...
 
interface  IHaveMachineParameters
 Parameters that are constant for the duration of a schedule. More...
 
interface  IHaveRunlogOutput
 Implement this interface if you have messages for our run log. More...
 
interface  IInspectJob
 Allows to get information about other tasks within our task's job and about other jobs. More...
 
interface  IJitLinkAware
 Implement this interface on your ParamT if you need to check for the presence of just in time evaluated expressions for the calling AcquisitionTask. More...
 
interface  IJobAwareDevice
 Implement this if your device needs to know when a specific job of the running scheduler has finished. More...
 
interface  ILargeStatusView
 Like IStatusView<TDevice>, but for status displays that need more room. More...
 
interface  ILicenseChecker
 Information about license validity and type. More...
 
interface  ILicenseInfo
 Details about a Chronos style license. More...
 
interface  ILoadPathExtender
 Allows loading assemblies from specific paths. More...
 
interface  IManageConnectionState
 Implement this if your device wants to expose its connection state to other plugins. More...
 
interface  IMethodInfo
 Information about the method that was used to create this job. More...
 
interface  IMultipartDevice
 Implement this interface if your device consists of multiple parts which can be used in parallel - like the heads/body of a PAL3. In the part, please return BaseDeviceName + ":" + PartName for consistency reasons. More...
 
interface  INeedAConnection
 For devices that need some kind of user configured connection string to address the hardware. More...
 
interface  INeedCellAccess
 Implement this interface in your sample list worker class if you need access to the content of cells. More...
 
interface  INeedToCheckForJITLinks
 Implement this interface if you have to know (usually for validation) if a certain property of a given task will be filled in later by a {jit:} scripting expression. More...
 
interface  INeedToInspectOtherTasks
 Implement this interface if you have to access other tasks within the schedule. More...
 
interface  INeedToRunSampleLists
 For automatic generation of sample lists and running the resulting schedules. More...
 
class  InteractiveErrorHandlingEventArgs
 Everything needed for showing the error dialog / reacting on input. More...
 
class  InvisibleByDefaultAttribute
 Use this attribute to mark a property as only visible to users who explicitly look for invisible properties. More...
 
interface  IPal3Access
 Provides access to some options and configuration information for the PAL3 samplers even out of the schedule execution context. More...
 
interface  IPal3Options
 Makes some aspects of the PAL3 behavior configurable. More...
 
interface  IPAL3Services
 An object implementing this interface is provided by Chronos and passed to the PAL3task just before execution. More...
 
interface  IPerseveringAcquisitionService
 Request retrying if IsAvailable returned false. More...
 
interface  IPluginAdapter
 Generic way to access a plugin object that was wrapped by Chronos. More...
 
interface  IPluginDeviceAdapter
 Do not implement this interface. More...
 
interface  IPluginTaskAdapter
 Do not implement this interface. More...
 
interface  IProvideDiagnosticLogs
 This can be called for a sample list worker or device that writes its own set of log files which should be available with the "gather diagnostics" option. More...
 
interface  IProvideStatusMessages
 Implement this interface if you want to keep the user up-to-date about what your device is doing. More...
 
interface  IProvideTrayGeometry
 Allow to ask the sampler for the geometry of a tray. More...
 
interface  IReactOnCultureChanges
 Allows you to support runtime language switching just like Chronos does. More...
 
interface  IResourceManager
 The resource manager is your interface to the scheduler regarding occupied or locked objects. More...
 
interface  IRunContext
 Information on the current context during acquisition. Can be extended on request. More...
 
interface  IRunContextAware
 Implement this interface on your acquisition parameter type to get information related to the currently running job. More...
 
interface  ISampleListAccessor
 Provides basic sample list information and lets you iterate over all lines. More...
 
interface  ISampleListLine
 Gives access to all cells of a line. More...
 
interface  ISampleListManager
 Access to all sample lists, adding of new sample lists. More...
 
interface  IScheduleEvents
 Currently starting schedule stage. More...
 
interface  IScheduleStateAware
 Implement this interface if you need to track the state of schedules. More...
 
interface  ISequenceAwareAcquisitionService
 Implement this if your acquisition service has to know when a Chronos sequence starts / ends. More...
 
interface  ISoftHandshakingAcquisitionService
 Implement this interface if you want to support soft handshaking (read: not by cable) for your acquisition service. More...
 
interface  IStandbySupportingAcquisitionService
 For services that can be put into some kind of standby mode (by an error method, for example) More...
 
interface  IStatusView
 To be implemented by the Status view part of a Chronos plugin. More...
 
interface  IStopRuns
 Implement this interface with your device or sample list worker to get fine-grained control about stopping a currently running schedule or the complete queue. More...
 
interface  IStorageInspector
 Inspect stored data. More...
 
interface  ITask
 To be implemented by the "task" part of a Chronos plugin. Public properties of the implementing type are visible in Chronos' method editor. More...
 
interface  ITaskForDevice
 To be implemented if the task needs to access a device ("Autosampler" property in Chronos) More...
 
interface  ITaskInfo
 Gives access to a task's implementation and to all user visible properties. More...
 
interface  IToolbox
 To be implemented by the Toolbox part of a Chronos plugin. More...
 
interface  ITraceLogger
 Writes some text to the trace log. More...
 
interface  IUsableDuringRun
 Implement this if you want your toolbox to be visible during a sequence run. More...
 
interface  IUseResources
 Implement this interface if you need to communicate with the scheduler about locked/occupied objects. More...
 
interface  IUtilityFactories
 Helper factories for utility classes implemented within Chronos. More...
 
interface  IWantEditorUpdates
 Implement this interface in your task if you want the method editor to notify it of changed properties. More...
 
interface  IWorkWithSampleLists
 For plugins that want to manipulate or run sample lists. More...
 
class  LicenseCheckerAttribute
 Use this attribute if you want to expose the contents of your plugin assembly only after a license check was successful. More...
 
class  LinkPropertyAttribute
 Attribute to link the decorated Property with the specifyed Task and TaskProperty. More...
 
class  LockInstrumentAttribute
 Decorate a property of your ParamT class with this property if your acquisition service can be used simultaneously on multiple instruments. More...
 
class  MethodLaunchEventArgs
 Could be extended in the future if e.g. arguments should be passed to the method running task planer. More...
 
class  RequiresAdvancedAttribute
 If this attribute is present, the respective class is not available in Chronos XT. More...
 
class  RunSampleListEventArgs
 Parameters for sample list loading and schedule creation. More...
 
class  ScheduleDiagramColorAttribute
 Override the default color that is used to display the task in the schedule diagram. More...
 
class  ScheduleStateEventArgs
 Information about the current state change. More...
 
class  SimpleFilenameAttribute
 Easier to use if you don't care about localization. More...
 
class  SortPriorityAttribute
 Override the normal sort priority in the method editor. More...
 
class  StandardValueProviderAttribute
 If your standard value list cannot be provided without knowing the actual task's details, you can derive from this attribute class. More...
 
class  StopRunArgs
 Options for stopping the schedule/queue. More...
 
class  SuppressPathPrefixAttribute
 Please don't use this unless you are sure you know what you are doing! Set this attribute on your task if you have to avoid "Plugin." prefix in property paths. More...
 
class  TaskCategoryAttribute
 The Task Category Method Attribute. More...
 
class  TraceWriteEventArgs
 For future extension (categories, priorities...) More...
 
class  TrayGeometry
 Basic description of a simple rectangle tray geometry. More...
 

Enumerations

enum  ResultKind {
  Name , Amount , Area , Height ,
  RTExpected , RTObserved
}
 The kind of result expected from the ExecuteDataReader call to an EBIS enabled acquisition service. More...
 
enum  ConnectionState {
  Disconnected , Connecting , Connected , Disconnecting ,
  Failed
}
 If your connectivity state changes, you should tell the user about it. More...
 
enum  ErrorType { Other , BarcodeNotRead , MissingVial }
 Lets a device implementing IHaveInteractiveErrorHandling specify which kind of error occurred. More...
 
enum  ScheduleState { Validated , Starting , Ended , SamplersStopped }
 Which stage? More...
 
enum  TaskCategory {
  SamplePrep = 1 , Cleaning = 2 , Injection = 3 , IO = 4 ,
  CDS = 5 , FlowControl = 6 , SPME = 7 , Misc = 8 ,
  PAL3SDK = 9 , LCMS = 10 , ITSP = 11 , ITEX = 12
}
 The enumeration of Task Categories. More...
 

Functions

delegate Exception RunSampleListHandler (object sender, RunSampleListEventArgs args)
 Runs the given sample list.
 
delegate object dExpressionResolver (string text, int rowNo)
 
delegate bool JITCheckerDelegate (object task, string propertyPath)
 The delegate that does the check for you.
 

Detailed Description

Classes and interfaces that are meant for plugins. The classes and interfaces below this namespace are meant to be upwards compatible across Chronos versions. If you notice any incompatibilities, please let us know.

Enumeration Type Documentation

◆ ConnectionState

If your connectivity state changes, you should tell the user about it.

Enumerator
Disconnected 

The device is not connected.

Connecting 

We are just trying to establish a connection.

Connected 

The connection has been established.

Disconnecting 

We are trying to disconnect from the device.

Failed 

There was an error while trying to connect, the device is not usable.

Definition at line 15 of file DeviceInterfaces.cs.

16 {
21
26
31
36
40 Failed
41 }
@ Disconnecting
We are trying to disconnect from the device.
@ Connected
The connection has been established.
@ Failed
There was an error while trying to connect, the device is not usable.
@ Connecting
We are just trying to establish a connection.
@ Disconnected
The device is not connected.

◆ ErrorType

Lets a device implementing IHaveInteractiveErrorHandling specify which kind of error occurred.

The user can configure which kinds of errors could/should be handled in which way. For example, abort on missing barcode, skip sample on missing vial and ask for other errors.

Enumerator
Other 

Any kind of error that does not fit into the predefined categories.

BarcodeNotRead 

Device was unable to read a barcode.

MissingVial 

A card/vial/whatever is containing the sample was not found in the expected place.

Definition at line 299 of file DeviceInterfaces.cs.

300 {
304 Other,
313 }
@ BarcodeNotRead
Device was unable to read a barcode.
@ Other
Any kind of error that does not fit into the predefined categories.
@ MissingVial
A card/vial/whatever is containing the sample was not found in the expected place.

◆ ResultKind

The kind of result expected from the ExecuteDataReader call to an EBIS enabled acquisition service.

Enumerator
Name 
Amount 
Area 
Height 
RTExpected 
RTObserved 

Definition at line 224 of file AcquisitionInterfaces.cs.

◆ ScheduleState

Which stage?

Enumerator
Validated 

Validation was completed.

Starting 

Before the first task is executed.

Ended 

After the last task finished or an error occurred, but before autosamplers are disconnected.

SamplersStopped 

After all autosamplers have been stopped.

Definition at line 81 of file MiscInterfaces.cs.

82 {
91
95 Ended,
100 }
@ Ended
After the last task finished or an error occurred, but before autosamplers are disconnected.
@ Validated
Validation was completed.
@ Starting
Before the first task is executed.
@ SamplersStopped
After all autosamplers have been stopped.

◆ TaskCategory

The enumeration of Task Categories.

Enumerator
SamplePrep 

The sample prep Category.

Cleaning 

The cleaning Category.

Injection 

The injection Category.

IO 

The Input Output Category.

CDS 

The CDS Category.

FlowControl 

The flow control Category.

SPME 

The SPME Category.

Misc 

The miscellaneous Category.

PAL3SDK 

The PAL3 SDK Category.

LCMS 

The LCMS Category.

ITSP 

The ITSP Category.

ITEX 

The ITEX Category.

Definition at line 655 of file TaskInterfaces.cs.

656 {
660 SamplePrep = 1,
664 Cleaning = 2,
668 Injection = 3,
672 IO = 4,
676 CDS = 5,
680 FlowControl = 6,
684 SPME = 7,
688 Misc = 8,
692 PAL3SDK = 9,
696 LCMS = 10,
700 ITSP = 11,
704 ITEX = 12
705 }
@ Cleaning
The cleaning Category.
@ FlowControl
The flow control Category.
@ Injection
The injection Category.
@ Misc
The miscellaneous Category.
@ PAL3SDK
The PAL3 SDK Category.
@ IO
The Input Output Category.
@ SamplePrep
The sample prep Category.

Function Documentation

◆ dExpressionResolver()

delegate object AxelSemrau.Chronos.Plugin.dExpressionResolver ( string  text,
int  rowNo 
)

◆ JITCheckerDelegate()

delegate bool AxelSemrau.Chronos.Plugin.JITCheckerDelegate ( object  task,
string  propertyPath 
)

The delegate that does the check for you.

Parameters
taskEither an ITask or the object from ITaskInfo.Task
propertyPathFull path to the property in question. Inside a plugin you will probably need to call this delegate using "Plugin.FancyStuff" for a FancyStuff property. isFancyStuffJitted = mJITChecker(this, "Plugin.FancyStuff");
Returns
True if the property is set by a JIT link

◆ RunSampleListHandler()

delegate Exception AxelSemrau.Chronos.Plugin.RunSampleListHandler ( object  sender,
RunSampleListEventArgs  args 
)

Runs the given sample list.

Parameters
sender
args
Returns
If running the list failed, you'll get the exception here, else null.