Compare commits

..

724 Commits

Author SHA1 Message Date
f7aedf7711 client bug fix: typo in command line, get returned rx_udpip instead of rx_udpip2, same with mac 2019-05-28 16:56:15 +02:00
8c112efdb3 jungfrau bug fix: setting clkdivider also set adcphase: break inswitch 2019-05-28 14:14:08 +02:00
938e1e87ff bugfix: vref adc voltage 2019-05-28 12:31:19 +02:00
82308daf7b jungfrau server bug fix: vref adc voltage overwritten by default for ctb 2019-05-28 12:28:44 +02:00
aa99309caf Merge branch 'jungfrau2.0' into developer 2019-05-28 10:32:01 +02:00
a0f697ce71 jungfrau feature change: outer is default and connects to bottom, inner is secondary but connects to top 2019-05-28 10:31:36 +02:00
14dd753397 updated build nr 2019-05-27 16:59:42 +02:00
7e43472b7b minor help editing 2019-05-27 16:29:56 +02:00
ac7c85029c Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-27 16:22:04 +02:00
639ea0eb56 Merge branch 'condabuild' into developer 2019-05-27 16:11:57 +02:00
659e204b35 solved conflicts 2019-05-27 15:05:40 +02:00
2c2fb7358c jungfrau board 2 adc defines, full speed limitation for old boards 2019-05-27 15:04:13 +02:00
d3646f0ac5 pinned conda-build version 2019-05-27 14:33:17 +02:00
54a396065d ctb versioning bug fix 2019-05-27 14:08:41 +02:00
7fdab08256 ctb receiver fix: extract in 8 bit batches instead of 32 for less padding 2019-05-27 11:30:54 +02:00
e2ef043e04 removed old configure file 2019-05-24 16:31:25 +02:00
43dc9df6db removed unused scripts 2019-05-24 10:25:34 +02:00
10f89599e0 bug fix: hdf5 printError still called once. replcaed with printErrorStack 2019-05-22 19:11:35 +02:00
452fd1e457 new defaults for CMake 2019-05-22 09:45:08 +02:00
7b817fa194 Merge branch 'developer' into jungfrauv0.8 2019-05-17 19:21:01 +02:00
1a1c6b9b42 jungfrau server: feature finish: switching between 2 interfaces 2019-05-17 19:19:03 +02:00
3e5d34647e updated test for argument parser 2019-05-17 10:00:49 +02:00
591ff53b84 fixed MacAddr 0 output 2019-05-17 09:08:13 +02:00
fff79fbbb6 const char* for command 2019-05-16 16:58:03 +02:00
1943e77b24 server interface: ip made to use inet_ntop, mac address and ip to string made common 2019-05-16 15:12:42 +02:00
9315768159 client bug fix: smaller ips convert to hex 2019-05-16 14:07:58 +02:00
f1a1391866 Factored out time conversion (#23)
* time conversion

* with comment

* lround in slsDetectorCommand
2019-05-15 10:22:38 +02:00
877bdb8979 Using FixedCapacityContainer for rxDbitList (#22)
* fixed capacity container

* changed shm date
2019-05-15 09:16:18 +02:00
bf0847e967 removed ClientInterface 2019-05-15 08:38:49 +02:00
97dd329a7b client: zmqip bug fix (typo with strlen) 2019-05-14 18:57:39 +02:00
6847175743 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-14 18:38:42 +02:00
f90d8c6aff ctb server: added adcvpp option to get and in mv 2019-05-14 18:38:30 +02:00
45ae8a41ab updating eiger server 2019-05-14 17:43:34 +02:00
24fc5de58d clang-tidy header include order 2019-05-14 17:34:51 +02:00
7314c52c63 removed unneccecary includes 2019-05-14 17:32:21 +02:00
bc4d0452af removed unused error_defs.h 2019-05-14 17:25:43 +02:00
97692ae3ab moved from c headers 2019-05-14 17:17:21 +02:00
55f482f915 clang-tidy nullptr 2019-05-14 17:11:27 +02:00
74d67261a9 no check for null when deleting 2019-05-14 17:09:24 +02:00
741ee3b44c ctb server bug fix: udp ip not reset before overwriting (smaller size creates problems) 2019-05-14 17:08:07 +02:00
29be6f3b34 no check for null when deleting 2019-05-14 17:07:56 +02:00
81e858ea4d clang-tidy implicit bool 2019-05-14 17:05:27 +02:00
0f8d099196 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-14 16:53:59 +02:00
ab5aa78b8a clang-tidy modernize 2019-05-14 16:53:50 +02:00
3f6736ad23 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-14 16:44:09 +02:00
3e654977ca slsReceiver bug fix in ctb extracting digital bits 2019-05-14 16:41:25 +02:00
1029ce9705 minor 2019-05-14 14:53:59 +02:00
d114f8db90 receiver bug fix: ctb extractng bits source pointer bug 2019-05-14 11:43:45 +02:00
9fd2866fc0 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-14 11:41:50 +02:00
aff6e30b65 short sleep in socket test 2019-05-14 11:41:39 +02:00
0224dccd2e Added noexcept and constexpr (#21)
* noexcept and constexpr

* check size
2019-05-14 11:08:25 +02:00
fbada2e81a commented qwt for now 2019-05-14 10:13:24 +02:00
40d88002c0 Merge pull request #20 from slsdetectorgroup/fix-conda-install-instructions
Fix typo in conda install instructions
2019-05-13 15:31:24 +02:00
3a8c7c6e2a Fix typo in conda install instructions 2019-05-13 10:58:54 +02:00
2a1c89f712 Fixed container (#19)
* added FixedCapacityContainer

* added empty to FixedCapacityContainer

* removed commented out section

* added FixedCapacityContainer to public headers
2019-05-08 12:34:45 +02:00
0e0e7ea81f Merge pull request #18 from slsdetectorgroup/rxctb
Rxctb
2019-05-07 12:51:43 +02:00
df938c2535 review: removing size in sendtoDetector 2019-05-07 09:47:53 +02:00
932e377765 review fdback: using sendtoReceiver, not using size of for specifyng arguments to sendtodetector 2019-05-06 19:13:31 +02:00
0904d1db29 updated ctb binary 2019-05-03 20:46:08 +02:00
20720bc073 Merge branch 'developer' into rxctb 2019-05-03 20:38:32 +02:00
e14519c236 slsReceiver: removed special receiver config, added rx_dbitlist, rx_dbitoffset to put bits together in file, connected adcinvert, extsamplingsrc and extsampling properly to the detector, added tests 2019-05-03 20:37:40 +02:00
e2f08da3e6 Merge branch 'tidywarning' into developer 2019-05-03 16:14:07 +02:00
181ac4f509 small renaming 2019-05-03 16:13:32 +02:00
a0f5224d09 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-05-03 15:27:20 +02:00
6a0d44e358 rate capability plots 2019-05-03 15:27:11 +02:00
1094d5d30c Build doxygen documentation by cmake (#17)
* added cmake command to make doxygen docs

* added back doxyfile for users
2019-05-03 14:58:15 +02:00
9231dff626 clang tidy implicit bool 2019-05-03 14:49:47 +02:00
92b447c83a minor fixes 2019-05-03 14:39:22 +02:00
aaa7576f7d clang-tidy 2019-05-03 14:15:13 +02:00
96d7345124 delays in manual 2019-05-03 13:45:06 +02:00
4f13b29c7f fixed copyserver bug 2019-05-02 18:18:49 +02:00
a55ae38874 changed to matching names 2019-05-02 18:11:36 +02:00
7683b18fa3 ensuring only analog is not in callback 2019-05-01 20:18:46 +02:00
71dd43d252 connected analog databytes 2019-05-01 12:25:21 +02:00
fc7d3bcaea ctb callback used 2019-05-01 12:10:15 +02:00
2f3b0e0b06 ctb:separated analog and digital samples in server and send analog and digital data packed separately per frame to reciever 2019-04-30 18:55:32 +02:00
b0cffcd570 master file option, adcdisable changed to adcenable 2019-04-30 12:13:28 +02:00
56d1994b8c ctb file frame header back in 2019-04-30 11:18:09 +02:00
668cff1c65 fix for corrupt merge 2019-04-29 11:30:19 +02:00
06d4c7ce37 client: finishing up of gotthard for roi and ctb and moench for setting adcenablemask 2019-04-29 09:10:17 +02:00
c0f06fcfca fix reset frames caught 2019-04-26 17:11:32 +02:00
33efd42bdc fix merge 2019-04-26 17:06:59 +02:00
af5eb9fc12 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-26 16:53:35 +02:00
61a939ef53 ctb: removed setroi, instead using adcenablemask 2019-04-26 16:53:23 +02:00
a3342f86d8 names 2019-04-26 16:47:08 +02:00
554f9dc2ee minor 2019-04-26 16:28:21 +02:00
c4aa5ef7bb sendToDetectorStop 2019-04-26 15:15:56 +02:00
d7eadd5782 sendToReceiver 2019-04-26 12:58:40 +02:00
65930002b3 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-25 19:20:25 +02:00
f5feb081ab removing header metadata for ctb binary files 2019-04-25 19:20:13 +02:00
714e456d7d Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-25 17:56:32 +02:00
b76d123df1 shorter functino 2019-04-25 17:56:20 +02:00
2eac75aa0b Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-25 17:39:56 +02:00
18558e1288 bug fix command line patnloops should print in decimal, receiver ctb: added p option to print data for debugging, fixed initializing of result in memory 2019-04-25 17:39:46 +02:00
b853bd92c8 template for sending to detector 2019-04-25 17:01:04 +02:00
4da85b15a0 cleaning 2019-04-25 13:55:45 +02:00
77d34d5b6e fix 2019-04-25 08:24:56 +02:00
6472cc4dd7 test for socket 2019-04-24 21:30:04 +02:00
67eef8ba75 fix for hdf5 compilation with new cmake 2019-04-24 18:09:53 +02:00
91a338cf52 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-24 16:17:07 +02:00
9b53a295e1 my302 receiver modified to be debugged later 2019-04-24 16:16:56 +02:00
8cc8b58b05 sendToDetector 2019-04-24 15:24:56 +02:00
ec9f360c75 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-24 14:39:20 +02:00
dbf927901f more of sendToDetector 2019-04-24 14:39:08 +02:00
9e16dcb1e6 reverting cmake policy change 2019-04-24 13:46:19 +02:00
eb88fabfbc receiver callback rearranging data for mythen302 2019-04-24 13:32:21 +02:00
92310f845c Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-24 13:31:06 +02:00
262140728f receiver callback rearranging data for mythen302 2019-04-24 13:30:57 +02:00
834b1e58ea cleaning slsDetector 2019-04-24 10:57:02 +02:00
5192be6784 more tests 2019-04-24 08:28:16 +02:00
5c0e1643f2 complete dac test for EIGER 2019-04-23 18:02:05 +02:00
7dc014f19c Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-23 17:37:11 +02:00
02fd4b356e adding config for tests 2019-04-23 17:37:02 +02:00
eac992ee03 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-23 14:35:20 +02:00
4e3baf41cb ctb server: introducing 1 us delay between rd strobe and fifo read due to different clocks 2019-04-23 14:35:07 +02:00
72091f47d9 format and mod constructor 2019-04-23 10:48:31 +02:00
21cab38921 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 17:18:14 +02:00
3d40fb2d2c ctb address check, integration test added for ctb pattern 2019-04-18 17:18:01 +02:00
83c2775d6c fixed python 2019-04-18 15:57:59 +02:00
e3859c3097 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 15:40:30 +02:00
833ca071c4 fix 2019-04-18 15:40:20 +02:00
45884a72da eiger binary updated 2019-04-18 15:35:36 +02:00
61aa673be9 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 15:32:25 +02:00
1bc6e7f978 conflict resolved 2019-04-18 15:32:07 +02:00
202d88d6be experimental python 2019-04-18 15:31:07 +02:00
266520741a ctb patterns interface rewritten 2019-04-18 15:29:43 +02:00
faf7e0db82 fix 2019-04-18 15:09:36 +02:00
7aaaeae30c minor 2019-04-18 15:06:17 +02:00
86afb2bd0e more ctb commands 2019-04-18 15:03:01 +02:00
a29466b396 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 13:39:53 +02:00
c7259538e9 python commands 2019-04-18 13:39:43 +02:00
ff4ce48e5d receiver memory alignment: all data and header is a multiple of 64 bit, just the fifo header size needed to be 8 2019-04-18 11:35:08 +02:00
f3beda6bcf Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 11:16:33 +02:00
8256b7ba84 eiger receiver fix: setting eth2 as well for eiger 2019-04-18 11:16:02 +02:00
7c4aa7f3a7 added commands to python 2019-04-18 10:53:06 +02:00
1e19b99a78 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 09:33:23 +02:00
f591adccb8 added getPatternLoop 2019-04-18 09:33:14 +02:00
7abe070ea8 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-18 09:27:26 +02:00
708975acb5 receiver bug fix: function pointer not initialized as null in dataprocessor 2019-04-18 09:27:02 +02:00
849d3ba049 removed create and delete module 2019-04-17 17:17:59 +02:00
ee20cfab1e removed pointers added constructor 2019-04-17 16:19:18 +02:00
b46e107f35 moved detParameters to sls_detector_defs 2019-04-17 14:28:53 +02:00
91813a2c68 moved sls_detector_module outside slsDetectorDefs class 2019-04-17 09:27:45 +02:00
cedde395a0 conda meta 2019-04-17 09:05:21 +02:00
c7169f3c36 moved setDetectorSpecific parameters to constructor of detectorParameters 2019-04-16 12:15:31 +02:00
dd6bb85230 clang-tidy fix 2019-04-16 10:31:04 +02:00
bad8b99b25 clang-tidy fix 2019-04-16 10:21:35 +02:00
001ce4a93e clang-tidy warnings 2019-04-16 09:28:29 +02:00
0527880747 slsDetector implicit conversion 2019-04-16 09:15:17 +02:00
d31446ce07 unused values and comments 2019-04-15 18:14:58 +02:00
0cc0c2715b Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-15 17:22:40 +02:00
248306d570 minor 2019-04-15 17:22:31 +02:00
6b4d6084f5 merge conflict resolved 2019-04-12 19:23:16 +02:00
79c6f5310b eiger server and client: cleaning up setting of dynamic range for eiger, where multi client takes care of checking rate correction in a separate call, tests included 2019-04-12 19:20:31 +02:00
f59b172cfd adding python to cmk.sh 2019-04-12 17:14:11 +02:00
25d7781878 ctb bug fix:digitial io delay and led were checking if receiver was online instead of detector 2019-04-12 15:33:15 +02:00
721f80a493 Merge branch 'refactor' into dynamicrange 2019-04-12 14:16:20 +02:00
192ac229e9 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-04-12 14:05:46 +02:00
4cbf8483ba ctb version update 2019-04-12 14:05:25 +02:00
77c1ffffb1 fix 2019-04-12 11:32:46 +02:00
c16b19ed1f supress waring on gcc<6 2019-04-12 11:31:03 +02:00
cafca86bbf removed ascii from file formats 2019-04-12 11:12:58 +02:00
89a06f099c merging refactor (replacing) 2019-04-12 10:53:09 +02:00
6c7c91307b Merge branch 'developer' into refactor (keeping everything from refactor -s ours) 2019-04-12 10:51:05 +02:00
5fdb090926 fixing warnings, and completing bug fix of gui and data gui call back 2019-04-12 10:13:02 +02:00
d17fd54a9d undoing changes from refgui 2019-04-12 10:01:48 +02:00
9543171504 merge from refgui. not completed 2019-04-12 09:12:44 +02:00
74f2783b10 Client (data call back API) and Gui (Eiger 4 bit mode with multiple images) bug fix: npixelsx and npixelsy was not updated to complete detector level when calling call back function to give complete image 2019-04-11 16:21:25 +02:00
4a5cb011f7 ver in meta 2019-04-11 14:38:49 +02:00
dce7dcbfd4 partial frames 2019-04-11 12:14:52 +02:00
d00fd70d6d integration test 2019-04-11 11:29:34 +02:00
04146e683c updated reading 2019-04-10 16:54:33 +02:00
4b7c5c5950 getFileIndex 2019-04-10 14:16:04 +02:00
92b674354d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-04-10 12:37:25 +02:00
8cb123cdcb more getters setters 2019-04-10 12:37:16 +02:00
6b5aa5ff66 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-04-10 12:31:34 +02:00
2b377df0bd manual 2019-04-10 12:31:28 +02:00
ec17529c52 seperate get/set 2019-04-10 12:15:19 +02:00
404d3fa677 error handling 2019-04-09 17:35:36 +02:00
026d4019c5 minor 2019-04-09 17:32:54 +02:00
31a4a46fb6 lzmq 2019-04-09 15:23:48 +02:00
8c3691f767 mitigating clang-tidy warnings 2019-04-09 14:31:08 +02:00
70b2a41d5e clang tidy 2019-04-09 10:59:09 +02:00
39221f1230 enable lto 2019-04-08 14:57:10 +02:00
fad308754b turned off -Wshadow for gcc 2019-04-08 09:28:40 +02:00
33f726ff7e shadowing variables 2019-04-05 17:01:29 +02:00
cbacf471d6 tests and std::sort 2019-04-05 16:24:28 +02:00
f11db00aef removed old typedef 2019-04-05 10:14:41 +02:00
951d4d6091 new try 2019-04-04 18:26:14 +02:00
025b3a8d4c cleaning 2019-04-04 18:04:24 +02:00
acf32a5524 removed old error handling 2019-04-04 17:42:55 +02:00
55ba2afc05 better test + conda 2019-04-04 17:39:31 +02:00
498569a42a update for trimEn 2019-04-04 12:31:46 +02:00
d6360ca197 removed warning 2019-04-04 12:21:48 +02:00
05720c12ac Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-04-04 12:19:39 +02:00
85516e42c0 trimEn now takes vector 2019-04-04 12:19:30 +02:00
b35a8f0650 ctb server updated 2019-04-04 11:51:37 +02:00
c284b24397 operator<< test 2019-04-03 20:05:29 +02:00
7256a1e422 added test 2019-04-03 19:59:37 +02:00
69a11f8950 cleaning up 2019-04-03 18:41:21 +02:00
0270e18882 new tests 2019-04-03 18:11:48 +02:00
697c020a49 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-04-03 16:17:16 +02:00
90b257a74d warnings 2019-04-03 16:17:09 +02:00
bb025adc09 cmake3 in cmk.sh and removed warnings 2019-04-03 16:03:19 +02:00
1558ca2bb5 version check of compiler 2019-04-03 15:21:11 +02:00
a7ab8aa9e6 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-04-03 14:48:04 +02:00
3b4d36c3d4 bumped cmake to 3.5 2019-04-03 14:47:58 +02:00
59a0f5fac9 Merge branch 'address' into refactor, including minor change in formal argument name 2019-04-03 14:22:10 +02:00
bbfb5df30d conflict resolved, changed to using hex() instead of str() in configuremac 2019-04-03 14:11:01 +02:00
09f1a8956e ignore .vscode 2019-04-03 10:22:00 +02:00
d6c0f7be05 constexpr 2019-04-02 17:59:59 +02:00
11d7ebd298 Merge branch 'program2' into refactor 2019-04-02 17:29:56 +02:00
d9ea8e6747 Merge branch 'refactor' into program2 2019-04-02 17:29:00 +02:00
5131245f0a all servers except eiger: easier to update firmware and software using update or copydetectorserver, rebootcontroller, and programfpga 2019-04-02 17:27:01 +02:00
6fc388bf78 reset to info 2019-04-02 17:15:21 +02:00
24f28f14f4 clean up 2019-04-02 17:00:00 +02:00
45fd35b243 Merge branch 'refactor' into address 2019-04-02 15:44:57 +02:00
11a452545c added parallel call for void return 2019-04-02 15:44:19 +02:00
b198b50377 class for Ip and Mac 2019-04-02 15:24:25 +02:00
df2d67d90d classes for ip and mac addr 2019-04-02 11:56:33 +02:00
73ad238028 removed missed cout 2019-04-01 13:15:38 +02:00
959d9aa5d1 cleaning and new functions 2019-04-01 10:36:47 +02:00
45b837b42a program fpga printouts for errors 2019-04-01 10:22:50 +02:00
969551ae37 program fpga made parallel 2019-03-29 17:59:06 +01:00
05709e2f47 finished 2019-03-29 16:29:00 +01:00
1fce125d47 Merge branch 'refactor' into address 2019-03-29 10:18:15 +01:00
d134e54810 ip 2019-03-29 10:18:10 +01:00
ed9dc3b386 fixed bug not clearing socket descriptor 2019-03-29 10:14:07 +01:00
990848554c midpoint 2019-03-28 16:16:41 +01:00
78fcb7eb98 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-28 15:48:34 +01:00
94c4e4c352 new constuctor 2019-03-28 15:48:26 +01:00
3e23a38fc8 moench server: sync increases when other clocks do 2019-03-28 15:24:47 +01:00
37b80bcc0d ctb server: pll reset to keep the phase after setting clock 2019-03-28 15:22:13 +01:00
fc0306564c ctb server: sync is min clock and must go higher when the others do 2019-03-28 14:22:40 +01:00
c38bebd615 jungfrau server: added deg and maxadcphaseshift, ctb & moench server: set adc phase like jungfrau that positive shift is positive, moved conversion between shift to degrees to the common function. receiver: removed unused variables 2019-03-28 09:35:53 +01:00
5a4122ae7c ctb & moench server: reset phase when changing clock 2019-03-27 15:48:55 +01:00
2ccd03a3b0 added eiger binary 2019-03-27 12:26:10 +01:00
c7c52c63cd ctb & moench: phase fix for absolute within limits, option to set as degrees and get max phase shift, bug fix for eiger with implementation of 2 udp interface 2019-03-27 12:25:38 +01:00
c7ad548e4c conflict git fix 2019-03-26 15:01:58 +01:00
7cd5bc8b2d jungfrau: switching between 2 and 1 interface, implementation for server required when firmware done 2019-03-26 15:00:19 +01:00
8c2ee57591 ctb/moench server: clock fix, max shifts per clock is calculated everytime 2019-03-25 14:41:15 +01:00
c15e72510c new commands 2019-03-22 17:41:14 +01:00
ac1511c3b0 rmem max 2019-03-22 16:35:42 +01:00
cd5aea895b jungfrau server: changes for new firmware, aligning adc deserializer. ctb serveR: removed unnecessary pll reset and polling mode for pll 2019-03-22 15:09:29 +01:00
5bf37a4f0d changes to jungfrau server 2019-03-22 11:27:15 +01:00
6cb043b2d9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 16:30:25 +01:00
fa34ad435b server: pll fix 2019-03-21 16:30:18 +01:00
c5178bc4de manual 2019-03-21 16:29:36 +01:00
c89fad45a9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 15:09:19 +01:00
6c4fad01d4 manual 2019-03-21 15:09:10 +01:00
eb3dff3a6c eiger server 2019-03-21 14:15:52 +01:00
d9503bebf9 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-21 14:13:15 +01:00
b99606211b ctb server: altera pll odd division fix 2019-03-21 14:13:07 +01:00
039e658773 manual 2019-03-21 11:46:38 +01:00
92ca22fc09 manual 2019-03-20 18:34:44 +01:00
d4ac6fe160 gitinfo as public 2019-03-20 17:48:01 +01:00
8cb0f3a29c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:41:57 +01:00
c16f9b8c30 specify detector or receiver in error 2019-03-20 17:41:46 +01:00
050854de36 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:34:37 +01:00
cb80cf5f09 receiver missing packets made to have signed for getting more packets than expected 2019-03-20 17:34:29 +01:00
83e43b1bcf format ColumnLimit changed to 100 2019-03-20 17:31:19 +01:00
2a01688683 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-20 17:07:29 +01:00
3ff01bf609 removed minor warnings for unused ret 2019-03-20 17:07:02 +01:00
4b2c6af4f5 reorganizing of slsDetectorSoftware 2019-03-20 17:07:02 +01:00
03402d0e9e Error handling with exceptions in slsDetector and multiSlsDetector (#14)
* less error mask

* removing error mask from slsDetector

* removed ErrorMask

* setonline, setreceiveornline bug fix
2019-03-20 16:23:41 +01:00
9d489dc962 servers, gitinfo script updated; ctb/moench server: delay uses sync clock, 2019-03-20 14:39:24 +01:00
44f0dfc3c0 ctbserver: updated firmware version and api 2019-03-19 18:58:42 +01:00
685fcc31b6 setonline, setreceiveronline was never really setting offline flag, so was never really updating detector first time 2019-03-19 18:42:45 +01:00
ce6289afda Merge pull request #13 from slsdetectorgroup/except
new socket overload
2019-03-19 18:01:09 +01:00
4e56107015 new socket overload 2019-03-19 17:49:20 +01:00
430e0e3fb5 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-19 17:32:17 +01:00
d8c0fb522a ctb/ moench server fix: usleep of 10 for reading from fifo removed 2019-03-19 17:32:07 +01:00
ce25c06b41 Merge pull request #12 from slsdetectorgroup/except
refactor getID
2019-03-19 16:58:43 +01:00
6759b2eeb8 refactor getID 2019-03-19 16:27:07 +01:00
38bf540c1a fixed segfault on loading trimbits 2019-03-18 18:10:50 +01:00
43012e4f28 more const more python 2019-03-18 17:38:44 +01:00
98655ee7e3 added missing py file 2019-03-18 12:20:48 +01:00
43d478076c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-18 12:06:49 +01:00
4036e6af8d const qualified multi calls, python fixes 2019-03-18 12:06:39 +01:00
fad73a57aa minor 2019-03-18 09:19:04 +01:00
c0d5303b70 removed pycache 2019-03-15 17:59:36 +01:00
3356c2d3f6 all python version 2019-03-15 15:01:44 +01:00
3f45d39c8d deploy on all branches 2019-03-15 14:37:01 +01:00
4e94995142 conda build 2019-03-15 14:23:51 +01:00
c93b78c74f working 2019-03-15 13:50:50 +01:00
73af4a744f added pybind11 v2.2 as submodule 2019-03-15 11:05:12 +01:00
6ddde83c81 python 2019-03-15 11:01:36 +01:00
bb93147537 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-15 10:37:54 +01:00
1eff8485dd receiver listener bug fix from previous commit 2019-03-15 10:37:47 +01:00
c153be95d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-15 10:15:50 +01:00
4943983d10 det id const and ini shm in constructor 2019-03-15 10:15:42 +01:00
5fe7a86361 switching udpsocketbuffersize from uitn64_t to int64_t, printing socket exception into tcp error mess, changing an exception message 2019-03-15 10:00:22 +01:00
7522a655df removing warning in gcc 2019-03-14 17:38:40 +01:00
836eb8cde2 explicit override 2019-03-14 17:15:58 +01:00
9f724f0c0d using only sls exceptions 2019-03-14 17:09:44 +01:00
bad44f5bf4 moving SharedMemory into namespace sls 2019-03-14 16:51:38 +01:00
40d2f66146 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-14 16:37:46 +01:00
9639e480d9 new exceptions 2019-03-14 16:37:36 +01:00
8520492e4b lock server bug: sending lockstatus converts to littleendian for eiger, lastclient should have other as datatype for eiger 2019-03-14 14:14:14 +01:00
be33102164 checkonline, checkrecieveronline, retval has offline hostnames, online flag should be set no matter what the outcome 2019-03-14 13:18:42 +01:00
5235a87e93 Merge branch 'detshm' into refactor 2019-03-14 12:42:08 +01:00
cb687d805e merge conflict 2019-03-14 12:41:37 +01:00
327d08a016 removing comments, added one check for nullptr, updated current threshold when getting module, removing unsued function from header file (writesettingsfile) 2019-03-14 12:40:01 +01:00
1960460e43 upgraded catch to 2.7 2019-03-14 10:47:43 +01:00
e42e8f5bf6 option for sanitizers 2019-03-14 10:44:31 +01:00
c9422befff fixed loading trimbits 2019-03-14 10:21:18 +01:00
c56efdec8a Merge branch 'refactor' into detshm 2019-03-14 09:11:27 +01:00
14131f93f1 sanitizer compile fail 2019-03-14 09:06:44 +01:00
d21ceb0e75 only construct shared memory from a type with exact size 2019-03-13 17:43:48 +01:00
9a08c85b2a changed the shared memory of slsDetector 2019-03-13 17:38:27 +01:00
85134443de initial 2019-03-13 16:29:29 +01:00
7d3d2a8b31 ctb and moench server: pll vco clock changed from 400 to 800,ctb server: max adc clock from 40 to 65MHz 2019-03-13 16:03:11 +01:00
75ce111344 Merge branch 'shm' into refactor 2019-03-13 15:21:12 +01:00
f8aa0e3d6d removed minor commented lines 2019-03-13 15:19:32 +01:00
2dcef909ca Merge branch 'refactor' into shm 2019-03-13 14:22:26 +01:00
ec18db868f ctb, moench, jungfrau server: changing phase only changes one clock in one direction. ctb and moench phase shift connected to adc clk, instead of run clk 2019-03-13 08:37:45 +01:00
7e793539ca removed typedef for shared struct 2019-03-12 14:42:27 +01:00
d4e4fb8ffe move constructor deleted copy constructor 2019-03-12 14:37:06 +01:00
48e4cec56f minor 2019-03-12 11:52:13 +01:00
3b2c734efd adding tests 2019-03-12 11:43:28 +01:00
507a22ac05 default args 2019-03-12 10:14:24 +01:00
a01d68a61f initial changes 2019-03-12 08:22:07 +01:00
6765fd0dc8 ctb moench: bugfix for fifofull, should not read pattern, same as executing it 2019-03-08 16:59:44 +01:00
ae5938799f Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 16:16:53 +01:00
19b21dac88 Listener bug fix: switching to make_unique ptr side effects, the dummy socket still alive when destructor of listener called 2019-03-08 16:16:40 +01:00
b8f071dcf6 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 15:13:23 +01:00
182f65bc2f always compile commands 2019-03-08 15:13:11 +01:00
1103f56256 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-03-08 09:14:39 +01:00
0553755439 receiver bug fix: with refactor, the callbacks were getting reset upon initialization. fixed 2019-03-08 09:14:29 +01:00
65b8ab5b89 manual 2019-03-07 17:40:56 +01:00
658438df3b ctb moench server update: (fw update): det id changed, status reg looks at anyfifofull instead of somefifofull, datapresent looks at corresponding analog/digital fifo empty, usleep after read strobe to sync different clock 2019-03-07 17:36:35 +01:00
999a2f4d15 Merge pull request #8 from slsdetectorgroup/use-unique-ptr
In Listener, remove raw pointers allocations, use `unique_ptr` instead.
2019-03-06 17:48:28 +01:00
2532df37cc client: added basic fail handling where ommitted 2019-03-06 17:37:13 +01:00
ca817c6ae9 client: update roi on updatedetector, (ctb, moench)moved nchans and databyte calculated to updatenumberofchannels and called for any update in roi, readoutflag or #samples changed (get should not update). ctb,moench server: roi fixed, . gotthard server: bug fix waiting to finish, ad9252 spi call fix. receiver: updated for moench and 10g 2019-03-06 17:25:18 +01:00
0765b330f1 ctb and moench, exptime connects to set pattern wait time with level 0 2019-03-06 15:17:54 +01:00
abc7a9bd2f moench has only analog readout 2019-03-06 14:52:21 +01:00
2676e8b43d receiver: readout flag bug fix, clent:send roi for ctb and moench 2019-03-06 10:55:51 +01:00
d3c1193a71 ctb/moench server, fixed frequency configuring bug, readpattern sleep, detectormode command, jsonheader set even if rxr offline, set speed returnvalue is value not ok/fail, rxr printout missingpackets 64 bit 2019-03-06 10:25:16 +01:00
db232ad00d in Listener, remove raw pointers allocations, use unique_ptr instead.
Add an overload of sls::make_unique for array types.
2019-03-06 09:07:51 +01:00
ceb515d517 Merge pull request #7 from slsdetectorgroup/fix-sprintf-warnings
Fix sprintf warnings
2019-03-05 16:26:18 +01:00
0bb800cc8a manual 2019-03-05 15:48:20 +01:00
04c8a2871d Fix sprintf warnings 2019-03-05 14:34:01 +01:00
1803a5aecc Merge pull request #6 from slsdetectorgroup/fix-typos
Fix typos
2019-03-05 14:19:19 +01:00
c40db94474 Fix typos 2019-03-05 10:43:20 +01:00
c56561bc9f updated ctb and moench, moench not tested 2019-03-05 09:38:10 +01:00
08bd2378f4 slsReceiver bug fix affecting Jungfrau receivers as root (optlen size as int), but setting buffer size is uint32_t size. setting it to uint64_t 2019-03-04 09:41:20 +01:00
8939e23622 jungfrau feature:storagecell_delay added 2019-03-01 15:26:38 +01:00
93192c6e84 bugfix receiver: setImagesize only for ctb, moench 2019-03-01 15:22:39 +01:00
d2d50a56df eiger server/client bug fix: readout flag of -1 2019-03-01 14:08:28 +01:00
8c067437e6 ctb moench: added feature set pattern mask and set pattern bit mask, removed CTB prefix for all the patern functions 2019-03-01 12:28:11 +01:00
35b1ad39f7 ctb moench: feature to set digital io pin delay, changed print from unsuccessful to failed, maxpatternlength in server is inclusive 2019-03-01 10:45:01 +01:00
bb81613900 ctb, moench: implemented led enable feature 2019-03-01 09:00:04 +01:00
ebee9e308e ctb server: reserved not required, as the additional space in last packet can be calcualted 2019-02-28 16:14:45 +01:00
debf3a1b01 ctb readout works with receiver for digital readout, allocate ram in server only if 1g udp, free addr info only when setting new udp detals upon configuring ,brough readout flags to receiver 2019-02-28 16:07:47 +01:00
96584ce397 ctb: enable tengiga in server and moved everything to list implementation 2019-02-28 11:32:10 +01:00
7f2197fc4f slsReceiver & client: 10genable allowed for moench and ctb, ctb server: better way to divide to packets to send via udp 2019-02-28 10:09:54 +01:00
302d9f0633 ctb server: back to 10g def 2019-02-28 08:51:07 +01:00
f80483de6e ctb server: (bug fixes, udp sending feature instead of tcp, better debugging prints,
digital readout mode (fifoempty flag in status register is always up, so it is idle for this readout mode),
pattern loop bugs, max_pattern_length redefined in server side, do not update period for ctb and moench in setreceiver
2019-02-28 08:46:26 +01:00
1fe473e830 client: for set port functions, moved forceupdate outside to automatically close previous function call 2019-02-25 14:45:14 +01:00
966896b942 moench: get zmq goes to the receiver instead of shm, setand get threshold energey updates zmq and shm value, setand get roi anyways goes to the ddetector, so only updates zmq or gets it from rxr 2019-02-25 12:57:44 +01:00
4c7a9cd838 moench: set threshold energy and set roi sets jsonheader 2019-02-25 12:34:35 +01:00
c218e391bb client: rx_tcpport fixed 2019-02-25 11:43:10 +01:00
43ad8b69b3 client: stop and control port get fixed 2019-02-25 09:35:07 +01:00
4c35dd9b5b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-25 09:16:27 +01:00
15fc55f914 client: must print detector or receiver returning error 2019-02-25 09:16:20 +01:00
eecfcae312 ctbserver: dac -1 check limit error 2019-02-25 08:58:35 +01:00
c723b29f9b address and undefined behaviour sanitizers on debug 2019-02-22 19:55:56 +01:00
9b81143c68 Merge branch 'ctbFixes' into refactor 2019-02-22 13:58:51 +01:00
20edf61e30 ctb server: removed unnecessary prints, resulting in a bug fix for slow adc temp 2019-02-22 13:53:59 +01:00
a1a6a5dbaa ctb server: slow adc temp fixed 2019-02-22 13:22:40 +01:00
a8121ae108 ctb server: vio should be off at start up 2019-02-22 09:03:30 +01:00
40d15264c5 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-21 16:25:07 +01:00
b2e6b78e20 Merge branch 'ctbBugFixes' into refactor 2019-02-21 16:24:56 +01:00
f5244faa02 moench: adding enums for zmq parameters, needs modification in naming 2019-02-21 16:01:24 +01:00
421dbdb9b5 ctb server: including moench as well for programfpga and other client ctb implementations 2019-02-21 16:00:40 +01:00
617f3d2600 ctb server: modified program fpag in case of errors 2019-02-21 15:56:51 +01:00
a4f1b7670f ctb server bug fixes:update client, get period left, getid(api and serial number), restrict setting vchip, allow write adc 2019-02-21 09:37:49 +01:00
09546a8632 ctb server:
- allowed flags resetfpga and programfpga for moench and ctb
- set a minimum voltage for vio as it powers the fpga (1200mV)
- changed the min and max for vchip and power regulators due to tolerance
- fixed pattern read function
- fixed minor bugs with input of ctb patterns(waittime) and mode other than 1
- fixed calibration current register for i2c for tolerance (/1.2268)
- fixed current readout of i2c
- added digital, analog and normal readouts for flags
2019-02-20 15:36:34 +01:00
29d4eb8b41 catch by ref 2019-02-20 10:29:15 +01:00
775bde76c9 ctb server: power regulator adjusted for precision 2019-02-20 09:34:55 +01:00
d876cb6da6 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-20 08:47:13 +01:00
69f361468e ctb: power regulators (set dac, get dac, get adc of voltage and current) works 2019-02-20 08:45:34 +01:00
b52c6b05b8 link and format 2019-02-16 16:46:09 +01:00
c93f88b7e5 ctb server: fixed dacs, power regulators and vchip 2019-02-15 17:08:49 +01:00
d0e1289c1b replaced sprintf on the same buffer with strcat 2019-02-15 15:39:13 +01:00
4a8a72c447 ctb server: vlimit not impl, adc in degrees 2019-02-14 18:28:32 +01:00
501c579f6b users: added json parameter for moench api 2019-02-14 18:03:49 +01:00
722883531d reverted json_emin, emax, framemode and detectormode. All json parameters for moench will go through rx_jsonpara using strings 2019-02-14 17:43:28 +01:00
d2ba206216 Merge branch 'findzmq' into refactor 2019-02-14 17:35:07 +01:00
6be47d936f conflicts resolved 2019-02-14 17:32:33 +01:00
9aaca14b01 CMakeLists.txt: reordering and removing those we dont use anymore, removed all the Makefiles (except the ones for the detector servers) 2019-02-14 16:15:43 +01:00
aaae6d854c changed remaining cmake options to have SLS_ prefix 2019-02-14 15:42:04 +01:00
c91c2c224a Merge branch 'add-cmake-packages' of https://github.com/esrf-bliss/slsDetectorPackage into esrf-bliss-add-cmake-packages 2019-02-14 10:36:41 +01:00
2fdfd33f97 gitignore: added .o files for the servers 2019-02-14 09:30:50 +01:00
230b26a680 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-13 20:19:16 +01:00
46aa7769cc client: added command line and for APIfor framemode and detectormode. Refactorinng required in the future 2019-02-13 20:19:08 +01:00
59f3f0c764 cleaner cmake 2019-02-13 15:59:42 +01:00
d46d96ecca fixed linking zmq 2019-02-13 15:35:40 +01:00
82584dd1a8 cmake 2019-02-13 15:13:21 +01:00
b65e0a1f01 include dirs 2019-02-13 15:12:33 +01:00
f9417a23e0 FindZeroMq 2019-02-13 14:53:23 +01:00
fd95550724 client: fix for json header values being integer 2019-02-13 12:43:56 +01:00
c064dc84ae Add generation and install of CMake packages 2019-02-13 10:45:01 +01:00
01e3cb8d5e Cherry pick commit from 4.0.1 about CMake packages 2019-02-13 09:44:45 +01:00
c6ac0f8ebc Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-02-13 09:37:45 +01:00
f9be8b89ac added functionality to set additional json header key value pairs for prototype ctb, server fixed for eiger compile from ctb integration 2019-02-13 09:37:31 +01:00
75a75b6cf6 Merge pull request #3 from esrf-bliss/add-slsReceiver-ctor-overload
merge for Add slsReceiver ctor overload and sls::make_unique
2019-02-13 09:10:33 +01:00
f125b94a7d Use sls::make_unique<> 2019-02-13 08:59:26 +01:00
b18391330e Add slsReceiverUsers(int tcpip_port_no) overload
Use std::unique_ptr<> instead of raw pointers
2019-02-12 17:01:46 +01:00
2bcf88e434 added receiverUsers as public header 2019-02-12 15:26:08 +01:00
031a11c4f7 removed all the warnings and errors from the merge, also removed added -wextra compiler flag, (yet to add additional commands for moench) 2019-02-12 11:09:19 +01:00
a64b34610a merge from developer (without the additional json header implementations) 2019-02-12 09:35:24 +01:00
ed74e710d6 merge from 4.0.1 2019-02-11 14:37:54 +01:00
907d1655d1 merge from 4.0.1 2019-02-11 14:04:09 +01:00
985b2eba4d ctb registers updated 2019-02-07 18:05:15 +01:00
a5ee9fbdba ctb bug fixes: pattern generator, vchip, dacs 2019-02-07 16:51:18 +01:00
166541bd15 ctb adc phase get fix 2019-02-06 19:05:11 +01:00
140996fae6 ctb adc fix, update detector fix, acq error fix 2019-02-06 18:50:50 +01:00
3f43767d38 ctb client updated 2019-02-06 17:45:19 +01:00
a76cc90972 adc command line bug, ctb api added to client 2019-02-06 17:25:36 +01:00
0c1a3b7756 eiger bug fix: multi hv and eiger should not return -1 if different, ctb : dacs are 24 not 16 2019-02-06 17:07:13 +01:00
18ab437ae5 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2019-02-06 16:30:59 +01:00
3b56091e2f new header for raw files 2019-02-06 16:30:37 +01:00
dcad6c80ce minor modifications for interpolation and mythe data structure 2019-02-06 16:22:17 +01:00
076faa62e0 ctb server: server starts up good. Need to debug each function in detail 2019-02-06 15:50:44 +01:00
bb37915419 stdexcept added to compile 2019-02-05 14:44:49 +01:00
6abfdcb2c8 manual 2019-02-04 10:48:42 +01:00
536c853d79 hack for receiver port 2019-01-25 19:41:33 +01:00
f1d055138c moved updateDetector/Receiver 2019-01-25 19:12:28 +01:00
82ce6b639c more cout 2019-01-25 16:53:19 +01:00
7d9417dffe fixed debug couts 2019-01-25 16:48:04 +01:00
89ee1d5bcf new socket for slsDetector 2019-01-25 16:44:29 +01:00
a1c0d28ddb changed constructor 2019-01-24 11:12:24 +01:00
c3472f295b split client and server interface 2019-01-23 12:07:44 +01:00
99a1c609f1 starting to add new Socket interface 2019-01-23 11:47:13 +01:00
3eca4c0535 typo 2019-01-21 14:44:06 +01:00
b200138730 data types and format 2019-01-21 14:43:24 +01:00
a4fec1e750 format and no check before delete 2019-01-21 12:10:00 +01:00
46036e5dde braces around statements 2019-01-21 11:41:19 +01:00
d2ed245d1d format and removed nullptr check before delete 2019-01-21 11:18:27 +01:00
b74aed91dc consistent naming between header and source file 2019-01-21 11:11:39 +01:00
e1ec60c9c1 cleaning up tests for command line parser 2019-01-21 10:45:43 +01:00
603b217b54 clang-tidy modernize 2019-01-18 15:15:39 +01:00
449e4da892 removed potential memory leak in readSettingsFile 2019-01-18 15:13:17 +01:00
1ec9d950d5 malloc to new 2019-01-18 15:00:52 +01:00
1b28cc88ff step one project reorganization 2019-01-18 14:41:04 +01:00
8d6ee6ff46 moved shm deleted .project 2019-01-18 11:40:10 +01:00
10539f8533 new getDetectorType functions 2019-01-18 10:53:49 +01:00
13d6d3f866 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-17 17:30:46 +01:00
eff17371a5 removed virtual 2019-01-17 17:30:36 +01:00
13f9b9929a slsreceiver: removed option to start receiver with config file, redundant as the only option is receiver tcp port 2019-01-17 15:17:08 +01:00
b07492be6f removing multiSlsDetectorCommand and using namespace std 2019-01-17 14:45:51 +01:00
c05829031f removed get from the users class and changed put 2019-01-17 14:20:03 +01:00
76da6a07aa using new CmdLineParser 2019-01-16 18:46:34 +01:00
db0807bf7b adding cmdline parser 2019-01-16 16:50:19 +01:00
b19b2a044c minor 2019-01-16 15:22:18 +01:00
1ebe0f5624 spelling 2019-01-16 15:18:49 +01:00
49f71ffca7 project wide nullptr fix 2019-01-16 15:15:29 +01:00
80a1a3d796 moved ClientInterface to src 2019-01-16 15:10:24 +01:00
683a859d4c cleanup 2019-01-16 14:56:01 +01:00
37ebeaed7b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-16 14:27:21 +01:00
0f688bb249 unique_ptr in multiSlsDetectorClient 2019-01-16 14:27:08 +01:00
1ce8f3d092 udpSocket might still exist when error in creation, will conver to unique ptr later 2019-01-16 13:37:00 +01:00
10a34cce2d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-16 13:29:11 +01:00
7fe9251a3b ctb server compiles 2019-01-16 13:28:50 +01:00
9e5ec6a57b only destroy sem if it was initialized 2019-01-16 11:54:01 +01:00
901785b818 only destroy sem if it was initialized 2019-01-16 11:51:50 +01:00
68545f2b26 removed pointer in multiSlsDetectorClient 2019-01-16 10:56:51 +01:00
fe09f6d062 cleaning up slsDetectorCommand 2019-01-16 10:29:10 +01:00
9d9251293d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-15 20:06:19 +01:00
d240ab7a29 moench server compiles 2019-01-15 20:06:11 +01:00
dd93117b06 strcpy to sls::strcpy_safe 2019-01-15 17:36:21 +01:00
4b9e41e23b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-15 17:16:19 +01:00
dd5bd60429 moench server: list.h fixed 2019-01-15 17:16:00 +01:00
5e032c2c3e added tests for compiler version 2019-01-15 17:03:04 +01:00
7303734b19 removing static libs and changing flags 2019-01-15 16:56:33 +01:00
8bc9fa54fc insignificant print 2019-01-15 13:18:40 +01:00
a9fb476543 changing signature from std::string to const std::string& for client receiver ip functions 2019-01-15 13:14:43 +01:00
f2669adda7 Merge branch 'refactor' into networkParameterFix 2019-01-15 12:12:53 +01:00
29c09ab381 bugfix udpport mixup for udpport2 in commands 2019-01-15 12:12:14 +01:00
8738700e8a insignificant 2019-01-15 11:58:59 +01:00
c1c302f740 removing networkPArameter function complete 2019-01-14 20:42:15 +01:00
bc9d5718c9 typo 2019-01-14 15:38:48 +01:00
991567ba1c strcpy and cleanup of configuremac 2019-01-14 15:33:35 +01:00
f0b29cfecc signatures fixed for setnetworkparameter 2019-01-14 15:26:58 +01:00
3c41ec4a7a in the process of splitting network parameter function 2019-01-14 10:03:40 +01:00
172c9218d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 16:56:43 +01:00
b7582e93d3 working on removing undefined beaviour in configureMAC 2019-01-11 16:56:31 +01:00
5ae31bc438 receiver bug fix: dataprocess gappixels enable check to create tempbuffer always true 2019-01-11 15:21:16 +01:00
1941e90697 moench basic tearing down 2019-01-11 15:19:08 +01:00
363f4f1da0 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 14:49:09 +01:00
1bbb352743 jungfrau server: pll moved out to remove redundancy 2019-01-11 14:48:58 +01:00
5ea5e83236 removing local variable in slsDetector::setTCPSocket and adding some const string& 2019-01-11 14:38:56 +01:00
b46fb5e9c4 deduce parallel call only on function signature and some const& 2019-01-11 12:33:11 +01:00
0841df98d4 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 11:27:52 +01:00
1bd0b33806 functions not overriding base and unitialized use 2019-01-11 11:27:48 +01:00
de2ebad2ed receiver: removed unused silentmode from DataStreamer 2019-01-11 11:19:16 +01:00
2a988c7ffa Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-11 11:11:56 +01:00
94979b5824 changes to moench 2019-01-11 11:11:50 +01:00
c6a597c3ec minor changes and removed W flag not found 2019-01-11 11:07:50 +01:00
288ef0a514 acquiringDone not used, removing 2019-01-10 17:35:06 +01:00
818be3bb85 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-10 16:38:50 +01:00
d01e8d24c2 const std::string& for filenames etc. 2019-01-10 16:38:37 +01:00
b38a41493b bug fix, clock divider hangs due to incorrect number of arguments 2019-01-10 16:27:23 +01:00
37c22dfeb2 range based loops and bool literals 2019-01-10 16:07:47 +01:00
15235ab4fc default initializer for slsDetector 2019-01-10 16:02:29 +01:00
230c335c29 using default initializer arguments for multiSlsDetector 2019-01-10 15:53:09 +01:00
0f50b9f161 clang-tidy nullptr 2019-01-10 15:28:43 +01:00
58f97d4f46 clang-tidy push_back -> emplace_back 2019-01-10 15:24:58 +01:00
42ed65076c jungfrau server works now, need to be tested with pedestals for dac 2019-01-10 12:22:43 +01:00
b5b5ce5c37 eiger server works 2019-01-10 11:03:31 +01:00
55c57e4c3f Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-10 10:35:58 +01:00
52785c6642 gotthard server works 2019-01-10 10:35:49 +01:00
f815e7ffb6 long -> int64_t 2019-01-10 09:33:59 +01:00
0a2c1d1406 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2019-01-09 17:41:19 +01:00
b1570bde9c updated max1932, modified ltc2620 2019-01-09 17:41:10 +01:00
93ec5f5ef7 minor 2019-01-09 16:22:14 +01:00
feaa276284 range based loops 2019-01-09 14:20:48 +01:00
26f8ca3221 clang-tidy fix from NULL 0 etc to nullptr 2019-01-09 12:02:49 +01:00
b7aac059c3 moved string stuff to string_utils.h/.cpp 2019-01-09 11:19:16 +01:00
81a49babda gotthard server fixed: also for revision 1 boards 2019-01-08 11:52:14 +01:00
553633651a insignificant 2019-01-08 07:52:24 +01:00
bf4ba9d08b some minor modifications 2019-01-08 06:57:04 +01:00
4b007b003a gotthard server works, fine tuning left 2019-01-08 06:52:28 +01:00
06a6d53a3f gotthard, cmakefiles language line removed 2019-01-04 16:34:34 +01:00
bfda07d262 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-19 17:16:54 +01:00
a013734af8 moench and lookinginto max1932 2018-12-19 17:16:41 +01:00
84a67870a0 slight cleanup of dumpDetectorSetup 2018-12-19 16:38:18 +01:00
f161d68efc fix in ltc, added moench, separated servers, left to do max1932, client side for moench and more detailed in ctb server side 2018-12-19 16:38:18 +01:00
1ca8bf204a added string_utils and strcpy_safe 2018-12-19 15:44:21 +01:00
89d9204e1c changed fd and some unused store 2018-12-19 12:24:02 +01:00
88b9a93b3e fixed 2018-12-19 11:51:42 +01:00
1af2d95462 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-19 11:45:24 +01:00
d07f53cd6f removed using namespace std in slsDetectorCommand.cpp 2018-12-19 11:31:49 +01:00
6533a474d1 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-18 18:07:27 +01:00
7a432befa3 removed gui from meta.yaml 2018-12-17 15:19:14 +01:00
f68321af43 disable GUI in conda build 2018-12-17 15:05:22 +01:00
2dd8093905 added project to CMakeLists and path for installing 2018-12-17 14:55:19 +01:00
9d3134c3de Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2018-12-14 18:11:46 +01:00
563d644d2f Improved the interpolation with adaptive bins and implemented flat field correction when saving the interpolated images 2018-12-14 18:11:12 +01:00
659faa9aaa added it back 2018-12-12 16:31:36 +01:00
feeaebb7e4 removed branch condition 2018-12-12 16:28:58 +01:00
547efc48e3 added conda recipe 2018-12-12 16:27:35 +01:00
e379b98631 added header files 2018-12-12 16:10:01 +01:00
f98259adc9 added build requirements to subpackages 2018-12-12 15:50:55 +01:00
88e0914405 added conda recipe as a test 2018-12-12 15:23:24 +01:00
1c59c5c4f4 in between 2018-12-12 11:20:39 +01:00
79693a38f5 in between 2018-12-12 11:20:27 +01:00
9d8aa5fe91 Works with CTB5 (and should be backward compatible with the rest) 2018-12-06 17:26:54 +01:00
dceea92f1a Fixed big problem with CPU readout 2018-12-06 12:58:54 +01:00
2815458652 Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2018-12-06 10:55:32 +01:00
d8140d8db9 anna version 2018-12-06 10:55:18 +01:00
87f7563035 gothard server bug fix: conf gain val instead of always dynamic gain 2018-12-05 10:35:57 +01:00
a4de4bb475 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-12-04 16:05:17 +01:00
b3393fc18b few gotthard bug fixes, including cs mask for adc 2018-12-04 16:02:24 +01:00
4e65a1d964 gotthard server: minor fixes 2018-12-04 14:12:11 +01:00
98b5e893b1 rd strobe fifo for only analog fifos 2018-12-03 14:33:32 +01:00
8f3f9caf2b almost done with ctb update, need to do slow adcs, split to moench and ctb 2018-11-30 10:39:26 +01:00
d0665ce075 tests for socket 2018-11-29 12:21:02 +01:00
284ce30a81 starting tests 2018-11-28 14:45:50 +01:00
4d0090dfcc ctb server: added brackets around char* in write to socket 2018-11-21 15:57:46 +01:00
e98d60c26e updated ctb binary 2018-11-21 15:35:59 +01:00
cd3135c01d loophole for blackfin not checking the data sent, hence splitting data to a few packets when size > 30k bytes 2018-11-21 15:34:58 +01:00
40dedb8b07 manual 2018-11-16 17:47:41 +01:00
c19c787904 adcreg command line print 2018-11-12 15:14:37 +01:00
e3a0c1373c created AD9252 for old gotthard modules in use, it runs in both roi and non roi for old and new modules, data needs to be checked by Jiaguo to confirm some parts of the code that has FIXME to be checked later 2018-11-12 13:51:51 +01:00
8942098a90 gotthard works, data to be authenticated when personnel available 2018-11-09 15:25:26 +01:00
2e83db7d45 changed cluster file format 2018-11-09 12:34:14 +01:00
89fa30ee4b client compiles 2018-11-08 18:10:03 +01:00
2e37eda9d9 gotthard compiles 2018-11-08 18:09:11 +01:00
a37be4b2e3 fixed eiger server compiler errors 2018-11-08 17:22:59 +01:00
7a99d4155a fixed jungfrau server compile errors 2018-11-08 17:20:41 +01:00
91dd176a0f gotthard server done editing 2018-11-08 17:15:48 +01:00
a99584a0da removed ndac from sls_detector_module and from the servers (not used), fixed setting module by eiger bug in sending number of channels 2018-11-02 17:08:25 +01:00
d1c8d0b01c jungfrau virtual server compiles 2018-11-02 14:52:27 +01:00
833f0c164c reciever hdf5 compiling error fixed 2018-11-02 14:31:36 +01:00
742d4e6cb7 bug fix for mac addr format check 2018-11-02 14:13:59 +01:00
d55c39ef08 minor print fixe 2018-11-02 14:09:40 +01:00
a47db85350 gappixels only for eiger in receiver 2018-11-02 13:56:59 +01:00
b43be57b6e jungfrau server works 2018-11-02 13:50:00 +01:00
817736fcd5 after merging with developer 2018-11-02 10:48:06 +01:00
92123069ce virtual eiger server compiled 2018-10-31 15:13:31 +01:00
17027962ea log fix for eiger server 2018-10-31 15:02:43 +01:00
e0cbbde01d log fix for servers. eiger server done 2018-10-31 14:57:22 +01:00
aec8c031de kept the same client interface:tb changed when fixing error codes/exceptions, modified multi print, fixed roi bug in indexing to sls 2018-10-31 14:30:30 +01:00
3d40d5d058 format 2018-10-30 14:57:30 +01:00
af550b4c70 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-30 14:46:19 +01:00
70a1b87603 merge conflict resolved 2018-10-30 14:31:20 +01:00
dfa8cf7381 runs, prints right in reciever 2018-10-30 13:35:20 +01:00
92fc837eb4 compiles, but doesnt run 2018-10-29 15:23:52 +01:00
33ac63d14a still updating slsdetector.cpp 2018-10-26 17:40:18 +02:00
cf87b6ca83 still updating slsdetector.cpp 2018-10-25 16:24:05 +02:00
660ed4c177 changed users set/getDetectorsize API to include a single ROI 2018-10-25 14:11:40 +02:00
261849d69c eiger server compiles, client side of interface to do 2018-10-23 16:20:40 +02:00
0d96272db5 manual 2018-10-23 11:29:27 +02:00
129e12fd97 moved test framework 2018-10-22 11:21:18 +02:00
ab2eb607c8 replced usleep with chrono and thread 2018-10-19 15:47:36 +02:00
5671f1c87b using split in add multiple detectors 2018-10-19 10:30:31 +02:00
ff440f1325 clang-format on multi detector 2018-10-19 10:23:06 +02:00
dfad145e14 still in the process of interfacing det and client 2018-10-18 18:08:34 +02:00
500304024d added base clang format 2018-10-18 17:06:43 +02:00
86fb843021 in the process of rewriting detector client interface 2018-10-18 10:58:48 +02:00
c95bc84458 formatting 2018-10-17 18:13:01 +02:00
058de39d40 const qualifying 2018-10-17 17:51:26 +02:00
b44039361d renamed joinThread getter setter 2018-10-17 17:47:19 +02:00
0070a79838 removed command threaded 2018-10-17 17:35:55 +02:00
1d14dc6ff4 void signature of processData 2018-10-17 16:58:09 +02:00
1d65063088 using std::mutex and std::thread in multi detector 2018-10-17 16:56:01 +02:00
5c2ff84c0e removed unused variable numberofJobs in receiver implementation 2018-10-17 11:39:27 +02:00
42c4e3e1a1 cleanup 2018-10-16 17:47:48 +02:00
014dfaa251 moved to vector of unique pointer in slsReceiverImplementation 2018-10-16 17:30:43 +02:00
38a6393dde fixed probelem with multiThreadedInterpolatingDetector 2018-10-16 17:17:24 +02:00
b50d359ee6 better name 2018-10-16 15:53:01 +02:00
b5a2c91873 removed printf with same source and dest 2018-10-16 15:50:51 +02:00
3c9b1884d3 removed conditional operator and moved to range for 2018-10-16 15:25:15 +02:00
66e79dc9a9 refactoring startReadout 2018-10-16 15:08:59 +02:00
5b8dfd7943 range based for loops for reset acq count 2018-10-16 14:34:34 +02:00
178b832223 funcs name only in c++, bug fix:slsdetectorusers not deleting multislsdetectorcommand object, bug fix: programfpga does not delete fpgasrc malloc if returning in failure 2018-10-12 17:37:39 +02:00
8df63b7767 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-12 17:03:28 +02:00
8382d0f5f9 receiver tcp interface updated 2018-10-12 17:03:19 +02:00
1e2ffae690 setNetworkParameter dont split strings 2018-10-12 11:56:47 +02:00
f6357a667f setSettingsDir works as the other functions 2018-10-12 11:39:11 +02:00
4cdd766a8e cleaning readConfigFile 2018-10-12 09:57:46 +02:00
c3289a973f cleaned up read config file slightly 2018-10-11 17:45:57 +02:00
e921dbb6a7 minor 2018-10-11 16:46:34 +02:00
1895ee1ebe minor 2018-10-11 16:19:44 +02:00
22e8c52bd8 more style 2018-10-11 16:08:02 +02:00
c31c851e88 moved communication, jungfrau 2018-10-11 15:58:49 +02:00
565739f6a2 eiger server, moved comunication_funcs 2018-10-11 15:55:08 +02:00
43c6cae25b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 15:53:42 +02:00
d2c8c0a2eb gotthard server, moved communication_funcs to slsDetectorServer 2018-10-11 15:53:30 +02:00
d96cbe02a2 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 15:52:48 +02:00
795e147e7d stylistic cleanup 2018-10-11 15:52:39 +02:00
f806759af3 const string& 2018-10-11 15:25:29 +02:00
316ba01297 size of writeConfigFile 2018-10-11 15:19:26 +02:00
a28932bb6c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 14:43:47 +02:00
4d69b6d3a1 added address sanitizer for debug mode 2018-10-11 14:43:32 +02:00
302f31678f updated gotthard binary, not run 2018-10-11 14:40:52 +02:00
32924def33 updated jungfrau server binary 2018-10-11 14:33:13 +02:00
ee20932392 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 14:20:58 +02:00
0ee7f67965 detector servers moved out of slsdetector software, eiger server compiles with new headers 2018-10-11 14:20:50 +02:00
c24a9b223c combined all the funcs into one, servers need to be recompiled 2018-10-11 13:57:47 +02:00
f7809bda3b Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 13:54:37 +02:00
5682466356 remove pointers and try block from get detector type 2018-10-11 13:54:25 +02:00
b82fca2c8e removed warnings 2018-10-11 13:32:24 +02:00
576de404d4 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-11 12:25:27 +02:00
5a356534e6 refactor receiver client interface, moved defs into one sls_detector_defs.h 2018-10-11 12:25:18 +02:00
f735c86b93 removing more pointers 2018-10-11 12:14:46 +02:00
6aa0029580 changing pointers to local variables 2018-10-11 12:08:07 +02:00
2216574d34 check empty instead of strcmp 2018-10-11 11:51:54 +02:00
4aa720eecb added data structure for moench03 rectangual pixels module 019 2018-10-11 09:32:47 +02:00
d0950ba001 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 18:11:23 +02:00
f69e9d0df4 refactored client interface (client ot receiveR) 2018-10-10 18:09:14 +02:00
8dc0d72028 minor formatting 2018-10-10 17:46:28 +02:00
5f6f276f70 moved initDetectorStructure into initSharedMemory 2018-10-10 17:41:13 +02:00
fd7060ef6c removed pointer to shared memory in some multi functions 2018-10-10 14:18:47 +02:00
e1d570e8ce client specifies index of receiver returned error, skeleton of including clientinterface in receiver 2018-10-10 13:15:16 +02:00
6d9530ee1d Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 12:24:20 +02:00
b981fe78ef connected command to execute command in receiver pc 2018-10-10 12:23:55 +02:00
2cd0841ea3 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 12:17:36 +02:00
74bd223fda minor cleanup 2018-10-10 12:17:28 +02:00
6147383677 commented out concatResultOrPos which seems not to be used 2018-10-10 12:01:30 +02:00
5e7e7d3c33 moved client interface to common folder as receiver wills tart using it as well 2018-10-10 12:00:47 +02:00
938dd5e06c Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-10 11:55:49 +02:00
d685cb8ff4 moved detectors and zmqSocket to unique pointers 2018-10-10 11:55:37 +02:00
78bfc9d0a5 insignificant, renamed recieverInterface to have a capital letter in class name 2018-10-10 11:43:35 +02:00
4b166b726e bug fix, start receiver fail does not return 2018-10-10 11:24:17 +02:00
9ca163dfc9 adding std::launch:async parameter to make it parallel by default for sl7 (seems default for fedora) 2018-10-10 10:51:32 +02:00
f2da42a305 overwrite enabled by default 2018-10-10 10:28:38 +02:00
64f4188a00 removed ms mutex , not used anyway 2018-10-10 10:16:41 +02:00
17a6322f7c receiver runs but does not overwrite due to wx, async doesnt seems parallel problem, acquire gets stuck 2018-10-10 10:12:58 +02:00
8151f1d5fe receiver compiles 2018-10-09 18:02:47 +02:00
7d5b24fe33 solved errors with client compile, rxr yet to do 2018-10-09 13:43:50 +02:00
4bcc24a59f some more changes, yet to do receiver 2018-10-09 12:31:12 +02:00
45b00c4e7d gotthard server updated, yet to run 2018-10-09 10:24:17 +02:00
923a7e8936 eiger and jungfrau server compiles, gotthard and receiver left to do 2018-10-08 14:38:35 +02:00
b9f97f42a6 recovered readme.md 2018-10-08 10:47:16 +02:00
f7a6938366 client moved everythign from common files to slsSupportLin/include 2018-10-08 10:45:56 +02:00
70f55ff788 removed MySocketTCP.cpp 2018-10-08 10:24:57 +02:00
7ffa72092f moved patterngenerator to slsDetectorServers, removed commitVersions 2018-10-08 10:12:28 +02:00
1c78400369 client compiles, more changes required 2018-10-08 09:34:08 +02:00
b5c35ddeac slsdetector and users updated to reflect new signatures, not yet compiled 2018-10-05 15:28:25 +02:00
d68c3b73a8 pdf manual 2018-10-05 14:30:54 +02:00
ab8b07f2ee client multi is updated with argument c++11 threading, need to update sls detector with arguments and removing imod 2018-10-04 17:24:37 +02:00
1c70f9ec65 mutli.cpp updated half (without masking multi error and no check on detectors boundaries for adding exceptions later. done upto savecalibrationfile 2018-10-03 17:56:04 +02:00
251a7c2446 Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-03 15:28:22 +02:00
cf37725e04 updated command.cpp to have all the indices including default ones 2018-10-03 15:28:08 +02:00
287cd118b0 example 2018-10-03 14:56:56 +02:00
21ca289ebf Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor 2018-10-03 14:51:44 +02:00
02acaf13c5 added example 2018-10-03 14:51:35 +02:00
c6d2902539 updating indices in slsdetectorcommand 2018-10-03 14:31:43 +02:00
2aa7e7d2ff added catch for unit testing 2018-10-03 14:04:40 +02:00
fefdf8e7d6 slsSupportLib and parallel call using variadic templates 2018-10-03 14:02:41 +02:00
6bfc212f19 client multi.cpp some more changes 2018-10-03 12:53:50 +02:00
a1b24a637b client multi.cpp modified common out of bounds error 2018-10-03 12:47:20 +02:00
40ae74bb99 client multi.cpp getid and checkversioncompatibility are examples of how it might look like 2018-10-03 12:31:00 +02:00
586c664a43 client multi.h comments and some signature updated 2018-10-03 11:57:18 +02:00
fdcd633769 client: multi added indices for detpos in function signature for required 2018-10-03 11:41:50 +02:00
70ea4b48c3 client: removed slsDetectorutils and postprocessing. yet to compile, yet to add detpos index for every multi sls detector command and call from command interface, removed multiple threading, yet to interface with eriks single template for multiple threading 2018-10-03 11:15:39 +02:00
dafbc970e3 client stage2 ongoing, utils removed but not compile ready; left to do imod for every multi, connect client to multi 2018-10-02 18:13:00 +02:00
100c1b81f8 moved all the common header files from receiverSoftware to commonFiles 2018-10-02 16:32:37 +02:00
757bc89d05 moved common files outside slsDetectorSoftware 2018-10-02 16:07:53 +02:00
97934e323c removed actions 2018-10-02 15:51:58 +02:00
f4cfafb2bb removed calibration folder 2018-10-02 15:17:41 +02:00
c248b12455 refactored ONLY THE CLIENT first stage, compiles 2018-10-02 15:15:35 +02:00
def79807f6 merge conflict resolved from 4.0.0 2018-09-28 16:28:21 +02:00
ae8678cdc2 New Zmq header staructur implemented and works, still different number of pixels in the GUI should be fixed (but it does not crash) 2018-09-25 09:36:47 +02:00
c52025dd7c manual 2018-09-21 12:04:33 +02:00
7b4910ee87 branch 2018-09-17 14:59:08 +02:00
021212372b root converter 2018-09-17 14:54:19 +02:00
e8612a481c receonstruction 2018-09-17 12:47:18 +02:00
8773de93e9 server first 2018-09-17 11:03:31 +02:00
ef20fa6f3c start documenting cbf converter 2018-09-14 18:05:28 +02:00
19e7ced332 moench zmq process implemented - command implementation is missing 2018-09-13 16:07:43 +02:00
f288390255 Zmq communication uses additional headers, moench processing fixed 2018-09-11 17:05:11 +02:00
30e060b3b1 gap pixels basics 2018-09-04 11:16:31 +02:00
29ba9ae6f7 some updates for 4.0.0 2018-09-03 16:34:06 +02:00
2b2b53f598 update 2018-09-03 13:57:21 +02:00
1ebb07198a deadtimesubperiod 2018-08-31 21:36:38 +02:00
ed0b22b500 updated binaries 2018-08-24 13:18:51 +02:00
548036a602 selective merge from branch 4.0.0 conflict fix 2018-08-24 13:12:55 +02:00
1b55fdad86 merged selected patches from 4.0.0 branch 2018-08-24 13:10:16 +02:00
83600fcb15 Added data structure for moench02 dynamic gain switching 2018-08-17 12:29:07 +02:00
921ae01bbe jungfrau module data, fixel moench02 for jctb and jctb server actualized for both buses 2018-08-13 16:27:36 +02:00
1479 changed files with 793331 additions and 60374 deletions

6
.clang-format Normal file
View File

@ -0,0 +1,6 @@
BasedOnStyle: LLVM
IndentWidth: 4
UseTab: Never
ColumnLimit: 80
AlignConsecutiveAssignments: false

32
.clang-tidy Normal file
View File

@ -0,0 +1,32 @@
---
Checks: '*,
-android-cloexec-fopen,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-fuchsia*,
-readability-else-after-return,
-readability-avoid-const-params-in-decls,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-pro-type-reinterpret-cast,
-llvm-header-guard,
-readability-static-accessed-through-instance,
-readability-braces-around-statements,
-hicpp-signed-bitwise,
-hicpp-no-array-decay,
-hicpp-braces-around-statements,
-google-runtime-references,
-google-readability-todo,
-google-readability-braces-around-statements'
HeaderFilterRegex: \.h
AnalyzeTemporaryDtors: false
FormatStyle: none
CheckOptions:
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
# - { key: readability-identifier-naming.FunctionCase, value: lower_case }
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
# - { key: readability-identifier-naming.MethodCase, value: CamelCase }
# - { key: readability-identifier-naming.StructCase, value: CamelCase }
# - { key: readability-identifier-naming.VariableCase, value: lower_case }
- { key: readability-identifier-naming.GlobalConstantCase, value: UPPER_CASE }
...

11
.gitignore vendored
View File

@ -1,8 +1,19 @@
.cproject
.project
bin/
.settings
*.aux
*.log
*.out
*.toc
*.o
.*
build
docs/
RELEASE.txt
Testing/
*.pyc
*/__pycache__/*

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "python/pybind11"]
path = python/pybind11
url = https://github.com/pybind/pybind11.git

50
.travis.yml Normal file
View File

@ -0,0 +1,50 @@
sudo: false
language: cpp
os: linux
env:
matrix:
- CONDA_PY=3.6
- CONDA_PY=3.7
dist: trusty
install:
- sudo apt-get update
- ldd --version
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- rm -f miniconda.sh
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda config --add channels conda-forge
- conda config --add channels slsdetectorgroup
- conda update conda
- conda update --all
- conda install conda-build=3.17
- conda install anaconda-client
- conda install conda-verify
# Useful for debugging any issues with conda
- conda info -a
# Replace dep1 dep2 ... with your dependencies
- conda create -q -n test-environment python=$CONDA_PY
- source activate test-environment
- conda-build .
script:
- CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2
deploy:
provider: script
script: find $HOME/miniconda/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -t $CONDA_TOKEN upload --force {} \;
on:
branch: developer

185
CMakeLists.txt Executable file
View File

@ -0,0 +1,185 @@
cmake_minimum_required(VERSION 3.9)
project(slsDetectorPackage)
set(PROJECT_VERSION 5.0.0)
include(cmake/project_version.cmake)
include(CheckIPOSupported)
# Include additional modules that are used unconditionally
include(GNUInstallDirs)
# If conda build, always set lib dir to 'lib'
if($ENV{CONDA_BUILD})
set(CMAKE_INSTALL_LIBDIR "lib")
endif()
# Set lower / upper case project names
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
# Set targets export name (used by slsDetectorPackage and dependencies)
set(TARGETS_EXPORT_NAME "${PROJECT_NAME_LOWER}-targets")
#set(namespace "${PROJECT_NAME}::")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
# Check if project is being used directly or via add_subdirectory
set(SLS_MASTER_PROJECT OFF)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(SLS_MASTER_PROJECT ON)
endif()
option (SLS_USE_HDF5 "HDF5 File format" OFF)
option (SLS_USE_TEXTCLIENT "Text Client" ON)
option (SLS_USE_RECEIVER "Receiver" ON)
option (SLS_USE_GUI "GUI" OFF)
option (SLS_USE_TESTS "TESTS" OFF)
option (SLS_USE_INTEGRATION_TESTS "Integration Tests" OFF)
option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF)
option(SLS_USE_PYTHON "Python bindings" OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "No build type selected, default to Release")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (default Release)" FORCE)
endif()
#Add two fake libraries to manage options
add_library(slsProjectOptions INTERFACE)
add_library(slsProjectWarnings INTERFACE)
target_compile_features(slsProjectOptions INTERFACE cxx_std_11)
target_compile_options(slsProjectWarnings INTERFACE
-Wall
-Wextra
-Wno-unused-parameter #Needs to be slowly mitigated
# -Wold-style-cast
-Wnon-virtual-dtor
-Woverloaded-virtual
-Wdouble-promotion
-Wformat=2
-Wredundant-decls
# -Wconversion
-Wdouble-promotion
)
#Testing for minimum version for compilers
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
message(FATAL_ERROR "Clang version must be at least 3.2!")
endif()
target_compile_options(slsProjectWarnings INTERFACE -Wshadow) #Clag does not warn on constructor
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
message(FATAL_ERROR "GCC version must be at least 4.8!")
endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
target_compile_options(slsProjectWarnings INTERFACE
-Wno-missing-field-initializers)
endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
target_compile_options(slsProjectWarnings INTERFACE
-Wno-misleading-indentation # mostly in rapidjson remove using clang format
-Wduplicated-cond
-Wnull-dereference )
endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
target_compile_options(slsProjectWarnings INTERFACE
-Wno-class-memaccess )
endif()
endif()
if(SLS_USE_SANITIZER)
target_compile_options(slsProjectOptions INTERFACE -fsanitize=address,undefined)
target_link_libraries(slsProjectOptions INTERFACE -fsanitize=address,undefined)
# target_compile_options(slsProjectOptions INTERFACE -fsanitize=thread)
# target_link_libraries(slsProjectOptions INTERFACE -fsanitize=thread)
endif()
# Install fake the libraries
install(TARGETS slsProjectOptions slsProjectWarnings
EXPORT "${TARGETS_EXPORT_NAME}"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_INSTALL_RPATH "$ORIGIN")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
find_package(Doxygen)
find_package(ZeroMQ 4 REQUIRED)
if (SLS_USE_TESTS)
enable_testing()
add_subdirectory(tests)
endif(SLS_USE_TESTS)
# Common functionallity to detector and receiver
add_subdirectory(slsSupportLib)
if (SLS_USE_TEXTCLIENT)
add_subdirectory(slsDetectorSoftware)
endif (SLS_USE_TEXTCLIENT)
if (SLS_USE_RECEIVER)
if (SLS_USE_HDF5)
find_package(HDF5 1.10 COMPONENTS CXX REQUIRED)
endif (SLS_USE_HDF5)
add_subdirectory(slsReceiverSoftware)
add_subdirectory(manual/manual-api)
endif (SLS_USE_RECEIVER)
if (SLS_USE_GUI)
find_package(Qt4 REQUIRED)
find_package(Qwt 6 REQUIRED)
if (QT4_FOUND AND QWT_FOUND)
add_subdirectory(slsDetectorGui)
endif()
endif (SLS_USE_GUI)
if (SLS_USE_INTEGRATION_TESTS)
add_subdirectory(integrationTests)
endif (SLS_USE_INTEGRATION_TESTS)
if (SLS_USE_PYTHON)
add_subdirectory(python)
endif(SLS_USE_PYTHON)
configure_file( .clang-tidy
${CMAKE_BINARY_DIR}/.clang-tidy
)
if (DOXYGEN_FOUND)
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/doxygen/Doxyfile.in)
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
# note the option ALL which allows to build the docs together with the application
add_custom_target( docs
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM )
else (DOXYGEN_FOUND)
message("Doxygen need to be installed to generate the doxygen documentation")
endif (DOXYGEN_FOUND)
if(SLS_MASTER_PROJECT)
# Set install dir CMake packages
set(CMAKE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/cmake/sls)
# Set the list of exported targets
set(PROJECT_LIBRARIES slsSupportLib slsDetectorShared slsReceiverShared)
# Generate and install package config file and version
include(cmake/package_config.cmake)
endif()

91
README.md Executable file
View File

@ -0,0 +1,91 @@
### Documentation
Detailed documentation can be found on the [official site.](https://www.psi.ch/detectors/users-support)
### Binaries
Documentation to obtain the binaries via the conda package is available for [lib](https://github.com/slsdetectorgroup/sls_detector_lib) and [gui](https://github.com/slsdetectorgroup/sls_detector_gui)
### Source code
One can also obtain the source code from this repository and compile while realizing the setup dependencies as required.
```
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git
```
#### Setup dependencies
* Gui Client <br>
Requirements: Qt 4.8 and Qwt 6.0
```
export QTDIR=/usr/local/Trolltech/
export QWTDIR=/usr/local/qwt-6.0.1/
```
If either of them does not exist, the GUI client will not be built.
* Advanced user Calibration wizards<br>
Requirements: ROOT
```
export ROOTSYS=/usr/local/root-5.34
```
#### Compilation
Compiling can be done in two ways.
**1. Compile using script cmk.sh**<br>
After compiling, the libraries and executables will be found in `slsDetectorPackage/build/bin` directory<br>
Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]<br>
* -[no option]: only make<br>
* -c: Clean<br>
* -b: Builds/Rebuilds CMake files normal mode<br>
* -h: Builds/Rebuilds Cmake files with HDF5 package<br>
* -d: HDF5 Custom Directory<br>
* -t: Build/Rebuilds only text client<br>
* -r: Build/Rebuilds only receiver<br>
* -g: Build/Rebuilds only gui<br>
* -j: Number of threads to compile through<br>
* -e: Debug mode
Basic Option:
./cmk.sh -b
For only make:
./cmk.sh
For make clean;make:
./cmk.sh -c
For using hdf5 without custom dir /blabla:
./cmk.sh -h -d /blabla
For rebuilding cmake without hdf5
./cmk.sh -b
For using multiple cores to compile faster:
./cmk.sh -j9<br>
For rebuilding only certain sections<br>
./cmk.sh -tg #only text client and gui<br>
./cmk.sh -r #only receiver<br>
**2. Compile without script**<br>
Use cmake to create out-of-source builds, by creating a build folder parallel to source directory.
```
$ cd ..
$ mkdir slsDetectorPackage-build
$ cd slsDetectorPackage-build
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=OFF
$ make
```
Use the following as an example to compile statically and using specific hdf5 folder
```
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=ON
```
After compiling, the libraries and executables will be found at `bin` directory
```
$ ls bin/
gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a libSlsReceiver.so
sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver slsMultiReceiver
```

0
RELEASE.txt Executable file
View File

14934
catch/catch.hpp Executable file

File diff suppressed because it is too large Load Diff

175
cmake/Catch.cmake Executable file
View File

@ -0,0 +1,175 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
Catch
-----
This module defines a function to help use the Catch test framework.
The :command:`catch_discover_tests` discovers tests by asking the compiled test
executable to enumerate its tests. This does not require CMake to be re-run
when tests change. However, it may not work in a cross-compiling environment,
and setting test properties is less convenient.
This command is intended to replace use of :command:`add_test` to register
tests, and will create a separate CTest test for each Catch test case. Note
that this is in some cases less efficient, as common set-up and tear-down logic
cannot be shared by multiple test cases executing in the same instance.
However, it provides more fine-grained pass/fail information to CTest, which is
usually considered as more beneficial. By default, the CTest test name is the
same as the Catch name; see also ``TEST_PREFIX`` and ``TEST_SUFFIX``.
.. command:: catch_discover_tests
Automatically add tests with CTest by querying the compiled test executable
for available tests::
catch_discover_tests(target
[TEST_SPEC arg1...]
[EXTRA_ARGS arg1...]
[WORKING_DIRECTORY dir]
[TEST_PREFIX prefix]
[TEST_SUFFIX suffix]
[PROPERTIES name1 value1...]
[TEST_LIST var]
)
``catch_discover_tests`` sets up a post-build command on the test executable
that generates the list of tests by parsing the output from running the test
with the ``--list-test-names-only`` argument. This ensures that the full
list of tests is obtained. Since test discovery occurs at build time, it is
not necessary to re-run CMake when the list of tests changes.
However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set
in order to function in a cross-compiling environment.
Additionally, setting properties on tests is somewhat less convenient, since
the tests are not available at CMake time. Additional test properties may be
assigned to the set of tests as a whole using the ``PROPERTIES`` option. If
more fine-grained test control is needed, custom content may be provided
through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES`
directory property. The set of discovered tests is made accessible to such a
script via the ``<target>_TESTS`` variable.
The options are:
``target``
Specifies the Catch executable, which must be a known CMake executable
target. CMake will substitute the location of the built executable when
running the test.
``TEST_SPEC arg1...``
Specifies test cases, wildcarded test cases, tags and tag expressions to
pass to the Catch executable with the ``--list-test-names-only`` argument.
``EXTRA_ARGS arg1...``
Any extra arguments to pass on the command line to each test case.
``WORKING_DIRECTORY dir``
Specifies the directory in which to run the discovered test cases. If this
option is not provided, the current binary directory is used.
``TEST_PREFIX prefix``
Specifies a ``prefix`` to be prepended to the name of each discovered test
case. This can be useful when the same test executable is being used in
multiple calls to ``catch_discover_tests()`` but with different
``TEST_SPEC`` or ``EXTRA_ARGS``.
``TEST_SUFFIX suffix``
Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
be specified.
``PROPERTIES name1 value1...``
Specifies additional properties to be set on all tests discovered by this
invocation of ``catch_discover_tests``.
``TEST_LIST var``
Make the list of tests available in the variable ``var``, rather than the
default ``<target>_TESTS``. This can be useful when the same test
executable is being used in multiple calls to ``catch_discover_tests()``.
Note that this variable is only available in CTest.
#]=======================================================================]
#------------------------------------------------------------------------------
function(catch_discover_tests TARGET)
cmake_parse_arguments(
""
""
"TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST"
"TEST_SPEC;EXTRA_ARGS;PROPERTIES"
${ARGN}
)
if(NOT _WORKING_DIRECTORY)
set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
endif()
if(NOT _TEST_LIST)
set(_TEST_LIST ${TARGET}_TESTS)
endif()
## Generate a unique name based on the extra arguments
string(SHA1 args_hash "${_TEST_SPEC} ${_EXTRA_ARGS}")
string(SUBSTRING ${args_hash} 0 7 args_hash)
# Define rule to generate test list for aforementioned test executable
set(ctest_include_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_include-${args_hash}.cmake")
set(ctest_tests_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_tests-${args_hash}.cmake")
get_property(crosscompiling_emulator
TARGET ${TARGET}
PROPERTY CROSSCOMPILING_EMULATOR
)
add_custom_command(
TARGET ${TARGET} POST_BUILD
BYPRODUCTS "${ctest_tests_file}"
COMMAND "${CMAKE_COMMAND}"
-D "TEST_TARGET=${TARGET}"
-D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
-D "TEST_EXECUTOR=${crosscompiling_emulator}"
-D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
-D "TEST_SPEC=${_TEST_SPEC}"
-D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
-D "TEST_PROPERTIES=${_PROPERTIES}"
-D "TEST_PREFIX=${_TEST_PREFIX}"
-D "TEST_SUFFIX=${_TEST_SUFFIX}"
-D "TEST_LIST=${_TEST_LIST}"
-D "CTEST_FILE=${ctest_tests_file}"
-P "${_CATCH_DISCOVER_TESTS_SCRIPT}"
VERBATIM
)
file(WRITE "${ctest_include_file}"
"if(EXISTS \"${ctest_tests_file}\")\n"
" include(\"${ctest_tests_file}\")\n"
"else()\n"
" add_test(${TARGET}_NOT_BUILT-${args_hash} ${TARGET}_NOT_BUILT-${args_hash})\n"
"endif()\n"
)
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0")
# Add discovered tests to directory TEST_INCLUDE_FILES
set_property(DIRECTORY
APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}"
)
else()
# Add discovered tests as directory TEST_INCLUDE_FILE if possible
get_property(test_include_file_set DIRECTORY PROPERTY TEST_INCLUDE_FILE SET)
if (NOT ${test_include_file_set})
set_property(DIRECTORY
PROPERTY TEST_INCLUDE_FILE "${ctest_include_file}"
)
else()
message(FATAL_ERROR
"Cannot set more than one TEST_INCLUDE_FILE"
)
endif()
endif()
endfunction()
###############################################################################
set(_CATCH_DISCOVER_TESTS_SCRIPT
${CMAKE_CURRENT_LIST_DIR}/CatchAddTests.cmake
)

78
cmake/CatchAddTests.cmake Executable file
View File

@ -0,0 +1,78 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
set(prefix "${TEST_PREFIX}")
set(suffix "${TEST_SUFFIX}")
set(spec ${TEST_SPEC})
set(extra_args ${TEST_EXTRA_ARGS})
set(properties ${TEST_PROPERTIES})
set(script)
set(suite)
set(tests)
function(add_command NAME)
set(_args "")
foreach(_arg ${ARGN})
if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
set(_args "${_args} [==[${_arg}]==]") # form a bracket_argument
else()
set(_args "${_args} ${_arg}")
endif()
endforeach()
set(script "${script}${NAME}(${_args})\n" PARENT_SCOPE)
endfunction()
# Run test executable to get list of available tests
if(NOT EXISTS "${TEST_EXECUTABLE}")
message(FATAL_ERROR
"Specified test executable '${TEST_EXECUTABLE}' does not exist"
)
endif()
execute_process(
COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" ${spec} --list-test-names-only
OUTPUT_VARIABLE output
RESULT_VARIABLE result
)
# Catch --list-test-names-only reports the number of tests, so 0 is... surprising
if(${result} EQUAL 0)
message(WARNING
"Test executable '${TEST_EXECUTABLE}' contains no tests!\n"
)
elseif(${result} LESS 0)
message(FATAL_ERROR
"Error running test executable '${TEST_EXECUTABLE}':\n"
" Result: ${result}\n"
" Output: ${output}\n"
)
endif()
string(REPLACE "\n" ";" output "${output}")
# Parse output
foreach(line ${output})
set(test ${line})
# use escape commas to handle properly test cases with commans inside the name
string(REPLACE "," "\\," test_name ${test})
# ...and add to script
add_command(add_test
"${prefix}${test}${suffix}"
${TEST_EXECUTOR}
"${TEST_EXECUTABLE}"
"${test_name}"
${extra_args}
)
add_command(set_tests_properties
"${prefix}${test}${suffix}"
PROPERTIES
WORKING_DIRECTORY "${TEST_WORKING_DIR}"
${properties}
)
list(APPEND tests "${prefix}${test}${suffix}")
endforeach()
# Create a list of all discovered tests, which users may use to e.g. set
# properties on the tests
add_command(set ${TEST_LIST} ${tests})
# Write CTest script
file(WRITE "${CTEST_FILE}" "${script}")

11
cmake/FindCBF.cmake Executable file
View File

@ -0,0 +1,11 @@
FIND_PATH (CBF_INCLUDE_DIR
${CBF_DIR}/include
${CBF_DIR}/include/cbflib
)
FIND_LIBRARY (CBF_LIBRARY
NAMES cbf
HINTS ${CBF_DIR}/lib
)
INCLUDE ( FindPackageHandleStandardArgs )
FIND_PACKAGE_HANDLE_STANDARD_ARGS (CBF DEFAULT_MSG CBF_LIBRARY CBF_INCLUDE_DIR )

118
cmake/FindQwt.cmake Executable file
View File

@ -0,0 +1,118 @@
# Qt Widgets for Technical Applications
# available at http://www.http://qwt.sourceforge.net/
#
# The module defines the following variables:
# QWT_FOUND - the system has Qwt
# QWT_INCLUDE_DIR - where to find qwt_plot.h
# QWT_INCLUDE_DIRS - qwt includes
# QWT_LIBRARY - where to find the Qwt library
# QWT_LIBRARIES - aditional libraries
# QWT_MAJOR_VERSION - major version
# QWT_MINOR_VERSION - minor version
# QWT_PATCH_VERSION - patch version
# QWT_VERSION_STRING - version (ex. 5.2.1)
# QWT_ROOT_DIR - root dir (ex. /usr/local)
#=============================================================================
# Copyright 2010-2013, Julien Schueller
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# The views and conclusions contained in the software and documentation are those
# of the authors and should not be interpreted as representing official policies,
# either expressed or implied, of the FreeBSD Project.
#=============================================================================
find_path ( QWT_INCLUDE_DIR
NAMES qwt_plot.h
HINTS $ENV{QWTDIR} $ENV{QWTDIR}/src ${QT_INCLUDE_DIR}
PATH_SUFFIXES qwt qwt-qt3 qwt-qt4 qwt-qt5
)
set ( QWT_INCLUDE_DIRS ${QWT_INCLUDE_DIR} )
# version
set ( _VERSION_FILE ${QWT_INCLUDE_DIR}/qwt_global.h )
if ( EXISTS ${_VERSION_FILE} )
file ( STRINGS ${_VERSION_FILE} _VERSION_LINE REGEX "define[ ]+QWT_VERSION_STR" )
if ( _VERSION_LINE )
string ( REGEX REPLACE ".*define[ ]+QWT_VERSION_STR[ ]+\"(.*)\".*" "\\1" QWT_VERSION_STRING "${_VERSION_LINE}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" QWT_MAJOR_VERSION "${QWT_VERSION_STRING}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" QWT_MINOR_VERSION "${QWT_VERSION_STRING}" )
string ( REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" QWT_PATCH_VERSION "${QWT_VERSION_STRING}" )
endif ()
endif ()
# check version
set ( _QWT_VERSION_MATCH TRUE )
if ( Qwt_FIND_VERSION AND QWT_VERSION_STRING )
if ( Qwt_FIND_VERSION_EXACT )
if ( NOT Qwt_FIND_VERSION VERSION_EQUAL QWT_VERSION_STRING )
set ( _QWT_VERSION_MATCH FALSE )
endif ()
else ()
if ( QWT_VERSION_STRING VERSION_LESS Qwt_FIND_VERSION )
set ( _QWT_VERSION_MATCH FALSE )
endif ()
endif ()
endif ()
find_library ( QWT_LIBRARY
NAMES qwt qwt-qt3 qwt-qt4 qwt-qt5
HINTS $ENV{QWTDIR}/lib ${QT_LIBRARY_DIR}
)
set ( QWT_LIBRARIES ${QWT_LIBRARY} )
# try to guess root dir from include dir
if ( QWT_INCLUDE_DIR )
string ( REGEX REPLACE "(.*)/include.*" "\\1" QWT_ROOT_DIR ${QWT_INCLUDE_DIR} )
# try to guess root dir from library dir
elseif ( QWT_LIBRARY )
string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" QWT_ROOT_DIR ${QWT_LIBRARY} )
endif ()
# handle the QUIETLY and REQUIRED arguments
include ( FindPackageHandleStandardArgs )
if ( CMAKE_VERSION LESS 2.8.3 )
find_package_handle_standard_args( Qwt DEFAULT_MSG QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH )
else ()
find_package_handle_standard_args( Qwt REQUIRED_VARS QWT_LIBRARY QWT_INCLUDE_DIR _QWT_VERSION_MATCH VERSION_VAR QWT_VERSION_STRING )
endif ()
mark_as_advanced (
QWT_LIBRARY
QWT_LIBRARIES
QWT_INCLUDE_DIR
QWT_INCLUDE_DIRS
QWT_MAJOR_VERSION
QWT_MINOR_VERSION
QWT_PATCH_VERSION
QWT_VERSION_STRING
QWT_ROOT_DIR
)

167
cmake/FindROOT.cmake Executable file
View File

@ -0,0 +1,167 @@
# - Finds ROOT instalation
# This module sets up ROOT information
# It defines:
# ROOT_FOUND If the ROOT is found
# ROOT_INCLUDE_DIR PATH to the include directory
# ROOT_LIBRARIES Most common libraries
# ROOT_GUI_LIBRARIES Most common libraries + GUI
# ROOT_LIBRARY_DIR PATH to the library directory
find_program(ROOT_CONFIG_EXECUTABLE root-config
PATHS $ENV{ROOTSYS}/bin)
if(NOT ROOT_CONFIG_EXECUTABLE)
set(ROOT_FOUND FALSE)
else()
set(ROOT_FOUND TRUE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix
OUTPUT_VARIABLE ROOTSYS
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --version
OUTPUT_VARIABLE ROOT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir
OUTPUT_VARIABLE ROOT_INCLUDE_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs
OUTPUT_VARIABLE ROOT_LIBRARIES
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${ROOT_CONFIG_EXECUTABLE} --glibs
OUTPUT_VARIABLE ROOT_GUI_LIBRARIES
OUTPUT_STRIP_TRAILING_WHITESPACE)
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lThread -lMinuit -lHtml -lVMC -lEG -lGeom -lTreePlayer -lXMLIO -lProof)
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lProofPlayer -lMLP -lSpectrum -lEve -lRGL -lGed -lXMLParser -lPhysics)
set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib)
# Make variables changeble to the advanced user
mark_as_advanced(ROOT_CONFIG_EXECUTABLE)
if(NOT ROOT_FIND_QUIETLY)
message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}")
endif()
endif()
include(CMakeParseArguments)
find_program(ROOTCINT_EXECUTABLE rootcint PATHS $ENV{ROOTSYS}/bin)
find_program(GENREFLEX_EXECUTABLE genreflex PATHS $ENV{ROOTSYS}/bin)
find_package(GCCXML)
#----------------------------------------------------------------------------
# function ROOT_GENERATE_DICTIONARY( dictionary
# header1 header2 ...
# LINKDEF linkdef1 ...
# OPTIONS opt1...)
function(ROOT_GENERATE_DICTIONARY dictionary)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "LINKDEF;OPTIONS" "" ${ARGN})
#---Get the list of header files-------------------------
set(headerfiles)
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
file(GLOB files ${fp})
if(files)
foreach(f ${files})
if(NOT f MATCHES LinkDef)
set(headerfiles ${headerfiles} ${f})
endif()
endforeach()
else()
set(headerfiles ${headerfiles} ${fp})
endif()
endforeach()
#---Get the list of include directories------------------
get_directory_property(incdirs INCLUDE_DIRECTORIES)
set(includedirs)
foreach( d ${incdirs})
set(includedirs ${includedirs} -I${d})
endforeach()
#---Get LinkDef.h file------------------------------------
set(linkdefs)
foreach( f ${ARG_LINKDEF})
if( IS_ABSOLUTE ${f})
set(linkdefs ${linkdefs} ${f})
else()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f})
else()
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/${f})
endif()
endif()
endforeach()
#---call rootcint------------------------------------------
add_custom_command(OUTPUT ${dictionary}.cxx ${dictionary}.h
COMMAND ${ROOTCINT_EXECUTABLE} -cint -f ${dictionary}.cxx
-c ${ARG_OPTIONS} ${includedirs} ${headerfiles} ${linkdefs}
DEPENDS ${headerfiles} ${linkdefs})
endfunction()
#----------------------------------------------------------------------------
# function REFLEX_GENERATE_DICTIONARY(dictionary
# header1 header2 ...
# SELECTION selectionfile ...
# OPTIONS opt1...)
function(REFLEX_GENERATE_DICTIONARY dictionary)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "SELECTION;OPTIONS" "" ${ARGN})
#---Get the list of header files-------------------------
set(headerfiles)
foreach(fp ${ARG_UNPARSED_ARGUMENTS})
file(GLOB files ${fp})
if(files)
foreach(f ${files})
set(headerfiles ${headerfiles} ${f})
endforeach()
else()
set(headerfiles ${headerfiles} ${fp})
endif()
endforeach()
#---Get Selection file------------------------------------
if(IS_ABSOLUTE ${ARG_SELECTION})
set(selectionfile ${ARG_SELECTION})
else()
set(selectionfile ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_SELECTION})
endif()
#---Get the list of include directories------------------
get_directory_property(incdirs INCLUDE_DIRECTORIES)
set(includedirs)
foreach( d ${incdirs})
set(includedirs ${includedirs} -I${d})
endforeach()
#---Get preprocessor definitions--------------------------
get_directory_property(defs COMPILE_DEFINITIONS)
foreach( d ${defs})
set(definitions ${definitions} -D${d})
endforeach()
#---Nanes and others---------------------------------------
set(gensrcdict ${dictionary}.cpp)
if(MSVC)
set(gccxmlopts "--gccxmlopt=\"--gccxml-compiler cl\"")
else()
#set(gccxmlopts "--gccxmlopt=\'--gccxml-cxxflags -m64 \'")
set(gccxmlopts)
endif()
#set(rootmapname ${dictionary}Dict.rootmap)
#set(rootmapopts --rootmap=${rootmapname} --rootmap-lib=${libprefix}${dictionary}Dict)
#---Check GCCXML and get path-----------------------------
if(GCCXML)
get_filename_component(gccxmlpath ${GCCXML} PATH)
else()
message(WARNING "GCCXML not found. Install and setup your environment to find 'gccxml' executable")
endif()
#---Actual command----------------------------------------
add_custom_command(OUTPUT ${gensrcdict} ${rootmapname}
COMMAND ${GENREFLEX_EXECUTABLE} ${headerfiles} -o ${gensrcdict} ${gccxmlopts} ${rootmapopts} --select=${selectionfile}
--gccxmlpath=${gccxmlpath} ${ARG_OPTIONS} ${includedirs} ${definitions}
DEPENDS ${headerfiles} ${selectionfile})
endfunction()

112
cmake/FindZeroMQ.cmake Executable file
View File

@ -0,0 +1,112 @@
# This file is originally from https://github.com/zeromq/azmq and distributed
# under Boost Software Lincese 1.0
# Boost Software License - Version 1.0 - August 17th, 2003
# Permission is hereby granted, free of charge, to any person or organization
# obtaining a copy of the software and accompanying documentation covered by
# this license (the "Software") to use, reproduce, display, distribute,
# execute, and transmit the Software, and to prepare derivative works of the
# Software, and to permit third-parties to whom the Software is furnished to
# do so, all subject to the following:
# The copyright notices in the Software and this entire statement, including
# the above license grant, this restriction and the following disclaimer,
# must be included in all copies of the Software, in whole or in part, and
# all derivative works of the Software, unless such copies or derivative
# works are solely in the form of machine-executable object code generated by
# a source language processor.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
# SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
# FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# --------------------------------------------------------------------------------
# Find ZeroMQ Headers/Libs
# Variables
# ZMQ_ROOT - set this to a location where ZeroMQ may be found
#
# ZeroMQ_FOUND - True of ZeroMQ found
# ZeroMQ_INCLUDE_DIRS - Location of ZeroMQ includes
# ZeroMQ_LIBRARIES - ZeroMQ libraries
include(FindPackageHandleStandardArgs)
if (NOT ZMQ_ROOT)
set(ZMQ_ROOT "$ENV{ZMQ_ROOT}")
endif()
if (NOT ZMQ_ROOT)
find_path(_ZeroMQ_ROOT NAMES include/zmq.h)
else()
set(_ZeroMQ_ROOT "${ZMQ_ROOT}")
endif()
find_path(ZeroMQ_INCLUDE_DIRS NAMES zmq.h HINTS ${_ZeroMQ_ROOT}/include)
if (ZeroMQ_INCLUDE_DIRS)
set(_ZeroMQ_H ${ZeroMQ_INCLUDE_DIRS}/zmq.h)
function(_zmqver_EXTRACT _ZeroMQ_VER_COMPONENT _ZeroMQ_VER_OUTPUT)
set(CMAKE_MATCH_1 "0")
set(_ZeroMQ_expr "^[ \\t]*#define[ \\t]+${_ZeroMQ_VER_COMPONENT}[ \\t]+([0-9]+)$")
file(STRINGS "${_ZeroMQ_H}" _ZeroMQ_ver REGEX "${_ZeroMQ_expr}")
string(REGEX MATCH "${_ZeroMQ_expr}" ZeroMQ_ver "${_ZeroMQ_ver}")
set(${_ZeroMQ_VER_OUTPUT} "${CMAKE_MATCH_1}" PARENT_SCOPE)
endfunction()
_zmqver_EXTRACT("ZMQ_VERSION_MAJOR" ZeroMQ_VERSION_MAJOR)
_zmqver_EXTRACT("ZMQ_VERSION_MINOR" ZeroMQ_VERSION_MINOR)
_zmqver_EXTRACT("ZMQ_VERSION_PATCH" ZeroMQ_VERSION_PATCH)
message(STATUS "ZeroMQ version: ${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
# We should provide version to find_package_handle_standard_args in the same format as it was requested,
# otherwise it can't check whether version matches exactly.
if (ZeroMQ_FIND_VERSION_COUNT GREATER 2)
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
else()
# User has requested ZeroMQ version without patch part => user is not interested in specific patch =>
# any patch should be an exact match.
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}")
endif()
if (NOT ${CMAKE_CXX_PLATFORM_ID} STREQUAL "Windows")
find_library(ZeroMQ_LIBRARIES NAMES zmq HINTS ${_ZeroMQ_ROOT}/lib)
else()
find_library(
ZeroMQ_LIBRARY_RELEASE
NAMES
libzmq
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
HINTS
${_ZeroMQ_ROOT}/lib
)
find_library(
ZeroMQ_LIBRARY_DEBUG
NAMES
libzmq_d
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
HINTS
${_ZeroMQ_ROOT}/lib)
# On Windows we have to use corresponding version (i.e. Release or Debug) of ZeroMQ because of `errno` CRT global variable
# See more at http://www.drdobbs.com/avoiding-the-visual-c-runtime-library/184416623
set(ZeroMQ_LIBRARIES optimized "${ZeroMQ_LIBRARY_RELEASE}" debug "${ZeroMQ_LIBRARY_DEBUG}")
endif()
endif()
find_package_handle_standard_args(ZeroMQ FOUND_VAR ZeroMQ_FOUND
REQUIRED_VARS ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES
VERSION_VAR ZeroMQ_VERSION)
if (ZeroMQ_FOUND)
mark_as_advanced(ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES ZeroMQ_VERSION
ZeroMQ_VERSION_MAJOR ZeroMQ_VERSION_MINOR ZeroMQ_VERSION_PATCH)
endif()

203
cmake/ParseAndAddCatchTests.cmake Executable file
View File

@ -0,0 +1,203 @@
#==================================================================================================#
# supported macros #
# - TEST_CASE, #
# - SCENARIO, #
# - TEST_CASE_METHOD, #
# - CATCH_TEST_CASE, #
# - CATCH_SCENARIO, #
# - CATCH_TEST_CASE_METHOD. #
# #
# Usage #
# 1. make sure this module is in the path or add this otherwise: #
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") #
# 2. make sure that you've enabled testing option for the project by the call: #
# enable_testing() #
# 3. add the lines to the script for testing target (sample CMakeLists.txt): #
# project(testing_target) #
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") #
# enable_testing() #
# #
# find_path(CATCH_INCLUDE_DIR "catch.hpp") #
# include_directories(${INCLUDE_DIRECTORIES} ${CATCH_INCLUDE_DIR}) #
# #
# file(GLOB SOURCE_FILES "*.cpp") #
# add_executable(${PROJECT_NAME} ${SOURCE_FILES}) #
# #
# include(ParseAndAddCatchTests) #
# ParseAndAddCatchTests(${PROJECT_NAME}) #
# #
# The following variables affect the behavior of the script: #
# #
# PARSE_CATCH_TESTS_VERBOSE (Default OFF) #
# -- enables debug messages #
# PARSE_CATCH_TESTS_NO_HIDDEN_TESTS (Default OFF) #
# -- excludes tests marked with [!hide], [.] or [.foo] tags #
# PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME (Default ON) #
# -- adds fixture class name to the test name #
# PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME (Default ON) #
# -- adds cmake target name to the test name #
# PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS (Default OFF) #
# -- causes CMake to rerun when file with tests changes so that new tests will be discovered #
# #
# One can also set (locally) the optional variable OptionalCatchTestLauncher to precise the way #
# a test should be run. For instance to use test MPI, one can write #
# set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NUMPROC}) #
# just before calling this ParseAndAddCatchTests function #
# #
#==================================================================================================#
cmake_minimum_required(VERSION 2.8.8)
option(PARSE_CATCH_TESTS_VERBOSE "Print Catch to CTest parser debug messages" OFF)
option(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS "Exclude tests with [!hide], [.] or [.foo] tags" OFF)
option(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME "Add fixture class name to the test name" ON)
option(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME "Add target name to the test name" ON)
option(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS "Add test file to CMAKE_CONFIGURE_DEPENDS property" OFF)
function(PrintDebugMessage)
if(PARSE_CATCH_TESTS_VERBOSE)
message(STATUS "ParseAndAddCatchTests: ${ARGV}")
endif()
endfunction()
# This removes the contents between
# - block comments (i.e. /* ... */)
# - full line comments (i.e. // ... )
# contents have been read into '${CppCode}'.
# !keep partial line comments
function(RemoveComments CppCode)
string(ASCII 2 CMakeBeginBlockComment)
string(ASCII 3 CMakeEndBlockComment)
string(REGEX REPLACE "/\\*" "${CMakeBeginBlockComment}" ${CppCode} "${${CppCode}}")
string(REGEX REPLACE "\\*/" "${CMakeEndBlockComment}" ${CppCode} "${${CppCode}}")
string(REGEX REPLACE "${CMakeBeginBlockComment}[^${CMakeEndBlockComment}]*${CMakeEndBlockComment}" "" ${CppCode} "${${CppCode}}")
string(REGEX REPLACE "\n[ \t]*//+[^\n]+" "\n" ${CppCode} "${${CppCode}}")
set(${CppCode} "${${CppCode}}" PARENT_SCOPE)
endfunction()
# Worker function
function(ParseFile SourceFile TestTarget)
# According to CMake docs EXISTS behavior is well-defined only for full paths.
get_filename_component(SourceFile ${SourceFile} ABSOLUTE)
if(NOT EXISTS ${SourceFile})
message(WARNING "Cannot find source file: ${SourceFile}")
return()
endif()
PrintDebugMessage("parsing ${SourceFile}")
file(STRINGS ${SourceFile} Contents NEWLINE_CONSUME)
# Remove block and fullline comments
RemoveComments(Contents)
# Find definition of test names
string(REGEX MATCHALL "[ \t]*(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^\)]+\\)+[ \t\n]*{+[ \t]*(//[^\n]*[Tt][Ii][Mm][Ee][Oo][Uu][Tt][ \t]*[0-9]+)*" Tests "${Contents}")
if(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS AND Tests)
PrintDebugMessage("Adding ${SourceFile} to CMAKE_CONFIGURE_DEPENDS property")
set_property(
DIRECTORY
APPEND
PROPERTY CMAKE_CONFIGURE_DEPENDS ${SourceFile}
)
endif()
foreach(TestName ${Tests})
# Strip newlines
string(REGEX REPLACE "\\\\\n|\n" "" TestName "${TestName}")
# Get test type and fixture if applicable
string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^,^\"]*" TestTypeAndFixture "${TestName}")
string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)" TestType "${TestTypeAndFixture}")
string(REGEX REPLACE "${TestType}\\([ \t]*" "" TestFixture "${TestTypeAndFixture}")
# Get string parts of test definition
string(REGEX MATCHALL "\"+([^\\^\"]|\\\\\")+\"+" TestStrings "${TestName}")
# Strip wrapping quotation marks
string(REGEX REPLACE "^\"(.*)\"$" "\\1" TestStrings "${TestStrings}")
string(REPLACE "\";\"" ";" TestStrings "${TestStrings}")
# Validate that a test name and tags have been provided
list(LENGTH TestStrings TestStringsLength)
if(TestStringsLength GREATER 2 OR TestStringsLength LESS 1)
message(FATAL_ERROR "You must provide a valid test name and tags for all tests in ${SourceFile}")
endif()
# Assign name and tags
list(GET TestStrings 0 Name)
if("${TestType}" STREQUAL "SCENARIO")
set(Name "Scenario: ${Name}")
endif()
if(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME AND TestFixture)
set(CTestName "${TestFixture}:${Name}")
else()
set(CTestName "${Name}")
endif()
if(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME)
set(CTestName "${TestTarget}:${CTestName}")
endif()
# add target to labels to enable running all tests added from this target
set(Labels ${TestTarget})
if(TestStringsLength EQUAL 2)
list(GET TestStrings 1 Tags)
string(TOLOWER "${Tags}" Tags)
# remove target from labels if the test is hidden
if("${Tags}" MATCHES ".*\\[!?(hide|\\.)\\].*")
list(REMOVE_ITEM Labels ${TestTarget})
endif()
string(REPLACE "]" ";" Tags "${Tags}")
string(REPLACE "[" "" Tags "${Tags}")
else()
# unset tags variable from previous loop
unset(Tags)
endif()
list(APPEND Labels ${Tags})
list(FIND Labels "!hide" IndexOfHideLabel)
set(HiddenTagFound OFF)
foreach(label ${Labels})
string(REGEX MATCH "^!hide|^\\." result ${label})
if(result)
set(HiddenTagFound ON)
break()
endif(result)
endforeach(label)
if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_LESS "3.9")
PrintDebugMessage("Skipping test \"${CTestName}\" as it has [!hide], [.] or [.foo] label")
else()
PrintDebugMessage("Adding test \"${CTestName}\"")
if(Labels)
PrintDebugMessage("Setting labels to ${Labels}")
endif()
# Escape commas in the test spec
string(REPLACE "," "\\," Name ${Name})
# Add the test and set its properties
add_test(NAME "\"${CTestName}\"" COMMAND ${OptionalCatchTestLauncher} ${TestTarget} ${Name} ${AdditionalCatchParameters})
# Old CMake versions do not document VERSION_GREATER_EQUAL, so we use VERSION_GREATER with 3.8 instead
if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_GREATER "3.8")
PrintDebugMessage("Setting DISABLED test property")
set_tests_properties("\"${CTestName}\"" PROPERTIES DISABLED ON)
else()
set_tests_properties("\"${CTestName}\"" PROPERTIES FAIL_REGULAR_EXPRESSION "No tests ran"
LABELS "${Labels}")
endif()
endif()
endforeach()
endfunction()
# entry point
function(ParseAndAddCatchTests TestTarget)
PrintDebugMessage("Started parsing ${TestTarget}")
get_target_property(SourceFiles ${TestTarget} SOURCES)
PrintDebugMessage("Found the following sources: ${SourceFiles}")
foreach(SourceFile ${SourceFiles})
ParseFile(${SourceFile} ${TestTarget})
endforeach()
PrintDebugMessage("Finished parsing ${TestTarget}")
endfunction()

31
cmake/package_config.cmake Executable file
View File

@ -0,0 +1,31 @@
# This cmake code creates the configuration that is found and used by
# find_package() of another cmake project
# get lower and upper case project name for the configuration files
# configure and install the configuration files
include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_SOURCE_DIR}/cmake/project-config.cmake.in"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER}
PATH_VARS CMAKE_INSTALL_DIR)
write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
install(FILES
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
COMPONENT devel
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
if (PROJECT_LIBRARIES OR PROJECT_STATIC_LIBRARIES)
install(
EXPORT "${TARGETS_EXPORT_NAME}"
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
endif ()

24
cmake/project-config.cmake.in Executable file
View File

@ -0,0 +1,24 @@
# Config file for @PROJECT_NAME_LOWER@
#
# It defines the following variables:
#
# @PROJECT_NAME_UPPER@_INCLUDE_DIRS - include directory
# @PROJECT_NAME_UPPER@_LIBRARIES - all dynamic libraries
# @PROJECT_NAME_UPPER@_STATIC_LIBRARIES - all static libraries
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
set(SLS_USE_HDF5 "@SLS_USE_HDF5@")
# Add optional dependencies here
find_dependency(Threads)
if (SLS_USE_HDF5)
find_dependency(HDF5)
endif ()
set_and_check(@PROJECT_NAME_UPPER@_CMAKE_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_DIR@")
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
check_required_components("@PROJECT_NAME@")

14
cmake/project_version.cc.in Executable file
View File

@ -0,0 +1,14 @@
#include "project_version.h"
/// project version as major.minor.patch string
const char* @PROJECT_NAME@_runtime_project_version(){ return "@PROJECT_VERSION@"; }
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
const char* @PROJECT_NAME@_runtime_package_version(){ return "@PACKAGE_VERSION@"; }
/// project version as integer: major * 10000 + minor * 100 + patch
int @PROJECT_NAME@_runtime_version_int() { return @PROJECT_VERSION_INT@; }
/// project version as integer: major
int @PROJECT_NAME@_runtime_version_major(){ return @PACKAGE_VERSION_MAJOR@; }
/// project version as integer: minor
int @PROJECT_NAME@_runtime_version_minor(){ return @PACKAGE_VERSION_MINOR@; }
/// project version as integer: patch
int @PROJECT_NAME@_runtime_version_patch(){ return @PACKAGE_VERSION_PATCH@; }

154
cmake/project_version.cmake Executable file
View File

@ -0,0 +1,154 @@
#
# Sets PROJECT_VERSION and PACKAGE_VERSION
#
# Don't set PROJECT_VERSION to empty string when no VERSION is given to project() command.
#if(POLICY CMP0048)
# cmake_policy(SET CMP0048 OLD)
#endif()
# Split a version number into separate components
# version the version number to split
# major variable name to store the major version in
# minor variable name to store the minor version in
# patch variable name to store the patch version in
# extra variable name to store a version suffix in
function(version_split version major minor patch extra)
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" version_valid ${version})
if(version_valid)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" "\\1;\\2;\\3;\\4" VERSION_MATCHES ${version})
list(GET VERSION_MATCHES 0 version_major)
set(${major} ${version_major} PARENT_SCOPE)
list(GET VERSION_MATCHES 1 version_minor)
set(${minor} ${version_minor} PARENT_SCOPE)
list(GET VERSION_MATCHES 2 version_patch)
set(${patch} ${version_patch} PARENT_SCOPE)
list(GET VERSION_MATCHES 3 version_extra)
set(${extra} ${version_extra} PARENT_SCOPE)
else(version_valid)
message(AUTHOR_WARNING "Bad version ${version}; falling back to 0 (have you made an initial release?)")
set(${major} "0" PARENT_SCOPE)
set(${minor} "0" PARENT_SCOPE)
set(${patch} "0" PARENT_SCOPE)
set(${extra} "" PARENT_SCOPE)
endif(version_valid)
endfunction(version_split)
##############################
# get PROJECT_VERSION from git
##############################
find_program(GIT_CMD git)
mark_as_advanced(GIT_CMD)
if (GIT_CMD)
execute_process(COMMAND ${GIT_CMD} rev-parse --show-toplevel
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TOPLEVEL
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
if (GIT_CMD AND NOT "${GIT_TOPLEVEL}" STREQUAL "")
execute_process(COMMAND ${GIT_CMD} rev-parse --short HEAD
WORKING_DIRECTORY ${GIT_TOPLEVEL}
OUTPUT_VARIABLE GIT_SHA1
OUTPUT_STRIP_TRAILING_WHITESPACE)
#message(STATUS "GIT_SHA1: " ${GIT_SHA1})
execute_process(COMMAND ${GIT_CMD} describe --match "*[0-9].[0-9]*" HEAD
WORKING_DIRECTORY ${GIT_TOPLEVEL}
OUTPUT_VARIABLE GIT_DESCRIBE
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
#message(STATUS "GIT_DESCRIBE: " ${GIT_DESCRIBE})
# if (GIT_DESCRIBE)
# string(REGEX REPLACE "v?([0-9.]+).*" "\\1" GIT_VERSION ${GIT_DESCRIBE})
# message(STATUS "GIT_VERSION: " ${GIT_VERSION})
# # as package version we use the full version from git describe: 1.7.1+7+ge324c81
# if (GIT_DESCRIBE MATCHES ".*-g.*")
# # convert a git describe string to usable debian version, e.g. v1.7.1-7-ge324c81 to 1.7.1+7+ge324c81
# string(REGEX REPLACE "v?([0-9]*.[0-9.]*).*-([0-9]*)-([a-g0-9]*)" "\\1+\\2+\\3" GIT_FULL_VERSION ${GIT_DESCRIBE})
# else()
# # current HEAD is git tag (i.e. releaase), directly use the version
# set(GIT_FULL_VERSION ${GIT_VERSION})
# endif()
# else ()
# # no (suitable) tag found
# set(GIT_VERSION "0.0.0")
# # get number of commits in repo
# execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD
# WORKING_DIRECTORY ${GIT_TOPLEVEL}
# OUTPUT_VARIABLE GIT_COMMIT_COUNT
# OUTPUT_STRIP_TRAILING_WHITESPACE)
# set(GIT_FULL_VERSION 0.0.0+${GIT_COMMIT_COUNT}+g${GIT_SHA1})
# endif ()
endif ()
# get version from package.xml if it exists
if (EXISTS "${PROJECT_SOURCE_DIR}/package.xml")
file(STRINGS "${PROJECT_SOURCE_DIR}/package.xml" PACKAGE_XML_VERSION_LINE REGEX <version>[0-9.]*</version>)
string(REGEX REPLACE .*<version>\([0-9.]*\)</version>.* \\1 PACKAGE_XML_VERSION "${PACKAGE_XML_VERSION_LINE}")
MESSAGE(STATUS "PACKAGE_XML_VERSION: " ${PACKAGE_XML_VERSION})
endif ()
# set version (if not already manually specified)
# check versions from different sources and set actually used version
if (NOT PROJECT_VERSION)
# set PROJECT_VERSION to MAJOR.MINOR.PATCH
# PACKAGE_VERSION can have extra info
if (GIT_VERSION)
set(PROJECT_VERSION ${GIT_VERSION})
set(PACKAGE_VERSION ${GIT_FULL_VERSION})
elseif (PACKAGE_XML_VERSION)
set(PROJECT_VERSION ${PACKAGE_XML_VERSION})
set(PACKAGE_VERSION ${PROJECT_VERSION})
else ()
message(WARNING "PROJECT_VERSION not set. Defaulting to 0.0.0")
set(PROJECT_VERSION "0.0.0")
endif ()
endif ()
# if (NOT PACKAGE_VERSION)
# message(WARNING "PACKAGE_VERSION not set! Falling back to (${PROJECT_VERSION})")
set(PACKAGE_VERSION ${PROJECT_VERSION})
# endif ()
# warn if versions don't match
if (GIT_VERSION AND NOT GIT_VERSION MATCHES ${PROJECT_VERSION})
message(WARNING "Version from git (${GIT_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
endif()
if (PACKAGE_XML_VERSION AND NOT PACKAGE_XML_VERSION MATCHES ${PROJECT_VERSION})
message(WARNING "Version from package.xml (${PACKAGE_XML_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
endif()
message(STATUS "PROJECT_VERSION: " ${PROJECT_VERSION})
message(STATUS "PACKAGE_VERSION: " ${PACKAGE_VERSION})
version_split(${PROJECT_VERSION} PACKAGE_VERSION_MAJOR PACKAGE_VERSION_MINOR PACKAGE_VERSION_PATCH extra)
#message(STATUS "PACKAGE_VERSION_MAJOR: " ${PACKAGE_VERSION_MAJOR})
#message(STATUS "PACKAGE_VERSION_MINOR: " ${PACKAGE_VERSION_MINOR})
#message(STATUS "PACKAGE_VERSION_PATCH: " ${PACKAGE_VERSION_PATCH})
# generate an integer version number: major * 10000 + minor * 100 + patch
math(EXPR PROJECT_VERSION_INT "${PACKAGE_VERSION_MAJOR} * 10000 + ${PACKAGE_VERSION_MINOR} * 100 + ${PACKAGE_VERSION_PATCH}")
# make PROJECT_VERSION available as define in the project source
#add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")
#add_definitions(-DPROJECT_VERSION_INT=${PROJECT_VERSION_INT})
#add_definitions(-DPACKAGE_VERSION="${PACKAGE_VERSION}")
#add_definitions(-DPACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_MAJOR})
#add_definitions(-DPACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR})
#add_definitions(-DPACKAGE_VERSION_PATCH=${PACKAGE_VERSION_PATCH})
# set ABI version to major.minor, which will be used for the SOVERSION
set(abiversion "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}")
# generate a version.h file in the binary output dir, don't forget to install it...
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
# These files provide compile-time and runtime version information about your project.
# To offer the version info to the users of your library, you need to
# adapt the following lines in your respective CMakeLists.txt:
# add_library(<yourlibraryname> SHARED <your code files> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.cc)
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.h COMPONENT dev DESTINATION include/<your-include-dir>)
# To use it within your library or tests you need to add the include directory:
# > target_include_directories(yourtarget PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME})
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.h.in ${PROJECT_NAME}/project_version.h @ONLY)
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.cc.in ${PROJECT_NAME}/project_version.cc @ONLY)

34
cmake/project_version.h.in Executable file
View File

@ -0,0 +1,34 @@
#ifndef @PROJECT_NAME_UPPER@_VERSION_H_
#define @PROJECT_NAME_UPPER@_VERSION_H_
/// project version as major.minor.patch string
#define @PROJECT_NAME_UPPER@_VERSION "@PROJECT_VERSION@"
/// project version as integer: major * 10000 + minor * 100 + patch
#define @PROJECT_NAME_UPPER@_VERSION_INT @PROJECT_VERSION_INT@
#define @PROJECT_NAME_UPPER@_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@
#define @PROJECT_NAME_UPPER@_VERSION_MINOR @PACKAGE_VERSION_MINOR@
#define @PROJECT_NAME_UPPER@_VERSION_PATCH @PACKAGE_VERSION_PATCH@
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
#define @PROJECT_NAME_UPPER@_PACKAGE_VERSION "@PACKAGE_VERSION@"
///runtime versions, where the above values are linked into a lib and therefore reflect the version
///of the library itself (not the version of the header at compile time of the user code)
const char* @PROJECT_NAME@_runtime_project_version();
const char* @PROJECT_NAME@_runtime_package_version();
int @PROJECT_NAME@_runtime_version_int();
int @PROJECT_NAME@_runtime_version_major();
int @PROJECT_NAME@_runtime_version_minor();
int @PROJECT_NAME@_runtime_version_patch();
///Check consistency of runtime vs compile-time version number. I.e. the header used
///for compilation was from the same version as the linked library.
inline bool @PROJECT_NAME@_check_version_consistency(bool major_minor_only)
{
return @PROJECT_NAME@_runtime_version_major() == @PROJECT_NAME_UPPER@_VERSION_MAJOR &&
@PROJECT_NAME@_runtime_version_minor() == @PROJECT_NAME_UPPER@_VERSION_MINOR &&
(major_minor_only ||
@PROJECT_NAME@_runtime_version_patch() == @PROJECT_NAME_UPPER@_VERSION_PATCH);
}
#endif

221
cmk.sh Executable file
View File

@ -0,0 +1,221 @@
#!/bin/bash
BUILDDIR="build"
HDF5DIR="/opt/hdf5v1.10.0"
HDF5=0
COMPILERTHREADS=0
TEXTCLIENT=0
RECEIVER=0
GUI=0
DEBUG=0
PYTHON=0
CLEAN=0
REBUILD=0
CMAKE_PRE=""
CMAKE_POST=""
usage() { echo -e "
Usage: $0 [-c] [-b] [-p] [e] [t] [r] [g] [-h] [-d <HDF5 directory>] [-j] <Number of threads>
-[no option]: only make
-c: Clean
-b: Builds/Rebuilds CMake files normal mode
-p: Builds/Rebuilds Python API
-h: Builds/Rebuilds Cmake files with HDF5 package
-d: HDF5 Custom Directory
-t: Build/Rebuilds only text client
-r: Build/Rebuilds only receiver
-g: Build/Rebuilds only gui
-j: Number of threads to compile through
-e: Debug mode
Rebuild when you switch to a new build and compile in parallel:
./cmk.sh -bj5
Rebuild python
./cmk.sh -p
For only make:
./cmk.sh
For make clean;make:
./cmk.sh -c
For using hdf5 without default dir /opt/hdf5v1.10.0:
./cmk.sh -h
For using hdf5 without custom dir /blabla:
./cmk.sh -h -d /blabla
For rebuilding cmake without hdf5 (Use this if you had previously run with hdf5 and now you dont want it)
./cmk.sh -b
For using multiple cores to compile faster:
(all these options work)
./cmk.sh -j9
./cmk.sh -cj9 #with clean
./cmk.sh -hj9 #with hdf5
./cmk.sh -j9 -h #with hdf
For rebuilding only certain sections
./cmk.sh -tg #only text client and gui
./cmk.sh -r #only receiver
" ; exit 1; }
while getopts ":bpchd:j:trges:" opt ; do
case $opt in
b)
echo "Building of CMake files Required"
REBUILD=1
;;
p)
echo "Compiling Options: Python"
PYTHON=1
REBUILD=1
;;
c)
echo "Clean Required"
CLEAN=1
;;
h)
echo "Building of CMake files with HDF5 option Required"
HDF5=1
REBUILD=1
;;
d)
echo "New HDF5 directory: $OPTARG"
HDF5DIR=$OPTARG
;;
j)
echo "Number of compiler threads: $OPTARG"
COMPILERTHREADS=$OPTARG
;;
t)
echo "Compiling Options: Text Client"
TEXTCLIENT=1
REBUILD=1
;;
r)
echo "Compiling Options: Receiver"
RECEIVER=1
REBUILD=1
;;
g)
echo "Compiling Options: GUI"
GUI=1
REBUILD=1
;;
e)
echo "Compiling Options: Debug"
DEBUG=1
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 1
;;
:)
echo "Option -$OPTARG requires an argument."
usage
exit 1
;;
esac
done
#python
if [ $PYTHON -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_PYTHON=ON "
echo "Enabling Compile Option: Python"
fi
if [ $TEXTCLIENT -eq 0 ] && [ $RECEIVER -eq 0 ] && [ $GUI -eq 0 ]; then
#CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON -DSLS_USE_GUI=ON "
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON -DSLS_USE_GUI=OFF "
echo "Enabling Compile Option: TextClient, Receiver and GUI"
else
if [ $TEXTCLIENT -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON "
echo "Enabling Compile Option: TextClient"
fi
if [ $RECEIVER -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_RECEIVER=ON "
echo "Enabling Compile Option: Receiver"
fi
if [ $GUI -eq 1 ]; then
CMAKE_POST+=" -DSLS_USE_GUI=ON "
echo "Enabling Compile Option: GUI"
fi
fi
#build dir doesnt exist
if [ ! -d "$BUILDDIR" ] ; then
echo "No Build Directory. Building of Cmake files required"
mkdir $BUILDDIR;
REBUILD=1
else
#rebuild not requested, but no makefile
if [ $REBUILD -eq 0 ] && [ ! -f "$BUILDDIR/Makefile" ] ; then
echo "No Makefile. Building of Cmake files required"
REBUILD=1
fi
fi
#Debug
if [ $DEBUG -eq 1 ]; then
CMAKE_POST+=" -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_SANITIZER=ON "
echo "Debug Option enabled"
fi
#hdf5 rebuild
if [ $HDF5 -eq 1 ]; then
# CMAKE_PRE+="HDF5_ROOT="$HDF5DIR
CMAKE_POST+=" -DCMAKE_INSTALL_PREFIX="$HDF5DIR
CMAKE_POST+=" -DSLS_USE_HDF5=ON "
#normal mode rebuild
else
CMAKE_POST+=" -DSLS_USE_HDF5=OFF "
fi
#enter build dir
cd $BUILDDIR;
echo "in "$PWD
#cmake
if [ $REBUILD -eq 1 ]; then
rm -f CMakeCache.txt
BUILDCOMMAND="$CMAKE_PRE cmake3 $CMAKE_POST .."
echo $BUILDCOMMAND
eval $BUILDCOMMAND
fi
#make clean
if [ $CLEAN -eq 1 ]; then
make clean;
fi
#make
if [ $COMPILERTHREADS -gt 0 ]; then
BUILDCOMMAND="make -j$COMPILERTHREADS"
echo $BUILDCOMMAND
eval $BUILDCOMMAND
else
make
fi

19
conda-recepie/build.sh Executable file
View File

@ -0,0 +1,19 @@
mkdir build
mkdir install
cd build
cmake .. \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_INSTALL_PREFIX=install \
-DSLS_USE_TEXTCLIENT=ON \
-DSLS_USE_RECEIVER=ON \
-DSLS_USE_GUI=OFF \
-DSLS_USE_TESTS=ON \
-DSLS_USE_PYTHON=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DSLS_USE_HDF5=OFF\
cmake --build . -- -j10
cmake --build . --target install
CTEST_OUTPUT_ON_FAILURE=1 ctest -j 2

14
conda-recepie/build_pylib.sh Executable file
View File

@ -0,0 +1,14 @@
# mkdir $PREFIX/lib
# mkdir $PREFIX/include
# #Shared and static libraries
# cp build/bin/_sls_detector* $PREFIX/lib/.
# #Binaries
# cp -r build/bin/sls_detector $PREFIX/lib/.
cd python
${PYTHON} setup.py install

15
conda-recepie/copy_gui.sh Executable file
View File

@ -0,0 +1,15 @@
mkdir $PREFIX/lib
mkdir $PREFIX/bin
mkdir $PREFIX/include
#No libs for gui?
#Binaries
cp build/bin/gui_client $PREFIX/bin/.
cp build/bin/slsDetectorGui $PREFIX/bin/.
#Which headers do we need for development??
# cp include/some_lib.h $PREFIX/include/.

22
conda-recepie/copy_lib.sh Executable file
View File

@ -0,0 +1,22 @@
mkdir $PREFIX/lib
mkdir $PREFIX/bin
mkdir $PREFIX/include
mkdir $PREFIX/include/slsDetectorPackage
#Shared and static libraries
cp build/bin/libSlsDetector.so $PREFIX/lib/.
cp build/bin/libSlsReceiver.so $PREFIX/lib/.
cp build/bin/libSlsSupport.so $PREFIX/lib/.
#Binaries
cp build/bin/sls_detector_acquire $PREFIX/bin/.
cp build/bin/sls_detector_get $PREFIX/bin/.
cp build/bin/sls_detector_put $PREFIX/bin/.
cp build/bin/sls_detector_help $PREFIX/bin/.
cp build/bin/slsReceiver $PREFIX/bin/.
cp build/bin/slsMultiReceiver $PREFIX/bin/.
#Which headers do we need for development??
cp build/install/include/* $PREFIX/include/slsDetectorPackage/
# cp include/some_lib.h $PREFIX/include/.

120
conda-recepie/meta.yaml Executable file
View File

@ -0,0 +1,120 @@
package:
name: sls_detector_software
version: "developer"
source:
- path: ..
build:
number: 1
rpaths:
- lib/
requirements:
build:
- {{ compiler('c') }}
- {{compiler('cxx')}}
- cmake
# - qwt 6.* #require qt5 investigate befor activating gui
# - qt=4.8.7=7
- zeromq=4.2.5=hfc679d8_5
- pyzmq
- xorg-libx11
- xorg-libice
- xorg-libxext
- xorg-libsm
- xorg-libxau
- xorg-libxrender
- xorg-libxfixes
- {{ cdt('mesa-libgl-devel') }} # [linux]
- {{ cdt('mesa-libegl-devel') }} # [linux]
- {{ cdt('mesa-dri-drivers') }} # [linux]
- {{ cdt('libselinux') }} # [linux]
- {{ cdt('libxdamage') }} # [linux]
- {{ cdt('libxxf86vm') }} # [linux]
host:
- libstdcxx-ng
- libgcc-ng
- xorg-libx11
- xorg-libice
- xorg-libxext
- xorg-libsm
- xorg-libxau
- xorg-libxrender
- xorg-libxfixes
run:
- libstdcxx-ng
- libgcc-ng
outputs:
- name: sls_detector_lib
script: copy_lib.sh
- name: sls_detector
script: build_pylib.sh
requirements:
build:
- {{ compiler('c') }}
- {{compiler('cxx')}}
- python {{ python }}
- setuptools
- sls_detector_lib
- pyzmq
- pybind11 2.2
host:
- python
- pybind11 2.2
- pyzmq
- sls_detector_lib
- libstdcxx-ng
- libgcc-ng
run:
- python
- numpy
- sls_detector_lib=developer
- pyzmq
- libstdcxx-ng
- libgcc-ng
test:
imports:
- sls_detector
# requirements:
# build:
# - {{ compiler('c') }}
# - {{compiler('cxx')}}
# - name: sls_detector_gui
# version: "refactor"
# script: copy_gui.sh
# requirements:
# build:
# - {{ compiler('c') }}
# - {{compiler('cxx')}}
# - cmake
# - qwt 6.*
# - qt=4.8.7=7
# - zeromq=4.2.5=hfc679d8_5
# - pyzmq
# - xorg-libx11
# - xorg-libice
# - xorg-libxext
# - xorg-libsm
# - xorg-libxau
# - xorg-libxrender
# - xorg-libxfixes
# - {{ cdt('mesa-libgl-devel') }} # [linux]
# - {{ cdt('mesa-libegl-devel') }} # [linux]
# - {{ cdt('mesa-dri-drivers') }} # [linux]
# - {{ cdt('libselinux') }} # [linux]
# - {{ cdt('libxdamage') }} # [linux]
# - {{ cdt('libxxf86vm') }} # [linux]
# run:
# - sls_detector_lib=refactor
# - qwt 6.*
# - qt=4.8.7=7

1
conda-recepie/run_test.sh Executable file
View File

@ -0,0 +1 @@
ctest -j2

View File

@ -1 +0,0 @@
No implementation found for style `graphicx'

View File

@ -1,30 +0,0 @@
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.MATH { font-family: "Century Schoolbook", serif; }
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
/* implement both fixed-size and relative sizes */
SMALL.XTINY { font-size : xx-small }
SMALL.TINY { font-size : x-small }
SMALL.SCRIPTSIZE { font-size : smaller }
SMALL.FOOTNOTESIZE { font-size : small }
SMALL.SMALL { }
BIG.LARGE { }
BIG.XLARGE { font-size : large }
BIG.XXLARGE { font-size : x-large }
BIG.HUGE { font-size : larger }
BIG.XHUGE { font-size : xx-large }
/* heading styles */
H1 { }
H2 { }
H3 { }
H4 { }
H5 { }
/* mathematics styles */
DIV.displaymath { } /* math displays */
TD.eqno { } /* equation-number cells */
/* document-specific styles come next */

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Angular calibration wizard manual</TITLE>
<META NAME="description" CONTENT="Angular calibration wizard manual">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node1.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html6"
HREF="node1.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
<BR>
<B> Next:</B> <A NAME="tex2html7"
HREF="node1.html">Introduction</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<P>
<H1 ALIGN="CENTER">Angular calibration wizard manual</H1>
<DIV>
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
<P ALIGN="CENTER"><STRONG>April 8, 2019</STRONG></P>
</DIV>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"></A>
<UL>
<LI><A NAME="tex2html8"
HREF="node1.html">Introduction</A>
<LI><A NAME="tex2html9"
HREF="node2.html">Data acquisition</A>
<UL>
<LI><A NAME="tex2html10"
HREF="node2.html#SECTION00021000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html11"
HREF="node3.html">Data analysis</A>
<UL>
<LI><A NAME="tex2html12"
HREF="node3.html#SECTION00031000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html13"
HREF="node4.html">Setup calibration files</A>
<LI><A NAME="tex2html14"
HREF="node5.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,116 +0,0 @@
# LaTeX2HTML 2012 (1.2)
# Associate images original text with physical files.
$key = q/Theta_e;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img4.png"
ALT="$\Theta_e$">|;
$key = q/C_{center}^{i};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img7.png"
ALT="$C_{center}^{i}$">|;
$key = q/i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img3.png"
ALT="$i$">|;
$key = q/mu;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img11.png"
ALT="$\mu$">|;
$key = q/Theta_o^i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img6.png"
ALT="$\Theta_o^i$">|;
$key = q/includegraphics[width=textwidth]{enable_angcal.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img14.png"
ALT="\includegraphics[width=\textwidth]{enable_angcal.eps}">|;
$key = q/p=50~mum;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="79" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img9.png"
ALT="$p=50&nbsp;\mu m$">|;
$key = q/C_{peak};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img2.png"
ALT="$C_{peak}$">|;
$key = q/_6;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="12" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img10.png"
ALT="$_6$">|;
$key = q/includegraphics[width=textwidth]{peakFit.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img17.png"
ALT="\includegraphics[width=\textwidth]{peakFit.eps}">|;
$key = q/pslashR^i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="38" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img13.png"
ALT="$p/R^i$">|;
$key = q/includegraphics[width=textwidth]{setupAngcal.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img16.png"
ALT="\includegraphics[width=\textwidth]{setupAngcal.eps}">|;
$key = q/includegraphics[width=textwidth]{angleFit.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img18.png"
ALT="\includegraphics[width=\textwidth]{angleFit.eps}">|;
$key = q/pm;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img12.png"
ALT="$\pm$">|;
$key = q/{displaymath}Theta_e=Theta_o^i-arctanBig(frac{pcdot(C_{peak}-C_{center}^i)}{R^i}Big),{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="291" HEIGHT="41" BORDER="0"
SRC="|."$dir".q|img5.png"
ALT="\begin{displaymath}
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
\end{displaymath}">|;
$key = q/theta;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img1.png"
ALT="$\theta$">|;
$key = q/R^i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="22" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img8.png"
ALT="$R^i$">|;
$key = q/includegraphics[width=textwidth]{position_scan.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img15.png"
ALT="\includegraphics[width=\textwidth]{position_scan.eps}">|;
1;

View File

@ -1,255 +0,0 @@
\batchmode
\documentclass{article}
\RequirePackage{ifthen}
\usepackage{amssymb}
\usepackage[dvips]{graphicx}
\usepackage{verbatim}
\usepackage[dvips]{color}
\pagecolor[gray]{.7}
\usepackage[]{inputenc}
\makeatletter
\makeatletter
\count@=\the\catcode`\_ \catcode`\_=8
\newenvironment{tex2html_wrap}{}{}%
\catcode`\<=12\catcode`\_=\count@
\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
\expandafter\renewcommand\csname #1\endcsname}%
\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
\let\newedcommand\renewedcommand
\let\renewedenvironment\newedenvironment
\makeatother
\let\mathon=$
\let\mathoff=$
\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
\newbox\sizebox
\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
\setlength{\textwidth}{349pt}
\newwrite\lthtmlwrite
\makeatletter
\let\realnormalsize=\normalsize
\global\topskip=2sp
\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
\def\@float{\let\@savefreelist\@freelist\real@float}
\def\liih@math{\ifmmode$\else\bad@math\fi}
\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
\let\@largefloatcheck=\relax
\let\if@boxedmulticols=\iftrue
\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
\parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
\def\phantompar{\csname par\endcsname}\normalsize}%
\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
\let\ifinner=\iffalse \let\)\liih@math }%
\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
\expandafter\box\next\egroup}%
\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox
\ifdim\dimen0>.95\vsize
\lthtmltypeout{%
*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}%
\ht\sizebox.95\vsize \dp\sizebox\z@ \fi
\lthtmltypeout{l2hSize %
:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
\lthtmlmathtype{#1}\lthtmlvboxmathA}%
\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
\let\@savefreelist\@freelist \lthtmlhboxmathB}%
\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
\global\let\@freelist\@savefreelist}%
\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
\lthtmldisplayA{#1}\let\@eqnnum\relax}%
\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
\vrule height1.5ex width0pt }%
\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
\newcommand\lthtmlindisplaymathZ{\egroup %
\centerinlinemath\lthtmllogmath\lthtmlsetmath}
\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
\kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
\kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
\ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
\def\centerinlinemath{%
\dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
\advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
\dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
\ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
\else\expandafter\vss\fi}%
\providecommand{\selectlanguage}[1]{}%
\makeatletter \tracingstats = 1
\begin{document}
\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
\makeatletter
\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
\lthtmltypeout{}%
\makeatother
\setcounter{page}{1}
\onecolumn
% !!! IMAGES START HERE !!!
\stepcounter{section}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline84}%
$\theta$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline86}%
$C_{peak}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline88}%
$i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline90}%
$\Theta_e$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmldisplayA{displaymath18}%
\begin{displaymath}
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
\end{displaymath}%
\lthtmldisplayZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline94}%
$\Theta_o^i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline96}%
$C_{center}^{i}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline98}%
$R^i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline102}%
$p=50~\mu m$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline106}%
$_6$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline108}%
$\mu$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline110}%
$\pm$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline120}%
$p/R^i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap330}%
\includegraphics[width=\textwidth]{enable_angcal.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap334}%
\includegraphics[width=\textwidth]{position_scan.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\stepcounter{subsection}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap340}%
\includegraphics[width=\textwidth]{setupAngcal.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap344}%
\includegraphics[width=\textwidth]{peakFit.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap348}%
\includegraphics[width=\textwidth]{angleFit.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Angular calibration wizard manual</TITLE>
<META NAME="description" CONTENT="Angular calibration wizard manual">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node1.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html6"
HREF="node1.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
<BR>
<B> Next:</B> <A NAME="tex2html7"
HREF="node1.html">Introduction</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<P>
<H1 ALIGN="CENTER">Angular calibration wizard manual</H1>
<DIV>
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
<P ALIGN="CENTER"><STRONG>April 8, 2019</STRONG></P>
</DIV>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"></A>
<UL>
<LI><A NAME="tex2html8"
HREF="node1.html">Introduction</A>
<LI><A NAME="tex2html9"
HREF="node2.html">Data acquisition</A>
<UL>
<LI><A NAME="tex2html10"
HREF="node2.html#SECTION00021000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html11"
HREF="node3.html">Data analysis</A>
<UL>
<LI><A NAME="tex2html12"
HREF="node3.html#SECTION00031000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html13"
HREF="node4.html">Setup calibration files</A>
<LI><A NAME="tex2html14"
HREF="node5.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,30 +0,0 @@
# LaTeX2HTML 2012 (1.2)
# Associate internals original text with physical files.
$key = q/fig:guiangcallog/;
$ref_files{$key} = "$dir".q|node2.html|;
$noresave{$key} = "$nosave";
$key = q/fig:guiposscan/;
$ref_files{$key} = "$dir".q|node2.html|;
$noresave{$key} = "$nosave";
$key = q/fig:peakfit/;
$ref_files{$key} = "$dir".q|node3.html|;
$noresave{$key} = "$nosave";
$key = q/eq:angcal/;
$ref_files{$key} = "$dir".q|node1.html|;
$noresave{$key} = "$nosave";
$key = q/fig:setangcal/;
$ref_files{$key} = "$dir".q|node3.html|;
$noresave{$key} = "$nosave";
$key = q/fig:anglefit/;
$ref_files{$key} = "$dir".q|node3.html|;
$noresave{$key} = "$nosave";
1;

View File

@ -1,61 +0,0 @@
# LaTeX2HTML 2012 (1.2)
# Associate labels original text with physical files.
$key = q/fig:guiangcallog/;
$external_labels{$key} = "$URL/" . q|node2.html|;
$noresave{$key} = "$nosave";
$key = q/fig:guiposscan/;
$external_labels{$key} = "$URL/" . q|node2.html|;
$noresave{$key} = "$nosave";
$key = q/fig:peakfit/;
$external_labels{$key} = "$URL/" . q|node3.html|;
$noresave{$key} = "$nosave";
$key = q/eq:angcal/;
$external_labels{$key} = "$URL/" . q|node1.html|;
$noresave{$key} = "$nosave";
$key = q/fig:setangcal/;
$external_labels{$key} = "$URL/" . q|node3.html|;
$noresave{$key} = "$nosave";
$key = q/fig:anglefit/;
$external_labels{$key} = "$URL/" . q|node3.html|;
$noresave{$key} = "$nosave";
1;
# LaTeX2HTML 2012 (1.2)
# labels from external_latex_labels array.
$key = q/fig:guiangcallog/;
$external_latex_labels{$key} = q|1|;
$noresave{$key} = "$nosave";
$key = q/fig:guiposscan/;
$external_latex_labels{$key} = q|2|;
$noresave{$key} = "$nosave";
$key = q/fig:peakfit/;
$external_latex_labels{$key} = q|4|;
$noresave{$key} = "$nosave";
$key = q/eq:angcal/;
$external_latex_labels{$key} = q|1|;
$noresave{$key} = "$nosave";
$key = q/fig:setangcal/;
$external_latex_labels{$key} = q|3|;
$noresave{$key} = "$nosave";
$key = q/fig:anglefit/;
$external_latex_labels{$key} = q|5|;
$noresave{$key} = "$nosave";
1;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

View File

@ -1,180 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Introduction</TITLE>
<META NAME="description" CONTENT="Introduction">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node2.html">
<LINK REL="previous" HREF="angularCalibrationHowTo.html">
<LINK REL="up" HREF="angularCalibrationHowTo.html">
<LINK REL="next" HREF="node2.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html23"
HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html21"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html15"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html24"
HREF="node2.html">Data acquisition</A>
<B> Up:</B> <A NAME="tex2html22"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html16"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00010000000000000000">
Introduction</A>
</H1>
<P>
In order to convert from strip number to 2<IMG
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$\theta$">-angle, an accurate angular calibration of the detector must be performed (for details see the paper Bergamaschi, A. et al. (2010). J. Synchrotron Rad. 17, 653-668).
<BR>
<P>
For this purpose, a series of patterns of a powder standard with symmetric peaks (e.g. silicon) must acquired while shifting the detector by an angular step of the order of about 2% of the module size. During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position.
<BR>
<P>
In a first step, the peak is fitted with a Gaussian in order to determine its position <IMG
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img2.png"
ALT="$C_{peak}$"> in channel number for each of the acquired patterns.
<BR>
In a second step, for each module <IMG
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$i$">, the encoder position <IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img4.png"
ALT="$\Theta_e$"> is fitted as a function of the peak position <IMG
WIDTH="43" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img2.png"
ALT="$C_{peak}$"> according to:
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:angcal"></A><IMG
WIDTH="291" HEIGHT="41" BORDER="0"
SRC="img5.png"
ALT="\begin{displaymath}
\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(1)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
where the parameters <IMG
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img6.png"
ALT="$\Theta_o^i$"> is the angular offset with respect to the diffractometer zero position, <!-- MATH
$C_{center}^{i}$
-->
<IMG
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img7.png"
ALT="$C_{center}^{i}$"> is the central channel and <IMG
WIDTH="22" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img8.png"
ALT="$R^i$"> is the distance of the module <IMG
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$i$"> from the diffractometer center while <IMG
WIDTH="79" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img9.png"
ALT="$p=50~\mu m$"> is the strip pitch of the detector.
<BR>
Finally, the global offset of the detector system is precisely determined by refining a silicon pattern at a well-defined energy (i.e., knowing the position of the peak).
<P>
The same function of equation&nbsp;<A HREF="#eq:angcal">1</A>, with the parameters obtained from the calibration, is used in order to convert from channel number to 2<IMG
WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$\theta$">-angle.
<P>
The parallax at the borders of the modules due to the thickness of the silicon sensor is a function of the X-ray energy (higher energy X-rays are absorbed deeper inside the sensor) and is of the order of 0.2&nbsp;mdeg at 12&nbsp;keV and 0.5&nbsp;mdeg at 30&nbsp;keV.
<BR>
The differences in pixel size due to the different portion of solid angle covered by the strips on the border of the modules and the higher efficiency due to the longer path of the X-rays in the sensor are removed by the flat field correction. This also normalizes additional differences in pixel size between channels which are also present because of mismatches in the strip sensor fabrication and in fluctuations of the channels threshold level.
<P>
Patterns acquired at different detector positions are generally merged together in order to fill the gaps between the modules and correct possibly bad functioning channels. In this procedure the data from different positions which are closer than 4&nbsp;mdeg (the average pixel size) are averaged and the new position is set to the mean of the positions of the original points.
<P>
The position and width of the peaks results from a fit over several detector channels. Geometrical distortions might disturb this determination mainly because of errors in the angular calibration, fluctuations in the encoder position, variations between channels and parallax effects.
<BR>
The resolution in locating the peak center and determining its width and integrated intensity has been estimated by acquiring several patterns of a LaB<IMG
WIDTH="12" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img10.png"
ALT="$_6$"> sample in a 300&nbsp;<IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img11.png"
ALT="$\mu$">m capillary with the detector shifted in 5&nbsp;mdeg steps between 30.4 and 36.5 degrees. The 16&nbsp;peaks acquired have been fitted with a Gaussian function plus background and the fluctuations on the fitted parameters have been calculated. The resulting average resolutions are 0.63<IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img12.png"
ALT="$\pm$">0.06&nbsp;mdeg for the peak center and 0.22<IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img12.png"
ALT="$\pm$">0.05&nbsp;mdeg for the peak Full-Width at Half-Maximum (FWHM) for an average peak FWHM of 27.0<IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img12.png"
ALT="$\pm$">2.5&nbsp;mdeg.
<BR>
These results show that the angular calibration allows a resolution in determining the peaks position and width which is appropriate for structural determination.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html23"
HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html21"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html15"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html24"
HREF="node2.html">Data acquisition</A>
<B> Up:</B> <A NAME="tex2html22"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html16"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<!--End of Navigation Panel-->
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,211 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Data acquisition</TITLE>
<META NAME="description" CONTENT="Data acquisition">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node3.html">
<LINK REL="previous" HREF="node1.html">
<LINK REL="up" HREF="angularCalibrationHowTo.html">
<LINK REL="next" HREF="node3.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html33"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html31"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html25"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html34"
HREF="node3.html">Data analysis</A>
<B> Up:</B> <A NAME="tex2html32"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html26"
HREF="node1.html">Introduction</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html35"
HREF="node2.html#SECTION00021000000000000000">Software</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<H1><A NAME="SECTION00020000000000000000">
Data acquisition</A>
</H1>
<P>
The angular calibration consists in acquiring a set of diffraction patterns of a well known powder standard (e.g. Silicon) at different encoder positions. In order to facilitate the procedure, the sample should not emit fluorescent light and should present relatively symmetric peaks.
<BR>
During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position. In general the highest peak will be used for the calibration, but this is not necessary in case there would be e.g. geometrical limitations for shifting the detector.
<BR><B>Do not forget to properly position the beam stopper if the detector is scanned in front of the direct beam.</B>
<BR>
The detector should be shifted of an angular step of the order of about 2% of the module size, such that about 50 patterns can contribute to the fitting of the 3 parameters necessary for the angular calibration.
<BR>
<P>
All the angular calibration procedure should be acquired using a trimmed detector with the threshold set at half of the X-ray energy (Assuming no fluorescent element in the standard). A flat field should also be acquired in order to precisely correct the data, while the X-ray intensity should be kept lower than about 100&nbsp;kHz per strip in order to avoid the need for rate corrections.
<P>
A rough angular conversion file starting from a previous calibration or from the geometric characteristics of the mechanics is an advantage. The angular conversion file should contain a line for each module of the detector with its module number <IMG
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$i$">, center <!-- MATH
$C_{center}^{i}$
-->
<IMG
WIDTH="53" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img7.png"
ALT="$C_{center}^{i}$"> and error, conversion radius <IMG
WIDTH="38" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img13.png"
ALT="$p/R^i$"> and error, offset <IMG
WIDTH="24" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img6.png"
ALT="$\Theta_o^i$"> and error:
<PRE>
module 0 center 639.5 +- 0 conversion 6.56E-05 +- 0 offset 0 +- 0
</PRE>
Also the <I>global offset</I> value of the beamline should be approximately known i.e. the angular position of channel 0 of module 0 when the motor is set at 0.
<BR>
All the documentation assumes that the detector is oriented in the same direction as the encoder position i.e. large channel number at higher angles (both per module and absolute). If this is not the case, the <I>angular direction</I> should be set to -1.
<P>
<H2><A NAME="SECTION00021000000000000000">
Software</A>
</H2>
<P>
For the acquisition ot the data you need to install the slsDetector software package (please refere to separate documentation). The use of the GUI is optional and all operations can be performed also using the text client.
<BR>
<P>
Please make sure that you have edited the
<BR><I>slsDetectorSoftware/usersFunctions/angleFunction.h</I>
<BR>
in order to match the angular conversion for your geometry and
<BR><I>slsDetectorSoftware/usersFunctions/usersFunctions.cpp</I>
<BR>
in order to be able to move the detector and read out its position by using the slsDetector software.
<P>
In the following the command to acquire a dataset for the angular calibration with an exposure time of 1&nbsp;s, and position shift
<PRE>
#setup angular calibration log mode
&gt; sls_detector_put angcallog 1
#set exposure time to 1s
&gt; sls_detector_put exptime 1.
#setup threshold scan
&gt; sls_detector_put scan0script position
#setup the precision for the scan variable in the file name
&gt; sls_detector_put scan0prec 2
#set scan range between 20deg and -60deg, step of -0.1deg
# (at 12.4 keV the Si(111) peak is at approx 19deg
&gt; sls_detector_put scan0range 20 -60 -0.1
#acquire the data
&gt; sls_detector_acquire
#unset angular calibration log mode
&gt; sls_detector_put angcallog 0
</PRE>
<P>
With the GUI you can obtain the same results by clicking on the <I>Angular calibration</I> log button in the advanced tab (see figure&nbsp;<A HREF="#fig:guiangcallog">1</A>) and setting up the motor position scan in the Actions tab (see figure&nbsp;<A HREF="#fig:guiposscan">2</A>). The exposure time should also be set in the measurement tab.
<P>
Additional to the data files, the acquisition will produce a .angcal file containing an header and, for each step of the acquisition, the exect value of the motor position and the file name.
<BR>
In case you forgot to enable the angcallog flag in the software, you can produce the file with the syntax as follows, assuming that you know the exact values of your encoder for each frame:
<PRE>
type Mythen
maxmod 32
nmod 32
angconv /scratch/angcal20120422/ang.off
globaloff 5.088
fineoff 0.0
angdir 1
ffdir /scratch/angcal20120422/
flatfield flatfield_E12keV_T6keV_0.raw
badchannels /scratch/cal/bad.chans
19.99998 angcal_S20.00_0
19.90001 angcal_S19.90_0
19.79999 angcal_S19.80_0
19.70002 angcal_S19.70_0
......
</PRE>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:guiangcallog"></A><A NAME="46"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
Acquisition GUI window to enable the angular calibration log.</CAPTION>
<TR><TD><IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="img14.png"
ALT="\includegraphics[width=\textwidth]{enable_angcal.eps}"></TD></TR>
</TABLE>
</DIV>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:guiposscan"></A><A NAME="51"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
Acquisition GUI window to setup the motor position scan.</CAPTION>
<TR><TD><IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="img15.png"
ALT="\includegraphics[width=\textwidth]{position_scan.eps}"></TD></TR>
</TABLE>
</DIV>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html33"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html31"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html25"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html34"
HREF="node3.html">Data analysis</A>
<B> Up:</B> <A NAME="tex2html32"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html26"
HREF="node1.html">Introduction</A>
<!--End of Navigation Panel-->
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,180 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Data analysis</TITLE>
<META NAME="description" CONTENT="Data analysis">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node4.html">
<LINK REL="previous" HREF="node2.html">
<LINK REL="up" HREF="angularCalibrationHowTo.html">
<LINK REL="next" HREF="node4.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html44"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html42"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html36"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html45"
HREF="node4.html">Setup calibration files</A>
<B> Up:</B> <A NAME="tex2html43"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html37"
HREF="node2.html">Data acquisition</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html46"
HREF="node3.html#SECTION00031000000000000000">Software</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<H1><A NAME="SECTION00030000000000000000">
Data analysis</A>
</H1>
<P>
The data analysis consists in fitting with a gaussian the selected peak of the powder pattern for each position in order to determine its position is channel number as a function of the encoder position.
<BR>
In a second step, for each module, the channel vs. encoder curve is fitted in order to extrapolate the three parameters necessary for the angular conversion and the result is written to file
<P>
<H2><A NAME="SECTION00031000000000000000">
Software</A>
</H2>
<P>
The software used for the angular calibration data analysis is based on root (see http://root.cern.ch).
<BR>
This can be downloaded as binary or installed from sources. The version of the software should not play an important role, but up to now everything has been implemented and tested using version 5.20.
<P>
To start the data analysis simply launch:
<PRE>
&gt; ./angularCalibrationWizard
</PRE>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:setangcal"></A><A NAME="60"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
Overview of the nagular calibration dataset.</CAPTION>
<TR><TD><IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="img16.png"
ALT="\includegraphics[width=\textwidth]{setupAngcal.eps}"></TD></TR>
</TABLE>
</DIV>
<P>
To setup the angular calibration dataset, the .angcal file should be selected (or digited) and the load button should be pressed to confirm. The parameters of the angular calibration are then read to the file and the data loaded for a quick overview (see figure&nbsp;<A HREF="#fig:setangcal">3</A>).
<BR>
The software assumes that the data files (.raw) and the .encal file are in the same directory.
<BR>
A 2D color plot will show a rebinned overview of the dataset. The peak to be fitted should be visible as a high intensity diagonal line passing through all the channels.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:peakfit"></A><A NAME="66"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
Preview of the fitting of the Si(111) peak for one of the detector positions.</CAPTION>
<TR><TD><IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="img17.png"
ALT="\includegraphics[width=\textwidth]{peakFit.eps}"></TD></TR>
</TABLE>
</DIV>
<P>
For a more detailed view of the data, one can select an angular calibration step from the combo box, select the plot mode (raw data or processed data as a function of channel number, processed angular converted data, flat field data, or again an overview of the whole dataset).
<BR>
By (right) clicking close to the axis you are able to zoom in/out, set the scale to logarithmic etc.
<BR>
<P>
If the bad channel list, angular conversion file or flat field file are changed compared to the acquisition, they can be reloaded by editing the correspondent text entries and pressing enter.
<P>
In particular, the angular converted data should be checked in order to view the position of the selected peak. In this case, the plot will be zoomed to the angular region slected in the minimum and maximum angle entries. By pressing fit, the fit of the peak in the selected angular range will be shown (see figure&nbsp;<A HREF="#fig:peakfit">4</A>). It is useful to check that it works properly in several positions such that then the sequential fitting on all steps can give good results.
<P>
To automatically fit all positions simply press <I>Proceed to Modules Calibration</I> and wait until all steps are fitted. This can take sometime, depending on the number of steps.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:anglefit"></A><A NAME="73"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
Window for fitting the angular calibration parameters of a module.</CAPTION>
<TR><TD><IMG
WIDTH="555" HEIGHT="707" ALIGN="BOTTOM" BORDER="0"
SRC="img18.png"
ALT="\includegraphics[width=\textwidth]{angleFit.eps}"></TD></TR>
</TABLE>
</DIV>
<P>
In the module calibration window (see figure&nbsp;<A HREF="#fig:anglefit">5</A>), you will be able to fit the channel number to encoder position curve to estimate the three angular calibration parameters for each module.
<BR>
The entries show the angular calibration parameters used for approximate angular conversion in the previous step of the calibration. These can be edited and will be used as start parameters for the fit.
By clicking on the check box next to the parameters, the selected parameter will be set and fixed during the fit. Often the center is used as a fix parameter.
<BR>
It is possible to navigate between modules by using the Previous and Next module buttons. To refit the current module (e.g. after changing one of the parameters) simply re-click on the module number.
<P>
After fitting all modules you can click on the <I>Write Angular Calibration</I> button, select the file name to write to and save the calibration angulat calibration data. Please note that the offset of module 0 will always be 0 and the other values will be rescaled to its value. Therefore the global offset of the steup will always need to be specified for a proper angular conversion unless the home of the encoder will not be redifined.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html44"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html42"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html36"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html45"
HREF="node4.html">Setup calibration files</A>
<B> Up:</B> <A NAME="tex2html43"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html37"
HREF="node2.html">Data acquisition</A>
<!--End of Navigation Panel-->
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,65 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Setup calibration files</TITLE>
<META NAME="description" CONTENT="Setup calibration files">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="next" HREF="node5.html">
<LINK REL="previous" HREF="node3.html">
<LINK REL="up" HREF="angularCalibrationHowTo.html">
<LINK REL="next" HREF="node5.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html55"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html53"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html47"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html56"
HREF="node5.html">About this document ...</A>
<B> Up:</B> <A NAME="tex2html54"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html48"
HREF="node3.html">Data analysis</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00040000000000000000">
Setup calibration files</A>
</H1>
<P>
To use the generated angular calibration files, using the text client:
<PRE>
sls_detector_put angconv /scratch/ang_new.off
</PRE>
while for the GUI the file name should be specified in the configuration file (works also for the text client).
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,68 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>About this document ...</TITLE>
<META NAME="description" CONTENT="About this document ...">
<META NAME="keywords" CONTENT="angularCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="angularCalibrationHowTo.css">
<LINK REL="previous" HREF="node4.html">
<LINK REL="up" HREF="angularCalibrationHowTo.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
<A NAME="tex2html61"
HREF="angularCalibrationHowTo.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html57"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Up:</B> <A NAME="tex2html62"
HREF="angularCalibrationHowTo.html">Angular calibration wizard manual</A>
<B> Previous:</B> <A NAME="tex2html58"
HREF="node4.html">Setup calibration files</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00050000000000000000">
About this document ...</A>
</H1>
<STRONG>Angular calibration wizard manual</STRONG><P>
This document was generated using the
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2012 (1.2)
<P>
Copyright &#169; 1993, 1994, 1995, 1996,
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Computer Based Learning Unit, University of Leeds.
<BR>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -split 4 angularCalibrationHowTo.tex</TT>
<P>
The translation was initiated by Thattil Dhanya on 2019-04-08
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

View File

@ -1 +0,0 @@
No implementation found for style `graphicx'

View File

@ -1,30 +0,0 @@
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.MATH { font-family: "Century Schoolbook", serif; }
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
/* implement both fixed-size and relative sizes */
SMALL.XTINY { font-size : xx-small }
SMALL.TINY { font-size : x-small }
SMALL.SCRIPTSIZE { font-size : smaller }
SMALL.FOOTNOTESIZE { font-size : small }
SMALL.SMALL { }
BIG.LARGE { }
BIG.XLARGE { font-size : large }
BIG.XXLARGE { font-size : x-large }
BIG.HUGE { font-size : larger }
BIG.XHUGE { font-size : xx-large }
/* heading styles */
H1 { }
H2 { }
H3 { }
H4 { }
H5 { }
/* mathematics styles */
DIV.displaymath { } /* math displays */
TD.eqno { } /* equation-number cells */
/* document-specific styles come next */

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2012 (1.2)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Energy calibration wizard manual</TITLE>
<META NAME="description" CONTENT="Energy calibration wizard manual">
<META NAME="keywords" CONTENT="energyCalibrationHowTo">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="energyCalibrationHowTo.css">
<LINK REL="next" HREF="node1.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html9"
HREF="node1.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_g.png">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev_g.png">
<BR>
<B> Next:</B> <A NAME="tex2html10"
HREF="node1.html">Introduction</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<P>
<H1 ALIGN="CENTER">Energy calibration wizard manual</H1>
<DIV>
<P ALIGN="CENTER"><STRONG>Anna Bergamaschi</STRONG></P>
<P ALIGN="CENTER"><STRONG>April 8, 2019</STRONG></P>
</DIV>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"></A>
<UL>
<LI><A NAME="tex2html11"
HREF="node1.html">Introduction</A>
<LI><A NAME="tex2html12"
HREF="node2.html">Data acquisition</A>
<UL>
<LI><A NAME="tex2html13"
HREF="node2.html#SECTION00021000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html14"
HREF="node3.html">Data analysis</A>
<UL>
<LI><A NAME="tex2html15"
HREF="node3.html#SECTION00031000000000000000">Software</A>
</UL>
<BR>
<LI><A NAME="tex2html16"
HREF="node4.html">Setup calibration files</A>
<LI><A NAME="tex2html17"
HREF="node5.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
<ADDRESS>
Thattil Dhanya
2019-04-08
</ADDRESS>
</BODY>
</HTML>

View File

@ -1,252 +0,0 @@
# LaTeX2HTML 2012 (1.2)
# Associate images original text with physical files.
$key = q/CS=frac{N_S}{N_0};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="71" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img32.png"
ALT="$CS=\frac{N_S}{N_0}$">|;
$key = q/O;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img25.png"
ALT="$O$">|;
$key = q/N_gamma;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img17.png"
ALT="$N_\gamma$">|;
$key = q/E_t;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img10.png"
ALT="$E_t$">|;
$key = q/includegraphics[width=textwidth]{calibrateModule.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="514" HEIGHT="654" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img40.png"
ALT="\includegraphics[width=\textwidth]{calibrateModule.eps}">|;
$key = q/{displaymath}N_n(E_t)simfrac{T}{tau_s}DBig(frac{-E_t}{ENC}Big).{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="169" HEIGHT="41" BORDER="0"
SRC="|."$dir".q|img23.png"
ALT="\begin{displaymath}
N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
\end{displaymath}">|;
$key = q/tau_s;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img21.png"
ALT="$\tau_s$">|;
$key = q/V_t;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="19" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img27.png"
ALT="$V_t$">|;
$key = q/ENC;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="44" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img3.png"
ALT="$ENC$">|;
$key = q/includegraphics[width=textwidth]{fig8.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img36.png"
ALT="\includegraphics[width=\textwidth]{fig8.eps}">|;
$key = q/N_n;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="26" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img16.png"
ALT="$N_n$">|;
$key = q/T;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img22.png"
ALT="$T$">|;
$key = q/E_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img1.png"
ALT="$E_0$">|;
$key = q/G;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img26.png"
ALT="$G$">|;
$key = q/{displaymath}N_gamma(E_t)=frac{N_0}{2}cdotBig(1+C_sfrac{E_0-2E_t}{E_0}Big)DBig(frac{E_0-E_t}{ENC}Big),{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="335" HEIGHT="41" BORDER="0"
SRC="|."$dir".q|img18.png"
ALT="\begin{displaymath}
N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
\end{displaymath}">|;
$key = q/includegraphics[width=textwidth]{GUI_ThresholdScan.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img38.png"
ALT="\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}">|;
$key = q/N_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img2.png"
ALT="$N_0$">|;
$key = q/N_S;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img5.png"
ALT="$N_S$">|;
$key = q/O_i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img30.png"
ALT="$O_i$">|;
$key = q/E_f;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img7.png"
ALT="$E_f$">|;
$key = q/i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="10" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img29.png"
ALT="$i$">|;
$key = q/G_i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img31.png"
ALT="$G_i$">|;
$key = q/includegraphics[width=textwidth]{fig7.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="556" HEIGHT="553" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img35.png"
ALT="\includegraphics[width=\textwidth]{fig7.eps}">|;
$key = q/D;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img13.png"
ALT="$D$">|;
$key = q/N_s=C_sN_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="83" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img20.png"
ALT="$N_s=C_s N_0$">|;
$key = q/E_0slash2;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="39" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img8.png"
ALT="$E_0/2$">|;
$key = q/E_t=E_0slash2;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="78" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img14.png"
ALT="$E_t=E_0/2$">|;
$key = q/includegraphics[width=textwidth]{fig4.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img33.png"
ALT="\includegraphics[width=\textwidth]{fig4.eps}">|;
$key = q/includegraphics[width=textwidth]{GUI_Advanced.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="555" HEIGHT="603" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img37.png"
ALT="\includegraphics[width=\textwidth]{GUI_Advanced.eps}">|;
$key = q/includegraphics[width=textwidth]{addEnergy.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="514" HEIGHT="654" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img39.png"
ALT="\includegraphics[width=\textwidth]{addEnergy.eps}">|;
$key = q/C_s;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img19.png"
ALT="$C_s$">|;
$key = q/CS={begingroup{N_Sbegingroup{overN_0};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="24" HEIGHT="12" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img6.png"
ALT="$CS={\begingroupN_S\endgroup\over N_0}$">|;
$key = q/CS=;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="45" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img4.png"
ALT="$CS=$">|;
$key = q/e^-;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="23" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img12.png"
ALT="$e^-$">|;
$key = q/includegraphics[width=textwidth]{fig5.eps};AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="556" HEIGHT="539" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img34.png"
ALT="\includegraphics[width=\textwidth]{fig5.eps}">|;
$key = q/{displaymath}V_{t}=O+GcdotE_t.{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="111" HEIGHT="26" BORDER="0"
SRC="|."$dir".q|img28.png"
ALT="\begin{displaymath}
V_{t}=O+G \cdot E_t.
\end{displaymath}">|;
$key = q/Sigma>3ENC;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="85" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img11.png"
ALT="$\Sigma &gt;3ENC$">|;
$key = q/N;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="19" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img15.png"
ALT="$N$">|;
$key = q/Sigma>3,ENC;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="88" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="|."$dir".q|img24.png"
ALT="$\Sigma&gt;3 ENC$">|;
$key = q/Deltasim;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
WIDTH="35" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="|."$dir".q|img9.png"
ALT="$\Delta \sim $">|;
1;

View File

@ -1,391 +0,0 @@
\batchmode
\documentclass{article}
\RequirePackage{ifthen}
\usepackage{amssymb}
\usepackage[dvips]{graphicx}
\usepackage{verbatim}
\usepackage[dvips]{color}
\pagecolor[gray]{.7}
\usepackage[]{inputenc}
\makeatletter
\makeatletter
\count@=\the\catcode`\_ \catcode`\_=8
\newenvironment{tex2html_wrap}{}{}%
\catcode`\<=12\catcode`\_=\count@
\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}%
\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}%
\expandafter\renewcommand\csname #1\endcsname}%
\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
\let\newedcommand\renewedcommand
\let\renewedenvironment\newedenvironment
\makeatother
\let\mathon=$
\let\mathoff=$
\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
\newbox\sizebox
\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
\setlength{\textwidth}{349pt}
\newwrite\lthtmlwrite
\makeatletter
\let\realnormalsize=\normalsize
\global\topskip=2sp
\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
\def\@float{\let\@savefreelist\@freelist\real@float}
\def\liih@math{\ifmmode$\else\bad@math\fi}
\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
\let\@largefloatcheck=\relax
\let\if@boxedmulticols=\iftrue
\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
\parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
\def\phantompar{\csname par\endcsname}\normalsize}%
\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }%
\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }%
\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup %
\let\ifinner=\iffalse \let\)\liih@math }%
\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}%
\expandafter\box\next\egroup}%
\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}%
\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox
\ifdim\dimen0>.95\vsize
\lthtmltypeout{%
*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}%
\ht\sizebox.95\vsize \dp\sizebox\z@ \fi
\lthtmltypeout{l2hSize %
:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}%
\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist
\lthtmlmathtype{#1}\lthtmlvboxmathA}%
\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}%
\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup
\let\@savefreelist\@freelist \lthtmlhboxmathB}%
\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}%
\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox
\global\let\@freelist\@savefreelist}%
\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}%
\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}%
\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}%
\lthtmldisplayA{#1}\let\@eqnnum\relax}%
\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}%
\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB}
\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA
\vrule height1.5ex width0pt }%
\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}%
\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}%
\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline}
\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt %
\expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath}
\newcommand\lthtmlindisplaymathZ{\egroup %
\centerinlinemath\lthtmllogmath\lthtmlsetmath}
\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{%
\kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{%
\kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt%
\ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt%
\ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}}
\def\centerinlinemath{%
\dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi
\advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1
\dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax}
\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize
\ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
\else\expandafter\vss\fi}%
\providecommand{\selectlanguage}[1]{}%
\makeatletter \tracingstats = 1
\begin{document}
\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
\makeatletter
\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
\lthtmltypeout{}%
\makeatother
\setcounter{page}{1}
\onecolumn
% !!! IMAGES START HERE !!!
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline464}%
$E_0$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline466}%
$N_0$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline468}%
$ENC$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline470}%
$CS=$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline472}%
$N_S$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline474}%
$CS={\begingroupN_S\endgroup\over N_0}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline482}%
$E_f$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline486}%
$E_0/2$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline490}%
$\Delta \sim $%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline492}%
$E_t$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline494}%
$\Sigma >3ENC$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline131}%
$e^-$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline137}%
$D$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline141}%
$E_t=E_0/2$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline143}%
$N$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline147}%
$N_n$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline149}%
$N_\gamma$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmldisplayA{displaymath17}%
\begin{displaymath}
N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
\end{displaymath}%
\lthtmldisplayZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline151}%
$C_s$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline153}%
$N_s=C_s N_0$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline155}%
$\tau_s$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline157}%
$T$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmldisplayA{displaymath26}%
\begin{displaymath}
N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
\end{displaymath}%
\lthtmldisplayZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline165}%
$\Sigma>3\,ENC$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline167}%
$O$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline169}%
$G$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline171}%
$V_t$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmldisplayA{displaymath34}%
\begin{displaymath}
V_{t}=O+G \cdot E_t.
\end{displaymath}%
\lthtmldisplayZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline175}%
$i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline177}%
$O_i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline179}%
$G_i$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlinlinemathA{tex2html_wrap_inline191}%
$CS=\frac{N_S}{N_0}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap559}%
\includegraphics[width=\textwidth]{fig4.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap563}%
\includegraphics[width=\textwidth]{fig5.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap585}%
\includegraphics[width=\textwidth]{fig7.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap589}%
\includegraphics[width=\textwidth]{fig8.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\stepcounter{subsection}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap595}%
\includegraphics[width=\textwidth]{GUI_Advanced.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap599}%
\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\stepcounter{subsection}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap605}%
\includegraphics[width=\textwidth]{addEnergy.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
\lthtmlpictureA{tex2html_wrap609}%
\includegraphics[width=\textwidth]{calibrateModule.eps}%
\lthtmlpictureZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Some files were not shown because too many files have changed in this diff Show More