control software for the lbt interferometer linclinc ... · development organization ycontinuous...

19
3/28/2012 1 Control Software for the LBT Control Software for the LBT interferometer interferometer LINC LINC-NIRVANA NIRVANA 27. March 2012 Technical Seminar DESY Zeuthen Jan Trowitzsch [[email protected]] Florian Briegel [[email protected]] Max-Planck-Institute for Astronomy, Heidelberg Outline Outline y Introduction to LINC NIRVANA y Introduction to LINC-NIRVANA y MPIA common software Development tools and frameworks Components and features Components and features y Control Software for LINC-NIRVANA 3/27/2012 2 Technical Seminar DESY Zeuthen

Upload: others

Post on 17-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

1

Control Software for the LBTControl Software for the LBTinterferometer interferometer LINCLINC--NIRVANANIRVANA

27. March 2012Technical Seminar

DESY Zeuthen

Jan Trowitzsch [[email protected]]Florian Briegel [[email protected]]

Max-Planck-Institute for Astronomy, Heidelberg

OutlineOutline

Introduction to LINC NIRVANAIntroduction to LINC-NIRVANA

MPIA common software◦ Development tools and frameworks◦ Components and featuresComponents and features

Control Software for LINC-NIRVANA

3/27/2012 2Technical Seminar DESY Zeuthen

Page 2: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

2

LINCLINC--NIRVANANIRVANA

LBT Interferometric Camera and Near-Infrared / Visible Adaptive Infrared / Visible Adaptive Interferometer for Astronomy ◦ Imaging beam combiner for the LBT

Multi-conjugated Adaptive Optics: MCAO◦ High-layer and ground-layer sensing and

correction using adaptive mirrors◦ Guidestars for wavefront measurement

Several rotating fields

3/27/2012 Technical Seminar DESY Zeuthen 3

Large Binocular TelescopeLarge Binocular Telescope

3/27/2012 Technical Seminar DESY Zeuthen 4

Page 3: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

3

Large Binocular TelescopeLarge Binocular Telescope

3/27/2012 Technical Seminar DESY Zeuthen 5

LINCLINC--NIRVANANIRVANA

3/27/2012 Technical Seminar DESY Zeuthen 6

Page 4: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

4

LINCLINC--NIRVANANIRVANA

3/27/2012 Technical Seminar DESY Zeuthen 7

LINCLINC--NIRVANANIRVANA

3/27/2012 Technical Semniar DESY Zeuthen 8

Page 5: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

5

LINCLINC--NIRVANANIRVANA

3/27/2012 Technical Seminar DESY Zeuthen 9

What needs to be controlled?What needs to be controlled?4 Wavefront sensors AO Loops6 De-rotating elements6 De rotating elementsDetector positioning and readoutMany movable elements on motorized stages (ca. 120)Interaction with the telescope

We will have multiple services running on 8 different computers

3/27/2012 10Technical Seminar DESY Zeuthen

Page 6: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

6

MPIA Common SoftwareMPIA Common Software

TwiceAsNice◦ Framework for developing service oriented ◦ Framework for developing service oriented

architectures – SOA◦ Linux only◦ Based on Ice and Qt

1. Neubau2 Nice2. Nice3. Basda◦ Mocca, Tempo, Vino, IO, Misda…

3/27/2012 Technical Seminar DESY Zeuthen 11

Third party softwareThird party softwareInternet Communications Engine (Ice) from ZeroC – www.zeroc.com

◦ Distributed computing platform◦ Provides powerful network infrastructure◦ Supports many languages: C++, Java, Python, Ruby…

Qt and Qwt – qt.nokia.com

◦ Crossplatform application and UI framework◦ Widgets for technical applications

Boost – www.boost.org

◦ Widely useful C++ source libraries

3/27/2012 12Technical Seminar DESY Zeuthen

Page 7: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

7

Development OrganizationDevelopment OrganizationVersion control using subversion – SVNUsing TRAC on top of SVNUsing TRAC on top of SVN◦ Web-based software project management◦ Issue tracking system – Tickets◦ Enhanced wiki system (documentation)

Allows linking of sources or tickets to wiki pages

◦ Plugins and enhancements:Blog, Discussion, Roadmap based on tickets, Source browser … extendable

◦ trac.edgewall.org

3/27/2012 Technical Seminar DESY Zeuthen 13

Development OrganizationDevelopment Organization

3/27/2012 Technical Seminar DESY Zeuthen 14

Page 8: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

8

Development OrganizationDevelopment OrganizationContinuous integration testing using:◦ Bitten:Bitten:

continuous integration plugin for TracPython-based framework for collecting various software metrics via continuous integration

◦ Jenkins:Extendable open source continuous integration serverSeveral plugins available

◦ bitten.edgewall.org

◦ jenkins-ci.org

3/27/2012 Technical Seminar DESY Zeuthen 15

Continuous IntegrationContinuous Integration

3/27/2012 Technical Seminar DESY Zeuthen 16

Page 9: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

9

Software OverviewSoftware Overview

3/27/2012 Technical Seminar DESY Zeuthen 17

NeubauNeubauPerl script for creating auto tools based projectsp jHelps to manage projects◦ Adding subdirectories◦ Keeping the subdir tree of configure.in an Makefile.am

synchronized◦ Code template support, for creating pieces of code

A f f f Autoconf macros for finding various software packages (boost, qt4, ice, …)

◦ gnu.org/software/autoconf

3/27/2012 18Technical Seminar DESY Zeuthen

Page 10: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

10

NeubauNeubau

Automake build rules for administration ◦ Automatic subversion add◦ Automatic subversion add◦ Building of rpm packages◦ Doxygen documentation …

Automake build rules for compiling not supported meta languages and formats◦ Qt, ice, png, nice, …

◦ gnu.org/software/automake

3/27/2012 Technical Seminar DESY Zeuthen 19

NiceNice

3/27/2012 20Technical Seminar DESY Zeuthen

Page 11: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

11

NiceNice

Nice Instrument Control EnvironmentBasic functionalities: Basic functionalities:

3/27/2012 21Technical Seminar DESY Zeuthen

NiceNice

Integration of Qt/QwtRanger tool for engineering GUIsRanger tool for engineering GUIsService/Device architectures with dedicated property treesCode generationPython interfacePython interface

3/27/2012 Technical Seminar DESY Zeuthen 22

Page 12: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

12

Heart and Soul Heart and Soul -- PropertiesPropertiesProperty:

Weak typed data container attached to a JointAll t d d t t f f k b l d hAll supported data types of our framework can be placed hereMay contain a set of bridges to communicate with outside worldMay contain a set of actors to trigger actions whenever the internal value is about to change

3/27/2012 23Technical Seminar DESY Zeuthen

Service Service –– Client ConnectionsClient Connections

1 Server & Client create a Joint root node

3/27/2012 Technical Seminar DESY Zeuthen 24

1. Server & Client create a Joint root node2. Client connects to publisher’s Joint node3. Server sub-tree is cloned at client side and an Ice bridge is attached

to each property4. Property value changes are distributed via attached Ice bridges to all

subscribers

Page 13: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

13

More Heart and SoulMore Heart and Soul

3/27/2012 25Technical Seminar DESY Zeuthen

Ranger Ranger –– Engineering InterfaceEngineering Interface

3/27/2012 Technical Seminar DESY Zeuthen 26

Page 14: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

14

BasdaBasda

3/27/2012 27Technical Seminar DESY Zeuthen

BasdaBasda -- OverviewOverview

3/27/2012 28Technical Seminar DESY Zeuthen

Page 15: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

15

BasdaBasda -- DeviceDevice

3/27/2012 29Technical Seminar DESY Zeuthen

BasdaBasda -- ServiceService

3/27/2012 30Technical Seminar DESY Zeuthen

Page 16: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

16

BasdaBasda –– Interface Def. LanguageInterface Def. LanguageAsynchronous communication via bridge member functionsWhat about synchronous stuff?General programming language independent interface◦ Similar to Corba or Sun RPC *.basda

Basda2xx ◦ Automatic generation of skeleton and stub code for the

target programming language◦ Special property sub-tree CMD for synchronous

invocations

3/27/2012 Technical Seminar DESY Zeuthen 31

LN Instrument Control SoftwareLN Instrument Control Software

3/27/2012 Technical Seminar DESY Zeuthen 32

Page 17: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

17

Computer ArchitectureComputer Architecture

3/27/2012 Technical Seminar DESY Zeuthen 33

LAOS SubLAOS Sub--SystemSystem

3/27/2012 Technical Seminar DESY Zeuthen 34

Page 18: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

18

LIRCS SubLIRCS Sub--SystemSystem

3/27/2012 Technical Seminar DESY Zeuthen 35

Observation Preparation SoftwareObservation Preparation Software

3/27/2012 Technical Seminar DESY Zeuthen 36

Page 19: Control Software for the LBT interferometer LINCLINC ... · Development Organization yContinuous integration testing using: Bitten: xcontinuous integration plugin for Trac xPython-based

3/28/2012

19

Observation Preparation SoftwareObservation Preparation Software

3/27/2012 Technical Seminar DESY Zeuthen 37

3/27/2012 Technical Semniar DESY Zeuthen 38