Git Product home page Git Product logo

xtdc4-tango's Introduction

The Tango-Controls device server for Chronologic xTDC4. Windows 64-bit only.
For information on the device see https://www.cronologic.de/time_measurement/tdc/xtdc4/
Pogo used to generate class template.

The device server implements a (partial) wrapper around proprietary driver xtdc4_driver_64.dll, 
	enhanced with regular readout of DMA memory and re-parsing of weird output data structures into timestamps on four separate channels.
Histogramming might be added in the future.
	
Quickstart sequence:

1)Init
2)Edit setup attributes
3)Start
4)Periodically read the channel spectrum attributes for timestamps. The read timestamps are released from memory.
5)Stop

Call Off to release xTDC4 for offline use. Call Init to acquire again.          

When idle, the device state is ON.
When started (state set to RUNNING), the dedicated polling thread starts reading the DMA memory, parsing timestamps into std::vector object. One vector is created per channel every 100ms (hardcoded polling period). The pointers to those vectors are stored in an std::queue object.
When client reads CHx_Timestamps attribure, the vectors (all but the last one to prevent racing conditions) are popped from a queue, and their contents are written into a CHx_Timestamps attribute array. The vectors themselves are destroyed to free memory.
When stopped (state set to STANDBY), the acquisition stops but polling thread still runs until DMA memory is empty. Then the thread sets the state to ON and exits. After that, the client has to read again the CHx_Timestamps attribure to fetch the remaining data.                                  

xtdc4-tango's People

Contributors

aduc812 avatar yuelongyu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.