Advanced Photon Source

Slides:



Advertisements
Similar presentations
EPICS V4/areaDetector Integration
Advertisements

Channel Access Enhancements J. Hill. R3.14 Enhancements Large array support in the portable server –nearly complete –a priority for SNS Port syntax for.
AreaDetector: What’s New? Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
AreaDetector Data Processing Pipeline In EPICS V4 Dave Hickin Diamond Light Source EPICS Collaboration Meeting Diamond Light Source 01/05/2013.
AreaDetector: A module for EPICS area detector support New developments Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Ch 4: Threads Dr. Mohamed Hefeeda.
Connecting AreaDetector to GDA John Hammonds Software Services Group Advanced Photon Source The submitted manuscript has been created by UChicago Argonne,
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Objectives Thread definitions and relationship to process Multithreading.
Xuan Guo Chapter 1 What is UNIX? Graham Glass and King Ables, UNIX for Programmers and Users, Third Edition, Pearson Prentice Hall, 2003 Original Notes.
Operating Systems.
Mint-user MINT Technical Overview October 8 th, 2010.
Agenda Adaptation of existing open-source control systems from compact accelerators to large scale facilities.
Anders Karlsson Principal Sales Engineer, MySQL MySQL Embedded - Getting started with libmysqld.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
A Streaming Video Server for areaDetector Tom Cobb Presented by Nick Rees.
AreaDetector: Recent Additions and Future Plans Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
02/2008 MATRIX VISION GmbH 1 Presentation The intelligent camera and Image processing sensor.
AreaDetector: A module for EPICS area detector support Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
AreaDetector: A module for EPICS area detector support Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
PI Data Archive Server COM Points Richard Beeson.
Area Detector Drivers Towards A Pattern Jon Thompson.
An introduction to areaDetector Tom Cobb. What is areaDetector?  C++ framework for detectors in EPICS  Drivers produces NDArrays of data  Plugins consume.
OS2014 PROJECT 2 Supplemental Information. Outline Sequence Diagram of Project 2 Kernel Modules Kernel Sockets Work Queues Synchronization.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
Petra III Status Teresa Núñez Hasylab-DESY Tango Meeting DESY,
AreaDetector workshop Summary and notes…. Overview iocBuilder File Writer Changes areaDetector driver pattern shared vector Asyn client without an IOC.
1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.
Basics of JDBC Session 14.
OPC UA Server of the DummyCamera of the Zeuthen MST prototype Geneva, September 5 th, 2012 B. Khélifi, S. Chollet, Y. De Oliveira, F. Magniette (LLR) T.
AreaDetector: What’s New? Mark Rivers GeoSoilEnviroCARS, Advanced Photon Source University of Chicago.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Operating Systems {week 01.b}
Mobile Device Development
Go4 v2.2 Status & Overview CHEP 2003
Android Mobile Application Development
Operating System & Application Software
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Tivoli Storage Manager Product Family
Current Generation Hypervisor Type 1 Type 2.
C++ Base Class for asyn Port Drivers
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Section 13 - Integrating with Third Party Tools
areaDetector: Recent Developments and Future Ideas
Terminology Service Bureau Vision
OPERATING SYSTEMS CS3502 Fall 2017
C++ Base Class for asyn Port Drivers
Advanced Photon Source
EPICS MCA and Canberra Support
CMPE419 Mobile Application Development
Chapter 2: Operating-System Structures
Chapter 4: Threads.
EPICS areaDetector Architecture
Design and Programming
Application Development A Tutorial Driven Course
C++ Base Class for asyn Port Drivers
asyn Driver Tutorial Measurement Computing 1608GX-2A0
MONSOON Software Design & Status
areaDetector: A module for EPICS area detector support
MONSOON Software Design & Status
Advanced Photon Source
Status Report #5 LYRA The Remote Accessible Automated Camera Stand
Chapter 2: Operating-System Structures
Outline Operating System Organization Operating System Examples
Chapter 4: Threads.
What’s New and What’s Next
CMPE419 Mobile Application Development
areaDetector: What’s New? Mark Rivers, Univ. of Chicago
OPC UA and EPICS Introduction
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Advanced Photon Source areaDetector Writing Drivers Mark Rivers University of Chicago Advanced Photon Source

Writing an areaDetector Driver Study the vendor API documentation Run the camera with the vendor GUI to understand how it works Does the vendor provide a simulation camera? If so you can start development before the hardware arrives Find an existing areaDetector driver to use as a model. Spend some time to figure out which existing driver is most similar to the one you will be writing Determine what features are most important to implement first Start with a simple version of the driver, add complexity one piece at a time

Detector Drivers with C/C++ Vendor Library C/C++ Library OS Interface ADsimDetector Internal All ADProsilica PvAPI Win32, Linux, OSX GigE ADPointGrey FlyCap2 Win32, Linux GigE, Firewire, USB-3.0 aravisGigE Aravis Linux ADPerkinElmer XISL Win32 Proprietary ADAndor Andor SDK2 USB, PCI ADAndor3 Andor SDK3 PCI to CameraLink ADADSC Detcon PCI? ADFireWireWin Carnegie Mellon Firewire firewireDCAM dc1394 ADPvCAM PvCam PCI, USB ADQImaging QCamDriver USB, Firewire, other

Detector Drivers with Socket Server OS Interface ADPilatus camserver Linux (all) Proprietary ADmarCCD marccd ADmar345 mar345dtb Ethernet ADBruker BIS Win32 (all) USB, other? ADPixirad In camera ADPSL PSLViewer USB, GigE, other?

Detector Drivers with GUI Application Automation OS Interface ADRoper WinView Win32 PCI, USB, other? ADLightField LightField USB, GigE, other?

Guidelines and Rules for Writing an areaDetector Driver Drivers will generally implement one or more of the writeInt32(), writeFloat64() or writeOctet() functions if they need to act immediately on a new value of a parameter. For many parameters it is normally sufficient to simply have them written to the parameter library, and not to handle them in the writeXXX() functions. The parameters are then retrieved from the parameter library with the getIntParam(), getDoubleParam(), or getStringParam() function calls when they are needed. If the writeInt32(), writeFloat64() or writeOctet() functions are implemented they must call the base class function for parameters that they do not handle and whose parameter index value is less than the first parameter of this class, i.e. parameters that belong to a base class. Drivers will need to call the createParam() function in their constructor if they have additional parameters beyond those in the asynPortDriver or ADDriver base classes.

Guidelines and Rules for Writing an areaDetector Driver Drivers will generally need to create a new thread in which they run the acquisition task. Some vendor libraries create such a thread themselves, and then the driver must just implement a callback function that runs in that thread (the Prosilica and Perkin Elmer are examples of such drivers). The acquisition thread will typically monitor the acquisition process and perform periodic status update callbacks. The details of how to implement this will vary depending on the specifics of the vendor API. There are many existing detector drivers that can be used as examples of how to write a new driver. If the detector hardware does not support fixed-period acquisition or muliple-image acquisition sequence (ADNumImages parameter) then these should be emulated in the driver. The simDetector, marCCD and other drivers can be used as examples of how to do this.

Guidelines and Rules for Writing an areaDetector Driver If NDArrayCallbacks is non-zero then drivers must do the following: Set the uniqueID in the NDArray Set the timeStamp (double) in the NDArray Set the epicsTS (epicsTimeStamp) in the NDArray Call asynNDArrayDriver::getAttributes to attach any attributes defined for this driver to the current array. Call doCallbacksGenericPointer() so that registered clients can get the values of the new arrays. Drivers must release their mutex by calling this->unlock() before they call doCallbacksGenericPointer(), or a deadlock can occur if the plugin makes a call to one of the driver functions.

Driver examples Look in detail at 3 drivers simDetector Mar345 Implements most features in simulation Mar345 Relatively simple socket server Perkin Elmer Vendor C API