Git Product home page Git Product logo

areadetector / adsimdetector Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 15.0 14.29 MB

A simulation driver for the EPICS areaDetector software. It contains the example driver and an example IOC directory.

Home Page: https://areadetector.github.io/master/ADSimDetector/simDetector.html

License: Other

Makefile 9.74% Batchfile 11.60% Shell 5.83% C++ 67.80% Python 2.45% IDL 2.58%
areadetector epics simulation

adsimdetector's Introduction

ADSimDetector

The home of the simDetector for the EPICS areaDetector software. It contains this example driver and an example IOC directory.

Prior to R2-3 the files in this repository were contained in the ADExample repository. ADSimDetector was split into its own repository in November 2016 and the first release of the new repository was called R2-3 to continue the release numbering from ADExample.

Additional information:

adsimdetector's People

Contributors

ajgdls avatar bhill-slac avatar edwarrick avatar gdyendell avatar jerryjiahaha avatar jlmuir avatar markrivers avatar mattclarke avatar mp49 avatar mrkraimer avatar prjemian avatar timmmooney avatar ukaea-chah avatar ulrikpedersen avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

adsimdetector's Issues

USR_INCLUDES += -I...

When I check out the R2-6 version, in iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/Makefile I read

ifdef HDF5_INCLUDE
USR_INCLUDES += -I$(HDF5_INCLUDE)
endif
ifdef SZIP_INCLUDE
USR_INCLUDES += -I$(SZIP_INCLUDE)
endif
ifdef XML2_INCLUDE
USR_INCLUDES += -I$(XML2_INCLUDE)
endif

but that doesn't work as HDF5_INCLUDE etc. typically already contains -I/usr/include/...

64bit integers not supported yet

Compiling against Base 7.0.3.1 and ADCore 3.8 yields:

/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE           -D_X86_64_  -DUNIX  -Dlinux     -O3   -Wall      -mtune=generic      -m64 -std=c++11 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/opt/codac-6.2/epics/include/compiler/gcc -I/opt/codac-6.2/epics/include/os/Linux -I/opt/codac-6.2/epics/include       -I/opt/codac-6.2/include  -c ../simDetector.cpp
[WARN] ../simDetector.cpp: In member function 'int simDetector::computeImage()':
[WARN] ../simDetector.cpp:624:12: warning: enumeration value 'NDInt64' not handled in switch [-Wswitch]
[WARN] switch (dataType) {
[WARN] ^
[WARN] ../simDetector.cpp:624:12: warning: enumeration value 'NDUInt64' not handled in switch [-Wswitch]

Memory leak in buffer allocation

Each pair of Reset/Start actions causes three buffers (pBackground_, pPeak_, pRamp_) to be allocated but not released. PoolUsedBuffers increases by 3 each time. PR coming shortly.

text alignment problems with caQtDM

some labels overlap text entry widgets in both simDetector and simDetectorSetup screens

This is a common problem in screens converted from MEDM's .adl files. The enclosing box for the text in the MEDM must be re-positioned, then the screens re-converted.

screenshot at 2017-11-12 21-55-52

screenshot at 2017-11-12 21-56-09

Doesn't compile on Debian 10 (x86_64) with GCC 8.3.0 and OpenCV 4.5.2

Dear all,
I was compiling the package with the following sub-modules umcommented in RELEASE.local file:

ADANDOR=$(AREA_DETECTOR)/ADAndor
ADANDOR3=$(AREA_DETECTOR)/ADAndor3
ADARAVIS=$(AREA_DETECTOR)/ADAravis
ADCSIMDETECTOR=$(AREA_DETECTOR)/ADCSimDetector
ADGENICAM=$(AREA_DETECTOR)/ADGenICam
ADPLUGINBAR=$(AREA_DETECTOR)/ADPluginBar
ADPLUGINEDGE=$(AREA_DETECTOR)/ADPluginEdge
ADPOINTGREY=$(AREA_DETECTOR)/ADPointGrey
ADSIMDETECTOR=$(AREA_DETECTOR)/ADSimDetector
ADSPINNAKER=$(AREA_DETECTOR)/ADSpinnaker
ADSUPPORT=$(AREA_DETECTOR)/ADSupport
ARAVISGIGE=$(AREA_DETECTOR)/aravisGigE
NDDRIVERSTDARRAYS=$(AREA_DETECTOR)/NDDriverStdArrays
PVADRIVER=$(AREA_DETECTOR)/pvaDriver

When it proceeded to ADSimDetector, it failed and produced the following error:

make -C ./simDetectorNoIOC install
make[3]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC'
make -C ./configure install
make[4]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/configure'
perl -CSD /opt/epics/R70.5/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../..
T_A=linux-x86_64 install
make[5]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/configure/O.linux-x86_64'
perl -CSD /opt/epics/R70.5/base/bin/linux-x86_64/convertRelease.pl checkRelease
make[5]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/configure/O.linux-x86_64'
make[4]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/configure'
make -C ./simDetectorNoIOCApp install
make[4]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp'
make -C ./src install
make[5]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'
perl -CSD /opt/epics/R70.5/base/bin/linux-x86_64/makeMakefile.pl O.linux-x86_64 ../../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../../..
T_A=linux-x86_64 install
make[6]: Entering directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -DUSE_TYPED_RSET -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I../../../../../include -I/opt/epics/R70.5/synApps/support/asyn-R4-41/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/R70.5/synApps/support/autosave-R5-10-2/include/os/Linux -I/opt/epics/R70.5/synApps/support/autosave-R5-10-2/include -I/opt/epics/R70.5/synApps/support/busy-R1-7-3/include -I/opt/epics/R70.5/synApps/support/calc-R3-7-4/include -I/opt/epics/R70.5/synApps/support/seq-2-2-8/include -I/opt/epics/R70.5/synApps/support/sscan-master/include -I/opt/epics/R70.5/synApps/support/iocStats-3-1-16/include/os/Linux -I/opt/epics/R70.5/synApps/support/iocStats-3-1-16/include -I/opt/epics/R70.5/synApps/support/alive-R1-3-1/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADPluginEdge/include -I/opt/epics/R70.5/base/include/compiler/gcc -I/opt/epics/R70.5/base/include/os/Linux -I/opt/epics/R70.5/base/include -MM -MF simDetectorNoIOC.d ../simDetectorNoIOC.cpp
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -DUSE_TYPED_RSET -mtune=generic -m64 -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I../../../../../include -I/opt/epics/R70.5/synApps/support/asyn-R4-41/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADSupport/include/os/Linux -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADSupport/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADCore/include -I/opt/epics/R70.5/synApps/support/autosave-R5-10-2/include/os/Linux -I/opt/epics/R70.5/synApps/support/autosave-R5-10-2/include -I/opt/epics/R70.5/synApps/support/busy-R1-7-3/include -I/opt/epics/R70.5/synApps/support/calc-R3-7-4/include -I/opt/epics/R70.5/synApps/support/seq-2-2-8/include -I/opt/epics/R70.5/synApps/support/sscan-master/include -I/opt/epics/R70.5/synApps/support/iocStats-3-1-16/include/os/Linux -I/opt/epics/R70.5/synApps/support/iocStats-3-1-16/include -I/opt/epics/R70.5/synApps/support/alive-R1-3-1/include -I/opt/epics/R70.5/synApps/support/areaDetector-master/ADPluginEdge/include -I/opt/epics/R70.5/base/include/compiler/gcc -I/opt/epics/R70.5/base/include/os/Linux -I/opt/epics/R70.5/base/include -c ../simDetectorNoIOC.cpp
make[6]: *** No rule to make target '../../../lib/linux-x86_64/libopencv_imgproc.a', needed by 'simDetectorNoIOCApp'. Stop.
make[6]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'
make[5]: *** [/opt/epics/R70.5/base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[5]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'
make[4]: *** [/opt/epics/R70.5/base/configure/RULES_DIRS:85: src.install] Error 2
make[4]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp'
make[3]: *** [/opt/epics/R70.5/base/configure/RULES_DIRS:85: simDetectorNoIOCApp.install] Error 2
make[3]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs/simDetectorNoIOC'
make[2]: *** [/opt/epics/R70.5/base/configure/RULES_DIRS:85: simDetectorNoIOC.install] Error 2
make[2]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector/iocs'
make[1]: *** [/opt/epics/R70.5/base/configure/RULES_DIRS:85: iocs.install] Error 2
make[1]: Leaving directory '/opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector'
make: *** [/opt/epics/R70.5/base/configure/RULES_DIRS:85: /opt/epics/R70.5/synApps/support/areaDetector-master/ADSimDetector.install] Error 2

Any suggestions are welcomed. Thank you in advance for your replies.

ADSimDetector master branch compile branch fails with ADCore/master. The Tag R2-8 compiles fine..

../simDetectorNoIOC.cpp:29:45: error: ‘asynParamClient’ has not been declared
callbackStruct(const char paramStringIn, asynParamClient pClientIn, class simDetectorDemo pSimDetectorDemoIn)
^
../simDetectorNoIOC.cpp:32:3: error: ‘asynParamClient’ does not name a type
asynParamClient pClient;
^
../simDetectorNoIOC.cpp: In constructor ‘callbackStruct::callbackStruct(const char
, int
, simDetectorDemo
)’:
../simDetectorNoIOC.cpp:30:33: error: class ‘callbackStruct’ does not have any field named ‘pClient’
: paramString(paramStringIn), pClient(pClientIn), pSimDetectorDemo(pSimDetectorDemoIn), pasynUser(0) {};
^
../simDetectorNoIOC.cpp: In constructor ‘simDetectorDemo::simDetectorDemo()’:
../simDetectorNoIOC.cpp:108:45: error: no matching function for call to ‘asynPortClient::asynPortClient(const char [5])’
pSimClient_ = new asynPortClient("SIM1");
^
../simDetectorNoIOC.cpp:108:45: note: candidates are:
In file included from ../simDetectorNoIOC.cpp:13:0:
/eApps/epics/support/asyn/include/asynPortClient.h:44:5: note: asynPortClient::asynPortClient(const char
, int, const char*, const char*, double)
asynPortClient(const char portName, int addr, const char asynInterfaceType, const char *drvInfo, double timeout);
^
/eApps/epics/support/asyn/include/asynPortClient.h:44:5: note: candidate expects 5 arguments, 1 provided
/eApps/epics/support/asyn/include/asynPortClient.h:42:23: note: asynPortClient::asynPortClient(const asynPortClient&)
class epicsShareClass asynPortClient {
^
/eApps/epics/support/asyn/include/asynPortClient.h:42:23: note: no known conversion for argument 1 from ‘const char [5]’ to ‘const asynPortClient&’
../simDetectorNoIOC.cpp:109:16: error: ‘class asynPortClient’ has no member named ‘write’
pSimClient_->write(NDArrayCallbacksString, 1); // Enable NDArray callbacks
^
../simDetectorNoIOC.cpp:110:16: error: ‘class asynPortClient’ has no member named ‘write’
pSimClient_->write(ADGainString, 1.0); // Set the Gain to 1.0

................................
/eApps/epics/base/configure/RULES_BUILD:242: recipe for target 'simDetectorNoIOC.o' failed
make[5]: *** [simDetectorNoIOC.o] Error 1
/eApps/epics/base/configure/RULES_ARCHS:58: recipe for target 'install.linux-x86_64' failed
make[4]: *** [install.linux-x86_64] Error 2
/eApps/epics/base/configure/RULES_DIRS:84: recipe for target 'src.install' failed
make[3]: *** [src.install] Error 2
/eApps/epics/base/configure/RULES_DIRS:84: recipe for target 'simDetectorNoIOCApp.install' failed
make[2]: *** [simDetectorNoIOCApp.install] Error 2
/eApps/epics/base/configure/RULES_DIRS:84: recipe for target 'simDetectorNoIOC.install' failed
make[1]: *** [simDetectorNoIOC.install] Error 2
make[1]: *** Waiting for unfinished jobs....
/eApps/epics/support/areaDetector/ADSupport/lib/linux-x86_64/libjp2.a(jas_stream.o): In function jas_stream_tmpfile': /eApps/epics/support/areaDetector/ADSupport/supportApp/GraphicsMagickSrc/jp2/src/libjasper/O.linux-x86_64/../../../../../../supportApp/GraphicsMagickSrc/jp2/src/libjasper/base/jas_stream.c:368: warning: the use of tmpnam' is dangerous, better use `mkstemp'
/eApps/epics/base/configure/RULES_DIRS:84: recipe for target 'iocs.install' failed
make: *** [iocs.install] Error 2

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.