esrf-bliss / gldisplay Goto Github PK
View Code? Open in Web Editor NEWOpenGL-based live display for Lima, useful for interactive Python sessions
License: GNU General Public License v3.0
OpenGL-based live display for Lima, useful for interactive Python sessions
License: GNU General Public License v3.0
############################################################################ # This file is part of gldisplay, a submodule of LImA project the # Library for Image Acquisition # # Copyright (C) : 2009-2011 # European Synchrotron Radiation Facility # BP 220, Grenoble 38043 # FRANCE # # This is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. ############################################################################ INSTALLATION: Parts of GLDisplay use LIMA code, so LIMA should be built before GLDisplay. This is already handled if GLDisplay is compiled as an option of LIMA (COMPILE_GLDISPLAY=1 in config.inc). In particular SPS (SPEC shared memory) must included in the build configuration options (COMPILE_SPS_IMAGE=1) The library uses Qt4/OpenGL, so the QTDIR environment variable must be defined. - To manually build library and test programs: make - To manually build Python wrapping using SIP: make sip After that you should have: + build/: libgldisplay.so (C++ library) + sip/ gldisplay.so (SIP module) + test/ *_test[.py] (C++ & Python test programs) + python/ __init__.py (GLDisplay module initialisation code) Here follows the code that can be run using: python test/simple_simu_gldisplay_test.py # Very simple program that starts the Simulator with the following: # # + Simulator default config # + A single fixed peak # + Linear intensity grow factor on every frame of the acquisition # + Lima Control Layer (core) default parameters: # + No software processing (Bin, RoI, Automatic Saving, etc.) # + Overwritten acquisition parameters: # + Nb. of frames: 10 # + Exposure time: 0.1 s # + CtSPSGLDisplay activates SPS in Control Layer: # + Spec/array name: GLDisplayTest/Simulator # + Starts the display in forked process (SIGCHLD signal ignored) # + The display performs auto-normalisation every second # # The acquired (processed) number of frames is updated on the screen import time import signal from Lima import Core, Simulator, GLDisplay simu = Simulator.Camera() hw_inter = Simulator.Interface(simu) ct_control = Core.CtControl(hw_inter) gldisplay = GLDisplay.CtSPSGLDisplay(ct_control, []) gldisplay.setSpecArray('GLDisplayTest', 'Simulator') gldisplay.createWindow() signal.signal(signal.SIGCHLD, signal.SIG_IGN) ct_acq = ct_control.acquisition() ct_acq.setAcqNbFrames(10) ct_acq.setAcqExpoTime(0.1) ct_control.prepareAcq() ct_control.startAcq() ct_status = ct_control.getStatus while ct_status().AcquisitionStatus == Core.AcqRunning: time.sleep(0.2) print 'Frame: %d' % ct_status().ImageCounters.LastImageReady nframes = ct_status().ImageCounters.LastImageReady + 1 print 'Finished: %d' % nframes print 'Press any key to quit' raw_input()
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.