DOOCS to Karabo Enhancement Design

Motivation

  • The main motivation of this enhancement design is to provide user friendly interface to our instrument scientists to import DOOCS data/devices to the Karabo ecosystem without involving much effort from the Controls group side.
  • To have one-to-one connection between DOOCS and Karabo which enables load / throughput tuning between the two control systems at the single tuning point.
  • To have unified interface which shows the list of all the devices “cloned” in Karabo.

Implementation overview

Overview of the implemented design is shown in the figure below:

alternate text
  • Dedicated “DOOCS” topic: Dedicated “DOOCS” topic has been created to have a one-to-one connection between DOOCS and Karabo, which enables load/throughput tuning between the two control systems at the single tuning point.
  • Devices involved: The concept is surrounded around the following devices:
    • DOOCS Mirror device: It is a generic DOOCS bridge, which imports DOOCS data(slow or fast data, and images) to Karabo ecosystem.
    • Doocs Manager device: It is responsible for managing and instanating the DoocsMirror device upon the request of DoocsRequestor.
    • Doocs Requestor device: It acts as the request gateway for a DOOCS location and properties, whether or not they have been requested already (whether through the same Karabo topic or another). There is one DoocsRequestor device per Karabo topic.
    • Device Clone: It is used to clone to DoocsMirrors device from one topic to another.

Workflow

The workflow diagram is shown in the figure below:

alternate text
  • User requests needed “bridge” of the DOOCS location using the interface of the DoocsRequestor located in the specific Karabo topic.
  • The DoocsRequestor passes the request to the DOOCSManager device located in the dedicated “DOOCS” topic.
  • DoocsManager checks if for the requested location/properties corresponding DoocsMirror device is already instantiated and instantiate new one if needed.
  • DoocsMirror devices take care of the communication between DOOCS and Karabo. They are instantiated in the “DOOCS” topic and cloned to the specific Karabo topic.