Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Integrated Control System Environment for High-throughput Tomography @PETRAIII beamlines P05&P07


Published on

X-Enviroment presentations @ESRF

Published in: Software
  • Be the first to comment

  • Be the first to like this

Integrated Control System Environment for High-throughput Tomography @PETRAIII beamlines P05&P07

  1. 1. Igor Khokhriakov Integrated Control System Environment for High-Throughput Tomography @PETRAIII beamlines P05&P07. ESRF, BCU Meeting, 24/11/16
  2. 2. Some facts: ● JavaScript developer since 2007 ● Enterprise Java and Web developer since 2008 ● Tango developer since 2012 ● C++ developer since 2013 ● Tango kernel developer since 2016
  3. 3. X-Environment
  4. 4. PreExperiment Data Collector FEATURES: • Customizable on-the-fly view forms defined in YAML • Different policies are applicable to the view forms: web, web-readonly, tango • Supports different validations: number, double, string, text, required • Provides tango access to data • Offline clients
  5. 5. Status Server FEATURES: • Forms continuous timeline of the experiment • Simple configuration, defined in XML • Values can be obtained through event or polling mechanism • Different interpolation strategies: last, nearest and linear
  6. 6. Mobile Status Server Client • Monitor the ongoing experiment from a mobile device • Review experiment when device is offline • Configure easily for a variety of different instruments Idea: Goals:
  7. 7. X-Environment
  8. 8. DataFormatServer NXComposer: YAML NeXus definition:
  9. 9. Integrating everything together
  10. 10. Data transfer between Tango servers. Apache Camel Integration.
  11. 11. Data transfer between Tango servers. Apache Camel Integration. Apache Camel is a rule-based routing and mediation engine that provides a Java object- based implementation of the Enterprise Integration Patterns
  12. 12. Apache Camel routes. Camel Integration Tango API library: Works with pipes (events, polling, single acquisition)
  13. 13. Control Environment [IDL Scripts]
  14. 14. Web monitoring and control. Web Jive.  Browse Tango devices  Add/remove devices  Quick test new devices  Quick monitor existing devices
  15. 15. Why do we need a new Jive?  Narrow down UI to actually used features: – Remove unused settings and configurations – Simplified device context menu – Simplified server wizard  Benefit from web interface: wide screen; reorganize views  Lightweight and fast Jive is like a swiss army knife... 80% of the time we need 20% of its features Our own new Jive: To fulfil Tango V10 FR6 – generic web application
  16. 16. Web Jive 2.0 (current release version 0.1)  Dynamic Device tree (devices are loaded on demand)  Test device panel  Editable Device tab (Info, Properties, Attributes config, Events etc)  Interactive Monitoring tab, aka embedded ATK Panel  Simplified Server wizard  Log console
  17. 17. Web Jive: All-in-one screenshot
  18. 18. X-Environment
  19. 19. OpenCL real-time reconstruction server A Tango server that performs a reconstruction in parallel to the experiment. FEAUTURES: •Based on KIT’s UFO project. •Main goal: to give users close to real time reconstruction •Deal with up to 1000 frames/s (1 frame = 2K x 2K)
  20. 20. Hardware triggering driven experiment.
  21. 21. Continuous Integration. 1. Release 2. Assemble & test 3. Deploy 4. Feedback 5. Repeat 1. Release 2. Assemble & test 3. Deploy 4. Feedback 1. Release 2. Assemble & test 3. Deploy 4. Feedback
  22. 22. Packaging Every component is an independent single Executable jar file! Dedicated project holds all configuration files.
  23. 23. Packaging
  24. 24. ● Beamline scientist friendly environment ● Fully automitazed and ease deployment ● Integration with DESY computer center ● Works stable for 3 months without any support ● Opensource, available Summary
  25. 25. Thank you! Questions?
  26. 26. Thank you! Questions?
  27. 27. ezTangORB Consider the following example: DeviceProxy proxy = new DeviceProxy("some-device"); DeviceAttribute attribute = proxy.read_attribute("some-attribute"); if(result.hasFailed()){ throw new Exception("Can not read attribute."); } int dataFormat = result.getDataFormat() int dataType = result.getType() double result; switch(dataType){ case Tango_DEV_Double: switch(dataFormat){ case _SCALAR: result = attribute.extractDouble() ... } ... } ... Using the API the same result can be achieved with the following code: TangoProxyWrapper proxy = new TangoProxyWrapper("some-device"); double result = proxy.<Double>readAttribute("some-attribute"); ... This library will be a part of the Tango distribution since version 9.
  28. 28. Miscelanious • WebCam Tango Server (published in Tango repository) • DataMatrixDecoder Tango Server (published in Tango repository) • PXICI 2.0 CL Frame Grabber Tango Server (not yet published) • Android control application for Fischertechnics on DESY open days 2013