Dynamic Scheduler Engine

Dynamic scheduler engine is the core of laboratory automation and diagnostic instrument to process multiple tests or assays. It controls the workflow of assay on automation system, allocates resources and optimizes the workflow.

Dynamic scheduler engine from Huarui robot, has achieved all the functions like other scheduler, but we added following feature and functions,

  • Simple to use, with just a few lines of code, you can enable your application the ability of processing mulitple task in parallel.
  • Small size but high perfornace. Only 10m memory used during run
  • Support priority of task, guarantee the urgent sample processing as soon as possible
  • Support the relationship among tasks
  • Support disable instrument/resource during runtime
  • Support of gannt chart display
  • Support .Net and Java, and can be used in script or other language through COM

How to use the scheduler enginer, define the resources of your system


SchedulerEngine scheduler=new SchedulerEngine();
scheduler.Register("STAR", 1, "blue");
scheduler.Register("Reader", 1, "yellow");
scheduler.Register("iSWAP", 1, "red");
scheduler.Register("Incubator", 8, "green");
scheduler.Register("Washer", 1, "orange");
scheduler.Register("Position", 5, "purple");
					

Simple defination of task

					
public class DirectELISA : Task
{
  public override string Name =>"DirectELISA";
  public override void Run()
  {
    Activity("Coating", 60, new string[]{"STAR", "Position"}, new int[]{1, 1}, "blue", () =>
    {
    });
    Activity("Wait", 1, new string[]{"Position"}, new int[]{1}, "gray", 120, () =>
    {
    });
    Activity("Transport", 5, new string[]{"iSWAP", "Incubator", "Position"}, new int[]{1, 1, 1}, "red", () =>
    {
    });
    Activity("Incubatio", 600, new string[]{"Incubator"}, new int[]{1}, "green", 800, () =>
    {
    });
    Activity("Transport", 5, new string[]{"iSWAP", "Incubator", "Washer"}, new int[]{1, 1, 1}, "red", () =>
    {
    });
    Activity("Wash", 120, new string[]{"Washer"}, new int[]{1}, "orange", () =>
    {
    });
    Activity("Transport", 5, new string[]{"iSWAP", "Washer", "Position"}, new int[]{1, 1, 1}, "red", () =>
    {
    });
  }
}

Start and run a task


scheduler.Activate(new DirectELISA());
scheduler.Schedule());
scheduler.Run();

This dynamic scheduler engine had been used in Bioxun's automatic system of blood group testing, which have been used more than 10 years, and the installation had exceeded more than 1000 in China. With help of this scheduler engine, the development was simplified, the workflow and scheduler of hardware was never considered. Also the software had strong expansibility, the type of test was increased from 4 in 2012 to 21 now.