Compare commits

...

292 Commits

Author SHA1 Message Date
da8e0060d3 updated release notes and project version 2022-01-04 10:44:07 +01:00
85da65ca15 update versioning (prev commit) 2022-01-04 10:38:45 +01:00
4fe067363a This commit fixes the issue #336
A delay of 100ms has been added between the generation of the stop pulse and the resetCore function call. This should give enough time to the detector to readout and streamout the ongoing frame before the internal logic is reset (even after the transmission is delayed with txndelay_frame).

Conflicts:
	slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv6.1.0
2022-01-04 10:37:57 +01:00
066706872d updated version and added python 3.10 build 2021-11-26 09:25:41 +01:00
f98c403f06 Merge branch 'main' into developer 2021-11-25 13:03:03 +01:00
5dcc2ab35c fixed server names versioing 2021-11-25 13:01:23 +01:00
d80c5e1c02 fixed versions in servers 2021-11-25 12:59:44 +01:00
7acc201797 fix release version 2021-11-25 12:56:21 +01:00
57a52ba2dc update release version 2021-11-25 12:55:47 +01:00
c011129c43 Merge branch 'main' into 6.0.1.rc1 2021-11-25 12:40:24 +01:00
2ed8b85143 update release notes 2021-11-25 12:30:59 +01:00
5ac2fc33ff release notes 2021-11-25 12:29:45 +01:00
c169e6b896 fixed tests 2021-11-25 12:26:48 +01:00
497d29db39 fix for eiger overwriting of server nchip 2021-11-25 12:21:44 +01:00
2fbf0d6996 to fix test changing order 2021-11-25 12:15:20 +01:00
16246407c5 Merge branch '6.0.1.rc1' of github.com:slsdetectorgroup/slsDetectorPackage into 6.0.1.rc1 2021-11-25 12:09:16 +01:00
4a89bef87b no need to update server nchan/nchip/ndac values from client 2021-11-25 12:09:07 +01:00
a146257b13 testing 2021-11-25 11:30:14 +01:00
340b18ca83 Merge branch '6.0.1.rc1' of github.com:slsdetectorgroup/slsDetectorPackage into 6.0.1.rc1 2021-11-25 11:25:24 +01:00
271f6da92e tests fix 2021-11-25 11:25:18 +01:00
9d20bf25c6 fix tests 2021-11-25 10:51:59 +01:00
6668fef61a fix test 2021-11-25 10:42:13 +01:00
a455a95aab fix tests 2021-11-25 10:31:19 +01:00
7f7a691b25 fix test 2021-11-25 10:19:48 +01:00
7536971b34 binaries in 2021-11-25 10:16:37 +01:00
8ca11ec705 Merge branch '6.0.1.rc1' of github.com:slsdetectorgroup/slsDetectorPackage into 6.0.1.rc1 2021-11-25 10:15:02 +01:00
00d63e48bb fix tests 2021-11-25 10:14:49 +01:00
146da0f20f binaries in 2021-11-25 10:02:14 +01:00
993ba5926e update test fix 2021-11-25 10:00:40 +01:00
44424bcbe3 fix 2021-11-25 09:36:50 +01:00
3570795469 fix test 2021-11-25 09:34:00 +01:00
a9d61526ef flip rows only for hw2.0 for jungfrau 2021-11-25 09:30:04 +01:00
2a5116f49a rename binary 2021-11-25 09:18:23 +01:00
5e0408474d binaries in 2021-11-25 09:17:01 +01:00
e7b11f3eb1 fix tets 2021-11-25 08:54:01 +01:00
c1e374ed51 Merge branch '6.0.1.rc1' of github.com:slsdetectorgroup/slsDetectorPackage into 6.0.1.rc1 2021-11-25 08:42:46 +01:00
eb690437c9 fix tests: get filtercells only for chipv1.1 2021-11-25 08:42:39 +01:00
f076c1cbb7 missing ( 2021-11-24 18:03:26 +01:00
de9854e773 fix message for lto and get/put target 2021-11-24 17:59:22 +01:00
150d8f5fda Merge pull request #335 from slsdetectorgroup/ltofix
Adding LTO to tests and disable them for Debug builds
2021-11-24 17:53:09 +01:00
b0a5a76065 adding LTO to tests 2021-11-24 17:40:14 +01:00
77e610f5a5 fixing tests to run on rhel7 2021-11-24 17:14:20 +01:00
0689c82e98 troubleshooting docs 2021-11-24 17:11:17 +01:00
ce94364c73 binary 2021-11-24 17:00:08 +01:00
1ed10acc01 g2 speed also requires dbit pipeline to be set 2021-11-24 16:59:20 +01:00
2c57d5f72d release update 2021-11-24 14:53:52 +01:00
0d867c91d9 release doc 2021-11-24 14:50:17 +01:00
845920f8cc renaming 2021-11-24 14:49:14 +01:00
eff4ba01b9 jungfrau: flip rows and partial readout only available for hw2.0 2021-11-24 14:44:42 +01:00
bcf0922b8d changed server names 2021-11-24 11:40:20 +01:00
d689c415e4 binaries in 2021-11-24 11:34:35 +01:00
e9caa53af0 minor text fix + macro define in the right place 2021-11-24 11:32:19 +01:00
81eb0217ad fixing the error messagE 2021-11-24 10:19:35 +01:00
0e23665de5 binaries in 2021-11-24 09:27:53 +01:00
044843c8b7 check not required when writing to fpga flash dir 2021-11-24 09:27:18 +01:00
9d63875802 binaries in 2021-11-23 16:27:29 +01:00
9aea183f5c typo 2021-11-23 16:26:56 +01:00
f39f93b2c8 adding the check for copydetector server and updatemode (also for any kind of updatedetectorserver, programfpga and updatekernel) 2021-11-23 16:25:28 +01:00
ed2e6e4e28 print error 2021-11-23 15:45:01 +01:00
74348afcf6 fix 2021-11-23 15:30:08 +01:00
a101e18d60 fix to ensure updatekernel does not work with Amd blackfin flash and a kernel older than the current one 2021-11-23 15:23:16 +01:00
d9686e0b6a minor 2021-11-22 16:30:33 +01:00
5f38165b07 binaries in 2021-11-22 15:15:00 +01:00
9d859cb4c2 fixed warnings in server for format 2021-11-22 15:14:26 +01:00
7772eb153d using const for getupdatemode 2021-11-22 15:08:58 +01:00
e37725ac12 release notes and some fixes 2021-11-22 14:02:54 +01:00
f3c95148a7 LGTM. updated versioning and server versioning 2021-11-22 13:06:59 +01:00
b9b3055984 updated release notes 2021-11-19 18:52:53 +01:00
464ebe70f1 bug fix: servername interchanged for firmware name 2021-11-19 08:53:07 +01:00
4f76219456 Merge pull request #334 from slsdetectorgroup/4updatemode
4updatemode
2021-11-18 16:42:53 +01:00
18b0e84fbf eiger cant reboot 2021-11-18 15:55:12 +01:00
1c6e33064b minor typo 2021-11-18 15:39:34 +01:00
a74f71be0e binaries in 2021-11-18 15:39:05 +01:00
848884f6cf temp server binary in tmp folder already has full path 2021-11-18 15:33:47 +01:00
4690bd0b19 binaries in 2021-11-17 10:14:35 +01:00
f7286d29fa merge fix 2021-11-17 10:13:44 +01:00
eb666d8b05 Merge pull request #333 from slsdetectorgroup/3kernelupdate
3kernelupdate
2021-11-17 10:10:19 +01:00
148c979727 binaries in 2021-11-17 09:26:56 +01:00
00775b543e fixed warnings 2021-11-17 09:25:36 +01:00
904af4de06 fix to allowing update mode functions in update mode and removing exception about set_position for hostname in update mode 2021-11-16 09:55:29 +01:00
eb69d7cb69 update mode added. need to fix why udpatemode get and set not in allowed functions 2021-11-12 17:18:26 +01:00
0ffd30e147 works virutally for virtual servers 2021-11-12 15:18:42 +01:00
eda66e63a5 allowed functions in update mode 2021-11-11 19:08:05 +01:00
6e276770eb binaries in 2021-11-11 11:05:59 +01:00
4fb19ceaa5 minor 2021-11-11 11:01:19 +01:00
1840ad218a complete path for eiger 2021-11-11 11:00:31 +01:00
93a191f122 complete path for eiger 2021-11-11 10:56:09 +01:00
c532ecc2e8 moved movefile and writefile to common and avoiding need to send different named files for nios 2021-11-11 10:43:17 +01:00
25eecf7039 siable warning to truncate and compile fix 2021-11-11 10:12:08 +01:00
85d350b48b blackfin server is not in memory 2021-11-11 10:06:47 +01:00
ec1ee635d5 works and allowed reboot 2021-11-11 09:38:01 +01:00
18bbce70b1 fwrite bug 2021-11-11 09:36:15 +01:00
fa822634aa copying binary not done properly 2021-11-11 09:30:53 +01:00
93a86324fb typo bug fix 2021-11-11 09:25:28 +01:00
9d21062f5a remove reboot for checks 2021-11-11 09:24:48 +01:00
a099637b7e checksum also for nios 2021-11-11 09:23:24 +01:00
4dfdd6f10b minor 2021-11-11 09:22:15 +01:00
4f6640a6f1 minor 2021-11-11 09:21:21 +01:00
65a2a9eb06 checksum of server binary file 2021-11-11 09:12:14 +01:00
169361d459 blackfin requires a few writes 2021-11-10 18:54:02 +01:00
0144eff60b binaries in 2021-11-10 17:54:34 +01:00
4f5f8408cf more error detail 2021-11-10 17:53:40 +01:00
32d664a77d actually writing the server binary from memory to file before linking, sycing, permissions etc 2021-11-10 17:48:18 +01:00
4a8c365447 typo 2021-11-10 17:25:37 +01:00
4b46091be2 python fix, server copy wrong filename 2021-11-10 16:40:14 +01:00
5190e2ab30 refactoring 2021-11-10 15:56:01 +01:00
adc6cf214a fixed runtime error with module::sendprogram default servername value 2021-11-10 14:54:42 +01:00
fb7daf426f binaries in 2021-11-10 14:04:16 +01:00
0e9c88dfa2 programfpga already does reboot 2021-11-10 11:49:32 +01:00
233d374a4d server works 2021-11-10 11:47:26 +01:00
15aa42d328 wip 2021-11-10 10:58:29 +01:00
14ee2087dc rebootcontroller after updating kernel 2021-11-09 16:19:53 +01:00
1e134276ca typo 2021-11-09 16:06:37 +01:00
d9168803ae nios kernel update takes time, simulating 2021-11-09 16:05:47 +01:00
0090c183bf more print and fclose 2021-11-09 16:00:01 +01:00
f5d62b50ce allowing kernel update for nios 2021-11-09 15:53:31 +01:00
098601e717 need to find a better way to show unrecognixed functions 2021-11-09 15:52:37 +01:00
898ee9b7b7 arguments stays for unknown enum 2021-11-09 15:41:59 +01:00
1fd15fadf8 Merge branch '3kernelupdate' of github.com:slsdetectorgroup/slsDetectorPackage into 3kernelupdate 2021-11-09 15:37:20 +01:00
db88f67cda unknown function enum error proper print 2021-11-09 15:37:12 +01:00
0f08ddd454 binaries in 2021-11-09 14:41:00 +01:00
f8e2522a11 minor 2021-11-09 14:40:36 +01:00
5143295711 binaries in 2021-11-09 14:36:24 +01:00
a59537088b fix 2021-11-09 14:35:49 +01:00
dde98fc8b6 fix 2021-11-09 14:33:24 +01:00
c0e3bbbc61 Merge branch '3kernelupdate' of github.com:slsdetectorgroup/slsDetectorPackage into 3kernelupdate 2021-11-09 14:10:24 +01:00
bf778b5336 too much read from kernel flash for checksum validation 2021-11-09 14:10:15 +01:00
99c44b2592 binaries in 2021-11-09 11:48:56 +01:00
6569e4a8bf kernel update fix 2021-11-09 11:46:27 +01:00
3ebfbb123d binaries in 2021-11-09 11:44:38 +01:00
8d2bb3d678 Merge branch '3kernelupdate' of github.com:slsdetectorgroup/slsDetectorPackage into 3kernelupdate 2021-11-09 11:42:35 +01:00
e81e06696a kernel update works, but without flash checksum 2021-11-09 11:42:26 +01:00
99ad1d9228 binaries in 2021-11-09 10:35:42 +01:00
33c86db019 gpio defined checks 2021-11-09 10:35:18 +01:00
f085b4ca1e binaries in 2021-11-09 10:22:44 +01:00
7558c43b8c reverting last change 2021-11-09 10:22:24 +01:00
e332439020 binaries in 2021-11-09 10:20:20 +01:00
ea44151cb1 Merge branch '3kernelupdate' of github.com:slsdetectorgroup/slsDetectorPackage into 3kernelupdate 2021-11-09 10:19:53 +01:00
3167aade45 more print for error in basictests 2021-11-09 10:19:43 +01:00
44709b1384 binaries in 2021-11-09 10:09:19 +01:00
717d68c217 bug fix, not returning 2021-11-09 10:08:57 +01:00
c218d7dc00 bug fix, kernel index 2021-11-09 10:02:47 +01:00
30d38ecae9 print error even if in execute 2021-11-09 09:56:13 +01:00
254b918408 binaries in 2021-11-09 09:51:02 +01:00
1506c70329 bugfix 2021-11-09 09:50:40 +01:00
729441dcc6 Merge branch '3kernelupdate' of github.com:slsdetectorgroup/slsDetectorPackage into 3kernelupdate 2021-11-09 09:49:30 +01:00
90b9b57865 bugfix 2021-11-09 09:49:21 +01:00
29a41c6b19 binaries in 2021-11-09 09:23:04 +01:00
64a25a242b server side fixed 2021-11-08 17:24:51 +01:00
7b4f8c118b client done 2021-11-08 14:26:53 +01:00
54ee4ec653 Merge branch 'developer' into 3kernelupdate 2021-11-08 09:40:07 +01:00
59bcf6a0d0 Merge pull request #331 from slsdetectorgroup/2kernelversion
2kernelversion
2021-11-08 09:39:24 +01:00
6462a7162e wip 2021-11-05 17:01:45 +01:00
e15028e94c Merge branch 'developer' into 3kernelupdate 2021-11-05 12:31:36 +01:00
81e1221e0d Merge branch 'developer' into 2kernelversion 2021-11-05 12:28:37 +01:00
953fc9bb48 Merge pull request #332 from slsdetectorgroup/pyfix
removed c++14 only overload_cast from pybind enum interface
2021-11-05 12:28:10 +01:00
91cf18c5d1 removed comment 2021-11-05 12:03:01 +01:00
642989cab2 removed c++14 only overload_cast from pybind enum interface 2021-11-05 11:56:57 +01:00
d438b53c68 wip 2021-11-04 19:18:10 +01:00
6e49b77b08 updating kernel like program fpga, execute command to print which module failed, unlinking temporary file while programming bug fix 2021-11-03 17:17:24 +01:00
5f94ca30f1 removed deprecated root include 2021-11-03 16:26:59 +01:00
98cf908918 Merge branch 'developer' into 2kernelversion 2021-11-03 14:44:49 +01:00
cb39a59508 fixes for kernelversion 2021-11-03 14:42:14 +01:00
b68ef6cbd0 binaries in 2021-11-03 11:47:14 +01:00
eff64f99f2 addd kernel version 2021-11-03 11:46:46 +01:00
2b1028d636 Merge pull request #330 from slsdetectorgroup/programfix
Program firmware for new kernel
2021-11-03 11:43:37 +01:00
1da2761654 bug fix 2021-11-03 10:49:59 +01:00
7c2e64d9fe rleease notes 2021-11-02 17:21:27 +01:00
340d708b12 updated m3 kernel version 2021-11-02 17:07:55 +01:00
3f517420af updated kernel date for gotthard2, checking kernel code similar for blackfin and nios, need to add date for m3 2021-11-02 16:59:54 +01:00
05c9fcfe19 gpio3 only when new kernel 2021-11-02 14:23:14 +01:00
dcae1b7a2b bianries in 2021-10-29 17:16:22 +02:00
d8570bc9a9 updated date kernel 2021-10-29 17:14:26 +02:00
e3bfdaf38e binaries in 2021-10-29 16:45:18 +02:00
5188e600a2 specific kernel version name 2021-10-29 16:45:05 +02:00
45b3514118 moved verifykernelversion to common 2021-10-29 16:43:48 +02:00
2813cd5ac2 remove cest as strptime doesnt work on bfin with timezone 2021-10-29 16:28:58 +02:00
2d2287e189 check kernel version before enabling the gipo 3 chipenable pins 2021-10-29 12:25:30 +02:00
c3eff0246a programing problem fixed 2021-10-28 15:51:29 +02:00
c911fe4c85 bash script for cmk.sh in ubuntu 2021-10-28 14:18:58 +02:00
87a515a549 Merge pull request #329 from slsdetectorgroup/rxhostnamenone
Bug: rxhostname none
2021-10-27 14:36:16 +02:00
0b2d294a19 updated release notes 2021-10-27 14:27:34 +02:00
b62a6eff64 updated release notes 2021-10-27 14:27:08 +02:00
dde62f13d5 fixed bug. setting rx_hostname to none should not throw 2021-10-27 11:29:01 +02:00
146b012eff minor changes 2021-10-27 11:14:29 +02:00
95897085ec missed serverBin 2021-10-27 11:02:28 +02:00
e53a71f88f updated to developer versioning 2021-10-27 11:00:01 +02:00
274ec27934 iupdated licensing info inrelease notes 2021-10-21 16:44:48 +02:00
1454cc8434 binaries updated 2021-10-21 16:27:20 +02:00
76c86cb5ac binaries in after minor 2021-10-21 16:26:18 +02:00
ec4aca0dd4 minor 2021-10-21 16:25:05 +02:00
9f27478f95 serverBin binaries updated 2021-10-21 16:18:36 +02:00
ec1bdffa1a binaries renamed 2021-10-21 16:13:55 +02:00
258a0f794c binaries in 2021-10-21 16:12:52 +02:00
6caafaea00 binaries in 2021-10-21 15:54:39 +02:00
727e52b9e8 Merge pull request #327 from slsdetectorgroup/jfres
Jfres
2021-10-21 15:37:51 +02:00
fdd3ab2a60 binaries in 2021-10-21 15:36:35 +02:00
a84bd1f881 jungfrau filter resistor highervalue in fpga is smaller resitance, and needs toggling 2021-10-21 15:35:57 +02:00
1f8823a3b7 Merge pull request #326 from slsdetectorgroup/jlowcurrentfix
binaries in
2021-10-21 15:24:57 +02:00
1f4d94b3cc merge conflict fix 2021-10-21 15:24:46 +02:00
effbc6f571 binaries in 2021-10-21 15:22:36 +02:00
8c8aa175a6 Merge pull request #325 from slsdetectorgroup/jlowcurrentfix
Jlowcurrentfix
2021-10-21 15:05:59 +02:00
42b1f9a623 jungfrau filter resistor high bit for higher values change, also no toggling for status 2021-10-21 15:04:53 +02:00
9e23648801 binaries in 2021-10-21 14:56:13 +02:00
6dc4634495 typo 2021-10-21 14:55:58 +02:00
4b7d73a4ee jungfrau normal/low is not toggled like the others in register 2021-10-21 14:54:57 +02:00
0358749b3b updating versions 2021-10-21 13:15:39 +02:00
333a23c7e2 docs, auto_comp_disable->autocompdisable, comp_disable_time->compdisabletime (removing _ in commands) 2021-10-21 13:11:43 +02:00
802bd27e50 python extrastoragecells, documentation 2021-10-21 12:34:49 +02:00
0909eabfaf minor 2021-10-21 12:20:26 +02:00
2f7a0898d6 Merge pull request #324 from slsdetectorgroup/jungfraufix
Jungfraufix
2021-10-21 12:07:36 +02:00
e89dd393e2 binaries in 2021-10-21 12:00:21 +02:00
76dc6db5c0 jungfrau: api changed from set/getFilterCell to set/getNumberOfFilterCells, storagecells command line changed to extrastoragecells, fixed wrong numberof arguments parsing message 2021-10-21 11:59:10 +02:00
9b321d2ee1 jungfrau: new default to asic reg for chipv1.1, filtercells name change, wrongnumberof parameters message change 2021-10-21 11:27:31 +02:00
f7a6160e67 docs 2021-10-21 09:56:51 +02:00
156ce6a2e5 docs 2021-10-21 09:40:12 +02:00
9dc217aaa3 updated calibration settings for jungfrau, default special dac values for high gain 0, temporary fix for firmwarebug (config_V11_status has to be flipped to be read) 2021-10-20 17:20:09 +02:00
ae736cd0e5 docs 2021-10-20 16:51:07 +02:00
c5962f40eb enums added in python docs 2021-10-20 11:38:05 +02:00
aab5418166 eiger copy detector server command should not reboot for eiger (feature does not exist) 2021-10-19 16:21:37 +02:00
f61d14a2f1 binaries in 2021-10-19 14:52:49 +02:00
836e4c51f3 remove license checks 2021-10-19 14:50:15 +02:00
b39c64032d clang format 2021-10-19 14:49:43 +02:00
3726ae3fd1 Merge pull request #323 from slsdetectorgroup/jungfraucalibfix
Jungfraucalibfix
2021-10-19 11:45:43 +02:00
98c2d52200 binaries in 2021-10-19 11:43:33 +02:00
54097ba21c bug fix for inverted select for chipv1.1 2021-10-19 11:40:50 +02:00
b8b7966d79 jungfrau server: reversing bits of chipv1.1 select 2021-10-19 11:04:18 +02:00
a1c9947821 Merge pull request #322 from slsdetectorgroup/copyservererror
print module number and hostname when tftp error
2021-10-19 10:32:43 +02:00
469d4e5c7c print module number and hostname when tftp error 2021-10-19 10:29:25 +02:00
bd0eb22392 Merge pull request #320 from slsdetectorgroup/copyserver
Copyserver
2021-10-19 10:21:26 +02:00
3a543daf55 comments 2021-10-19 10:21:04 +02:00
c061baaaee comment 2021-10-19 10:18:19 +02:00
b9fab9bc1f binaries in 2021-10-19 10:16:57 +02:00
6cf5072293 snprintf and linked server to be respawned, not copied one 2021-10-19 10:16:31 +02:00
8db1dfb2ce binaries in 2021-10-19 10:06:38 +02:00
a54a570a78 merge fix and release update 2021-10-19 10:06:04 +02:00
3cfdc063fc Merge pull request #321 from esrf-bliss/slsdetectorserver-max-udp-destination
slsDetectorServer: fix checks on UDP destination entry range
2021-10-19 10:01:28 +02:00
9b521ade27 help fixed 2021-10-19 09:59:49 +02:00
313216443a slsDetectorServer: fix checks on UDP destination entry range 2021-10-19 09:41:10 +02:00
318a5fd9d5 biaries in 2021-10-19 08:02:09 +02:00
dd2e9ff7f3 Merge branch 'copyserver' of github.com:slsdetectorgroup/slsDetectorPackage into copyserver 2021-10-19 07:59:06 +02:00
27c4d8652e added sync and not executing set detector position in update mode 2021-10-19 07:58:54 +02:00
927f30e55e binaries in 2021-10-19 07:52:25 +02:00
51c2e78a31 added sync 2021-10-19 07:51:39 +02:00
a0004dc775 updated release to include lib versioning info 2021-10-18 17:57:32 +02:00
db4f345b47 binaries in 2021-10-18 17:53:24 +02:00
195d28d091 typo 2021-10-18 17:52:52 +02:00
d7bbcb24c9 fixes for warnings 2021-10-18 17:51:31 +02:00
6b94f266bf execute command used properly 2021-10-18 17:39:16 +02:00
203d6465a1 clang and redoing copy detector server to have a soft link and put that in respawning for blackfin servers 2021-10-18 17:17:56 +02:00
43bbf66e85 Merge branch 'developer' into copyserver 2021-10-18 16:14:12 +02:00
b665ed87b4 Merge pull request #319 from slsdetectorgroup/filtercellhotfix
Filtercellhotfix
2021-10-18 16:11:04 +02:00
29fbef7ced binaries in 2021-10-18 16:10:01 +02:00
f3ca25d104 filter cell logic fixed 2021-10-18 16:08:21 +02:00
e4b141dda5 minor 2021-10-18 15:51:46 +02:00
843a35d2f9 Merge pull request #318 from slsdetectorgroup/selecthotfix
udpated naming warning in release.txt
2021-10-18 15:40:41 +02:00
1e2395bd44 udpated naming warning in release.txt 2021-10-18 15:37:28 +02:00
ed81ce2877 Merge pull request #317 from slsdetectorgroup/selecthotfix
Selecthotfix
2021-10-18 15:28:17 +02:00
12945916b7 updated binary for current source comments 2021-10-18 15:25:55 +02:00
4367a39b98 fix for current source 64 bit select mask for chipv1.1 2021-10-18 15:22:18 +02:00
519b09fcad permission 2021-10-18 15:01:10 +02:00
84f56ff314 updated permissions 2021-10-18 14:54:25 +02:00
3e70f0cbfb Merge pull request #316 from slsdetectorgroup/licensing
Licensing
2021-10-18 14:45:34 +02:00
96f7bf05c8 changes in gui notice and apache 2.0 changes 2021-10-18 14:45:19 +02:00
7eb05a3637 make files 2021-10-18 11:52:23 +02:00
ca08cd9ec1 updated cmakelists.txt for licesnse 2021-10-18 11:44:47 +02:00
a0ecf056d8 updated apache2 notice 2021-10-18 11:43:11 +02:00
479fa23acb added .sh licenses 2021-10-15 16:02:42 +02:00
fada085f0e added .py licenses 2021-10-15 15:54:58 +02:00
b913c0059a added .c licenses 2021-10-15 15:52:40 +02:00
dac60ad76d added .cpp licenses 2021-10-15 15:47:04 +02:00
4de7bb51ed updated all .h files with license notice and copyright notice 2021-10-14 18:10:56 +02:00
0801957203 updating license script 2021-10-14 18:03:19 +02:00
2d7ffdd603 before adding license notice 2021-10-14 17:51:45 +02:00
576157351e minor 2021-10-14 17:42:40 +02:00
86a9aa9e38 license notice and copyright notice ammended 2021-10-14 17:39:37 +02:00
928ed201f6 Merge branch 'developer' into licensing 2021-10-14 17:37:13 +02:00
ae4473d631 some changes 2021-10-14 17:36:47 +02:00
cbe2956ee4 Merge pull request #315 from slsdetectorgroup/libversioning
lib versioning
2021-10-14 17:34:54 +02:00
aff3a6ed20 added folder with licenses used in source code 2021-10-14 16:43:37 +02:00
e6b18f6a95 updated versioning for shared libraries 2021-10-14 15:11:47 +02:00
93550ebed7 fix 2021-10-14 12:48:13 +02:00
8fb4393981 python fix 2021-10-14 12:38:03 +02:00
2bfe0a939d Merge branch 'developer' of github.com:slsdetectorgroup/slsDetectorPackage into developer 2021-10-13 16:29:29 +02:00
cfbc4c699f typo 2021-10-13 16:27:43 +02:00
c0edbc8631 Merge pull request #314 from slsdetectorgroup/eigerhotfix
Eigerhotfix
2021-10-13 15:56:10 +02:00
34bc596ea6 fixed eiger tengiga hotfix 2021-10-13 13:04:34 +02:00
e172156829 typo 2021-10-13 13:02:02 +02:00
1c13dd95a0 eiger server fix: 10genable stop server does not have send_data struct initialized, not configuring mac or setup header for stop server 2021-10-13 12:56:03 +02:00
c836371b7c removed readme for python folder 2021-10-13 11:22:31 +02:00
7426110e8a Warnings (#313) 2021-10-12 11:42:02 +02:00
e84f5bec0b disable Wstringop-truncation for servers 2021-10-11 19:56:39 +02:00
511 changed files with 5515 additions and 3396 deletions

60
CMakeLists.txt Executable file → Normal file
View File

@ -1,12 +1,17 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
cmake_minimum_required(VERSION 3.12) cmake_minimum_required(VERSION 3.12)
project(slsDetectorPackage) project(slsDetectorPackage)
set(PROJECT_VERSION 5.1.0) set(PROJECT_VERSION 6.1.1)
include(CheckIPOSupported)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
cmake_policy(SET CMP0074 NEW) cmake_policy(SET CMP0074 NEW)
include(cmake/project_version.cmake) include(cmake/project_version.cmake)
#functions to add compiler flags
include(cmake/SlsAddFlag.cmake)
# Include additional modules that are used unconditionally # Include additional modules that are used unconditionally
include(GNUInstallDirs) include(GNUInstallDirs)
@ -51,7 +56,7 @@ option(SLS_TUNE_LOCAL "tune to local machine" OFF)
option(SLS_DEVEL_HEADERS "install headers for devel" OFF) option(SLS_DEVEL_HEADERS "install headers for devel" OFF)
option(SLS_USE_MOENCH "compile zmq and post processing for Moench" OFF) option(SLS_USE_MOENCH "compile zmq and post processing for Moench" OFF)
# set(ClangFormat_BIN_NAME clang-format)
set(ClangFormat_EXCLUDE_PATTERNS "build/" set(ClangFormat_EXCLUDE_PATTERNS "build/"
"libs/" "libs/"
"slsDetectorCalibration/" "slsDetectorCalibration/"
@ -62,9 +67,7 @@ set(ClangFormat_EXCLUDE_PATTERNS "build/"
${CMAKE_BINARY_DIR}) ${CMAKE_BINARY_DIR})
find_package(ClangFormat) find_package(ClangFormat)
#Enable LTO if available
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
message(STATUS "SLS_LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@ -75,6 +78,16 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif() endif()
#Enable LTO if available
include(CheckIPOSupported)
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
message(STATUS "Building with link time optimization")
else()
message(STATUS "Building without link time optimization")
endif()
#Add two fake libraries to manage options #Add two fake libraries to manage options
add_library(slsProjectOptions INTERFACE) add_library(slsProjectOptions INTERFACE)
add_library(slsProjectWarnings INTERFACE) add_library(slsProjectWarnings INTERFACE)
@ -82,7 +95,7 @@ target_compile_features(slsProjectOptions INTERFACE cxx_std_11)
target_compile_options(slsProjectWarnings INTERFACE target_compile_options(slsProjectWarnings INTERFACE
-Wall -Wall
-Wextra -Wextra
-Wno-unused-parameter #Needs to be slowly mitigated -Wno-unused-parameter
# -Wold-style-cast # -Wold-style-cast
-Wnon-virtual-dtor -Wnon-virtual-dtor
-Woverloaded-virtual -Woverloaded-virtual
@ -93,13 +106,12 @@ target_compile_options(slsProjectWarnings INTERFACE
-Wvla -Wvla
-Wdouble-promotion -Wdouble-promotion
-Werror=return-type -Werror=return-type
) )
#Settings for C code #Settings for C code
add_library(slsProjectCSettings INTERFACE) add_library(slsProjectCSettings INTERFACE)
target_compile_features(slsProjectCSettings INTERFACE c_std_99)
target_compile_options(slsProjectCSettings INTERFACE target_compile_options(slsProjectCSettings INTERFACE
-std=gnu99 #fixed
-Wall -Wall
-Wextra -Wextra
-Wno-unused-parameter -Wno-unused-parameter
@ -116,31 +128,23 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
message(FATAL_ERROR "Clang version must be at least 3.2!") message(FATAL_ERROR "Clang version must be at least 3.2!")
endif() endif()
target_compile_options(slsProjectWarnings INTERFACE -Wshadow) #Clag does not warn on constructor
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
message(FATAL_ERROR "GCC version must be at least 4.8!") message(FATAL_ERROR "GCC version must be at least 4.8!")
endif() endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
target_compile_options(slsProjectWarnings INTERFACE target_compile_options(slsProjectWarnings INTERFACE
-Wno-missing-field-initializers) -Wno-missing-field-initializers)
endif() 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() endif()
# Add or disable warnings depending on if the compiler supports them
# The function checks internally and sets HAS_warning-name
sls_enable_cxx_warning("-Wnull-dereference")
sls_enable_cxx_warning("-Wduplicated-cond")
sls_disable_cxx_warning("-Wclass-memaccess")
sls_disable_c_warning("-Wstringop-truncation")
if(SLS_USE_SANITIZER) if(SLS_USE_SANITIZER)
target_compile_options(slsProjectOptions INTERFACE -fsanitize=address,undefined -fno-omit-frame-pointer) target_compile_options(slsProjectOptions INTERFACE -fsanitize=address,undefined -fno-omit-frame-pointer)
@ -187,8 +191,6 @@ if (NOT TARGET libzmq)
find_package(ZeroMQ 4 QUIET) find_package(ZeroMQ 4 QUIET)
endif() endif()
# libzmq autotools install: fallback to pkg-config # libzmq autotools install: fallback to pkg-config
if(NOT ZeroMQ_FOUND) if(NOT ZeroMQ_FOUND)
message(STATUS "CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)") message(STATUS "CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)")
@ -212,8 +214,6 @@ if (SLS_USE_TESTS)
endif(SLS_USE_TESTS) endif(SLS_USE_TESTS)
# Common functionallity to detector and receiver # Common functionallity to detector and receiver
add_subdirectory(slsSupportLib) add_subdirectory(slsSupportLib)
@ -259,16 +259,12 @@ if(SLS_BUILD_DOCS)
add_subdirectory(docs) add_subdirectory(docs)
endif(SLS_BUILD_DOCS) endif(SLS_BUILD_DOCS)
if(SLS_USE_MOENCH) if(SLS_USE_MOENCH)
add_subdirectory(slsDetectorCalibration/moenchExecutables) add_subdirectory(slsDetectorCalibration/moenchExecutables)
endif(SLS_USE_MOENCH) endif(SLS_USE_MOENCH)
if(SLS_MASTER_PROJECT) if(SLS_MASTER_PROJECT)
# Set install dir CMake packages
set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}") set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
# Set the list of exported targets
set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared) set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared)
# Generate and install package config file and version
include(cmake/package_config.cmake) include(cmake/package_config.cmake)
endif() endif()

17
COPYING Normal file
View File

@ -0,0 +1,17 @@
The SLS Detector Package is provided under:
SPDX-License-Identifier: LGPL-3.0-or-later
Being under the terms of the GNU Lesser General Public License version 3 or later,
according with:
LICENSES/LGPL-3.0
Source code under the Apache 2.0 License have the SPDX Identifier and are
according with:
LICENSES/ThirdParty/Apache-2.0
All contributions to the SLS Detector Package are subject to this COPYING file.

View File

@ -1,3 +1,17 @@
Valid-License-Identifier: GPL-3.0
Valid-License-Identifier: GPL-3.0+
SPDX-URL: https://spdx.org/licenses/GPL-3.0-or-later.html
Usage-Guide:
To use this license in source code, put one of the following SPDX
tag/value pairs into a comment according to the placement
guidelines in the licensing rules documentation.
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
SPDX-License-Identifier: GPL-3.0
For 'GNU Library General Public License (LGPL) version 3.0 or any later
version' use:
SPDX-License-Identifier: GPL-3.0-or-later
License-Text:
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007

View File

@ -1,3 +1,17 @@
Valid-License-Identifier: LGPL-3.0
Valid-License-Identifier: LGPL-3.0+
SPDX-URL: https://spdx.org/licenses/LGPL-3.0-or-later.html
Usage-Guide:
To use this license in source code, put one of the following SPDX
tag/value pairs into a comment according to the placement
guidelines in the licensing rules documentation.
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
SPDX-License-Identifier: LGPL-3.0
For 'GNU Library General Public License (LGPL) version 3.0 or any later
version' use:
SPDX-License-Identifier: LGPL-3.0-or-later
License-Text:
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007

View File

@ -0,0 +1,210 @@
Valid-License-Identifier: Apache-2.0
SPDX-URL: https://spdx.org/licenses/Apache-2.0.html
Usage-Guide:
To use this license in source code, put one of the following SPDX
tag/value pairs into a comment according to the placement
guidelines in the licensing rules documentation.
SPDX-License-Identifier: Apache-2.0
License-Text:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,257 +1,39 @@
SLS Detector Package 6.0.0-rc1 released on 08.10.2021 (Release Candidate 1) SLS Detector Package Minor Release 6.1.1 released on 04.01.2022
=========================================================================== ===============================================================
This document describes the differences between v6.0.0-rc1 and v5.1.0. This document describes the differences between v6.1.1 and v6.1.0.
CONTENTS CONTENTS
-------- --------
1. New or Changed Features 1. Resolved Issues
2. Resolved Issues 2. Firmware Requirements
3. Known Issues 3. Kernel Requirements
4. Firmware Requirements 4. Download, Documentation & Support
5. Download, Documentation & Support
1. Resolved Issues
1. New or Changed Features
==========================
Client
------
1. [Jungfrau] Chip version
Features for chipv1.1 incorporated
Command line: chipversion, API: getchipVersion
gets chip version (1.0 or 1.1)
chipv1.1 requires config_jungfrau.txt on detector server.
2. [Jungfrau] Chip configuration (only chipv1.1)
powering on the chip and changing settings will configure the chip.
Hence, required before acquisition.
3. [Jungfrau] Settings and Gain mode
Settings can be gain0 and highgain0. Gain mode can be dynamicgain,
forceswitchg1, forceswitchg2, fixg1, fixg2, fixg0. fixg0 must be
used with EXTRA caution as you can damage the detector.
Changing settings also changes dac values of 3 dacs () and reconfigures
chip (only v1.1)
4. [Jungfrau] Storage cells (only chipv1.1)
Additional number of storage cells not applicable for chipv1.1.
Storage cell start is only allowed from 0 - 3 for chipv1.1
(0 - 15 for chipv1.0).
5. [Gotthard2][Jungfrau] Filter Resistor
Command line: filterresistor, API: getFilterResistor/ setFilterResistor
Previous Command: filter, setFilter/ getFilter
Set Filter resistor. Increasing values for increasing resistance.
[Jungfrau] only for chipv1.1. Options: [0|1]. Default is 1.
[Gotthard2] Options: [0|1|2|3]. Default is 0.
6. [Jungfrau] Filter cell (only chipv1.1)
Command line: filtercell, API: getFilterCell/ setFilterCell
Set filter cell. Options: [0-12]. Advanced user command.
7. [Jungfrau] Comparator disable time (only chipv1.1)
Command line: comp_disable_time, API: getComparatorDisableTime/
setComparatorDisableTime
One can customize the period to disable comparator.
8. [Eiger][Jungfrau] Flip rows
Command line: fliprows, API: getFlipRows/ setFlipRows
Previous command: flippeddatax, setBottom/ getBottom
[Jungfrau] Flips rows in detector only for HW v2.0.
slsReceiver and slsDetectorGui will not flip them again.
[Eiger] same as before.
9. [Eiger][Jungfrau] Read n rows
Command line: readnrows, API: getReadNRows/ setReadNRows
Previous Command: readnlines, getPartialReadout/ setPartialReadout
[Eiger] same as before
[Jungfrau] Options: 8 - 512, multiples of 8. Default is 512.
10. [Gotthard2][Jungfrau] Current source
Command line: currentsource, API: getCurrentSource, setCurrentSource
Enable or disable current source. Default is disabled.
[Gotthard2] Can only enable or disable.
[Jungfrau] Can choose to fix, select source and choose normal or low
current. Normal/ low only for chipv1.1.
Select source is 0-63 for chipv1.0 and a 64 bit mask for chipv1.1.
11. Default dac
Command line: defaultdac, API: getDefaultDac/ setDefaultDac
change default value of a dac
[Jungfrau][Mythen3] Also change default value of dac for particular
setting.
12. Reset dacs
Command line: resetdacs, API: resetToDefaultDacs
Previous command: defaultdacs
Resets dacs to their default values or hard coded values.
13. [Mythen3] Gain Capacitance
Command line: gaincaps, API: getGainCaps/ setGainCaps
Set various gain capacitances.
14. [Gotthard2] Veto Streaming from chip
Command line: veto, API: getVeto/ setVeto
This command used to mean veto streaming from detector. Now, it means
veto streaming from chip (New feature). Default is disabled.
15. [Gotthard2] Veto streaming from detector
Command line: vetostream, API: getVetoStream, setVetoStream
Options: None, local link interface, 10 10GbE, Both
Default: None
10GbE (as before) will enable 2 udp interfaces in receiver.
16. [Gotthard2] Veto algorithm
Command line: vetoalg, API: getVetoAlgorithm/ setVetoAlgorithm
Set veto algorithm for each interface.
Options: hits, raw
17. [Eiger][Gotthard2][Mythen3] Module ID
Command line: moduleid, API: getModuleId
Previous command (Eiger only): serialnumber, getSerialNumber
Unique id read from txt file on detector and streamed out in udp header.
18. [Gotthard2]
Command line: dbitpipeline, API: getDBITPipeline/ setDBITPipeline
Set pipeline to latch digital bits. Options: 0-7
19. [Eiger][Jungfrau] Round Robin commands
Command line, udp_dstlist, API: getDestinationUDPList/
setDestinationUDPList
Round robin commands at the moment does not configure the receiver.
Set multiple udp destinations in the detector to stream udp data packets
to. Upto 32 destinations. Refer documentation for details.
Command line, udp_numdst, API: getNumberofUDPDestinations
[Jungfrau] Command line, udp_firstdst, API: getFirstUDPDestination/
setFirstUDPDestination
20. Command Line Parsing
Parsing of detector index and module index has been modified to
integrate round robin index.
[detector index]-[module index]:[round robin index] [command]
It is backwards compatible.
For ease, one can also execute
sls_detector_put [module index] [command]
21. Clear Udp Destination
Command line, udp_cleardst, API: clearUDPDestinations
This is useful when changing receivers for a detector or for round robin
system.
22. Shared Memory Naming
Shared memory name has been changed to reflect a more appropriate naming
scheme.
23. [Eiger][Mythen3] Blocking trigger
Command line: blockingtrigger, API: sendSoftwareTrigger
Sends software trigger signal to detector and blocks till frames are
sent out for that trigger.
24. [Eiger] Data stream enable for ports
Command line: datastream, API: getDataStream/ setDataStream
Enable or disable each port. Default: enabled
25. Changing TCP ports
This will only affect shared memory and will not try to change the
current tcp port of the control/stop server in detector.
26. [Eiger][Jungfrau][Gotthard2] Speed
Command line: readoutspeed, readoutspeedlist API: getReadoutSpeed/ setReadoutSpeed /
getReadoutSpeedList
Previous command: speed, setSpeed/ getSpeed
[Eiger][Jungfrau] same as before.
[Gotthard2] New command to set readout speed. Options: 108, 144 (in MHz)
Detector servers
----------------
1. [Gotthard2] Bad Channels moved to a new register, default settings
including clock frequency changed
2. [Gotthard2] Updated config file in detector server
Virtual servers
----------------
1. Artifical pixel values increasing by every packet, instead of every pixel.
2. All possible features updated.
Receiver
--------
1. Frames caught in metadata
Frames caught by the master receiver is added to master file metadata.
Hdf5 and Binary version numbers changed to 6.3
2. Removed Padding option for Deactivated half modules.
3. Changing Receiver TCP ports
This will only affect shared memory and will not try to change the
current tcp port of the receiver.
Gui
----
1. [Mythen3] counters added in settings tab
2. Resolved Issues
================== ==================
Detector Servers Detector Server
---------------- ---------------
1. [Gotthard2] Tolerance in time parameters.
Eg. 220 ns was being set to 215 ns, instead of 222ns.
2. [Jungfrau] Stopping in trigger mode and then switching to auto timing mode
blocks data streaming from detector. Workaround fix made in
detector server to reset core until next firmware release.
3. [Jungfrau][CTB][Moench][Gotthard][Gotthard2][Mythen3] Firmware Programming
Firmware programming incorporates more validations such as checksum of
program. Always ensure client and server are of same release before
programming firmware.
4. [Eiger] Stop sends last frame
Stop acquisition will now also send out all complete frames in fifo.
5. [Eiger] Bottom not rotated in quad mode. Fixed.
6. [Mythen3] counter mask effect on vthreshold
Setting counter mask changes vth daac values (ie. disabling sets to 2800),
vthreshold only changes for enabled counters, setting vth overwrites
dac even if counter disabled and when counters enabled, remembers set
values.
7. [Eiger] fast quad fix for loading trimbits 1. [Jungfrau] Cannot start
Under some circumstances and not always reproducible, the detector
Receiver cannot start once it has stopped. Fixed by adding a delay between the
-------- stop pulse and the resetting core to give sufficient time to readout and
stream out the ongoing frame.
1. Disabled port or deactivated (half) modules will not create files.
- better control of what is built (PR)?
- cmake package has hardcoded path to zeromq library
2. Firmware Requirements
3. Firmware Requirements
======================== ========================
Note: No change to 6.1.0.
Eiger Eiger
===== =====
Compatible version : 08.10.2021 (v29) Compatible version : 08.10.2021 (v29)
@ -268,11 +50,11 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
Mythen3 Mythen3
======= =======
Compatible version : 10.09.2021 (development) Compatible version : 10.09.2021 (v1.1)
Gotthard2 Gotthard2
========= =========
Compatible version : 27.05.2021 (v1.0) Compatible version : 27.05.2021 (v0.1)
Moench Moench
====== ======
@ -284,7 +66,6 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
Detector Upgrade Detector Upgrade
================ ================
The following can be upgraded remotely: The following can be upgraded remotely:
Eiger via bit files Eiger via bit files
Jungfrau via command <.pof> Jungfrau via command <.pof>
@ -303,25 +84,37 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
3. Kernel Requirements
======================
Note: No change to 6.1.0.
5. Known Issues Blackfin
=============== ========
Latest version: Fri Oct 29 00:00:00 2021
Older ones will work, but might have issues with programming firmware via
the package.
Receiver Nios
-------- ====
1. It does not handle readnrows or partial readout. Only the summary Compatible version: Mon May 10 18:00:21 CEST 2021
is adjusted to print in red. However, it will still write complete
images with missing data padded. Roi will be implemented in future
that can be complimented with this feature to remove the additional
data in files.
2. Round robin is not implemented in receiver side, ie. one cannot configure Kernel Upgrade
more than 1 receiver at a time. This will/might be done in the future. ==============
Eiger via bit files
Others via command
Commands: udpatekernel, kernelversion
Instructions available at
https://slsdetectorgroup.github.io/devdoc/commandline.html
https://slsdetectorgroup.github.io/devdoc/detector.html
https://slsdetectorgroup.github.io/devdoc/pydetector.html
6. Download, Documentation & Support 4. Download, Documentation & Support
==================================== ====================================
Download Download

64
cmake/SlsAddFlag.cmake Normal file
View File

@ -0,0 +1,64 @@
include(CheckCXXCompilerFlag)
include(CheckCCompilerFlag)
function(enable_cxx_warning flag target)
string(REPLACE "-W" "HAS_" flag_name ${flag})
check_cxx_compiler_flag(${flag} ${flag_name})
if(${flag_name})
target_compile_options(${target} INTERFACE ${flag})
message(STATUS "Adding: ${flag} to ${target}")
else()
message(STATUS "Flag: ${flag} not supported")
endif()
endfunction()
function(enable_c_warning flag target)
string(REPLACE "-W" "HAS_" flag_name ${flag})
check_c_compiler_flag(${flag} ${flag_name})
if(${flag_name})
target_compile_options(${target} INTERFACE ${flag})
message(STATUS "Adding: ${flag} to ${target}")
else()
message(STATUS "Flag: ${flag} not supported")
endif()
endfunction()
function(disable_cxx_warning flag target)
string(REPLACE "-W" "HAS_" flag_name ${flag})
check_cxx_compiler_flag(${flag} ${flag_name})
if(${flag_name})
string(REPLACE "-W" "-Wno-" neg_flag ${flag})
message(STATUS "Adding: ${neg_flag} to ${target}")
target_compile_options(${target} INTERFACE ${neg_flag})
else()
message(STATUS "Warning: ${flag} not supported no need to disable")
endif()
endfunction()
function(disable_c_warning flag target)
string(REPLACE "-W" "HAS_" flag_name ${flag})
check_c_compiler_flag(${flag} ${flag_name})
if(${flag_name})
string(REPLACE "-W" "-Wno-" neg_flag ${flag})
message(STATUS "Adding: ${neg_flag} to ${target}")
target_compile_options(${target} INTERFACE ${neg_flag})
else()
message(STATUS "Warning: ${flag} not supported no need to disable")
endif()
endfunction()
function(sls_disable_c_warning flag)
disable_c_warning(${flag} slsProjectCSettings)
endfunction()
function(sls_enable_cxx_warning flag)
enable_cxx_warning(${flag} slsProjectWarnings)
endfunction()
function(sls_disable_cxx_warning flag)
disable_cxx_warning(${flag} slsProjectWarnings)
endfunction()

2
cmk.sh
View File

@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
CMAKE="cmake3" CMAKE="cmake3"
BUILDDIR="build" BUILDDIR="build"
INSTALLDIR="" INSTALLDIR=""

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
mkdir build mkdir build
mkdir install mkdir install

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
echo "|<-------- starting python build" echo "|<-------- starting python build"
cd python cd python

View File

@ -3,6 +3,7 @@ python:
- 3.7 - 3.7
- 3.8 - 3.8
- 3.9 - 3.9
- 3.10
numpy: numpy:
- 1.17 - 1.17

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
mkdir $PREFIX/lib mkdir $PREFIX/lib
mkdir $PREFIX/bin mkdir $PREFIX/bin
mkdir $PREFIX/include mkdir $PREFIX/include

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#Copy the GUI #Copy the GUI
mkdir -p $PREFIX/bin mkdir -p $PREFIX/bin
cp build/install/bin/slsDetectorGui $PREFIX/bin/. cp build/install/bin/slsDetectorGui $PREFIX/bin/.

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
mkdir -p $PREFIX/lib mkdir -p $PREFIX/lib
mkdir -p $PREFIX/bin mkdir -p $PREFIX/bin

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#Copy the Moench executables #Copy the Moench executables
mkdir -p $PREFIX/bin mkdir -p $PREFIX/bin
cp build/install/bin/moench04ZmqProcess $PREFIX/bin/. cp build/install/bin/moench04ZmqProcess $PREFIX/bin/.

View File

@ -1 +1,3 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
ctest -j2 ctest -j2

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
find_package(ROOT CONFIG REQUIRED COMPONENTS Core Gui) find_package(ROOT CONFIG REQUIRED COMPONENTS Core Gui)
@ -59,7 +61,6 @@ set( HEADERS
#set(ROOT_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) #set(ROOT_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
# ROOT dictionary generation # ROOT dictionary generation
include("${ROOT_DIR}/RootMacros.cmake")
root_generate_dictionary(ctbDict ${HEADERS} LINKDEF ctbLinkDef.h) root_generate_dictionary(ctbDict ${HEADERS} LINKDEF ctbLinkDef.h)
add_library(ctbRootLib SHARED ctbDict.cxx) add_library(ctbRootLib SHARED ctbDict.cxx)
target_include_directories(ctbRootLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(ctbRootLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
@ -84,4 +85,5 @@ target_link_libraries(ctbGui PUBLIC
set_target_properties(ctbGui PROPERTIES set_target_properties(ctbGui PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
) )

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h

2
ctbGui/ctbAcquisition.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
//#define TESTADC //#define TESTADC

2
ctbGui/ctbAcquisition.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBACQUISITION_H #ifndef CTBACQUISITION_H
#define CTBACQUISITION_H #define CTBACQUISITION_H
#include <TGFrame.h> #include <TGFrame.h>

2
ctbGui/ctbAdcs.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TApplication.h> #include <TApplication.h>
#include <TGClient.h> #include <TGClient.h>
#include <TCanvas.h> #include <TCanvas.h>

2
ctbGui/ctbAdcs.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package

2
ctbGui/ctbDacs.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <stdio.h> #include <stdio.h>
#include <iostream> #include <iostream>

2
ctbGui/ctbDacs.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBDACS_H #ifndef CTBDACS_H

2
ctbGui/ctbDefs.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#pragma once #pragma once
#include <string> #include <string>

2
ctbGui/ctbGui.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TApplication.h> #include <TApplication.h>
#include <TColor.h> #include <TColor.h>

2
ctbGui/ctbLinkDef.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#pragma link C++ class ctbMain; #pragma link C++ class ctbMain;
#pragma link C++ class ctbDacs; #pragma link C++ class ctbDacs;
#pragma link C++ class ctbDac; #pragma link C++ class ctbDac;

2
ctbGui/ctbMain.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TApplication.h> #include <TApplication.h>
#include <TGClient.h> #include <TGClient.h>
#include <TCanvas.h> #include <TCanvas.h>

2
ctbGui/ctbMain.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBMAIN_H #ifndef CTBMAIN_H
#define CTBMAIN_H #define CTBMAIN_H
#include <TGFrame.h> #include <TGFrame.h>

2
ctbGui/ctbPattern.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TApplication.h> #include <TApplication.h>
#include <TGClient.h> #include <TGClient.h>
#include <TCanvas.h> #include <TCanvas.h>

2
ctbGui/ctbPattern.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBPATTERN_H #ifndef CTBPATTERN_H
#define CTBPATTERN_H #define CTBPATTERN_H
#include <TGFrame.h> #include <TGFrame.h>

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TGFrame.h> #include <TGFrame.h>

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBPOWERS_H #ifndef CTBPOWERS_H
#define CTBPOWERS_H #define CTBPOWERS_H

2
ctbGui/ctbSignals.cpp Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <TApplication.h> #include <TApplication.h>
#include <TGClient.h> #include <TGClient.h>
#include <TCanvas.h> #include <TCanvas.h>

2
ctbGui/ctbSignals.h Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBSIGNALS_H #ifndef CTBSIGNALS_H
#define CTBSIGNALS_H #define CTBSIGNALS_H
#include <TGFrame.h> #include <TGFrame.h>

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <stdio.h> #include <stdio.h>
#include <iostream> #include <iostream>

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef CTBSLOWADCS_H #ifndef CTBSLOWADCS_H

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
if [ "$#" -eq 0 ]; then if [ "$#" -eq 0 ]; then
echo "Wrong number of arguments: usage should be $0 patname" echo "Wrong number of arguments: usage should be $0 patname"
exit 1 exit 1

2
ctbGui/patternGenerator/generator.c Executable file → Normal file
View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
/**************************************************************************** /****************************************************************************
usage to generate a patter test.pat from test.p usage to generate a patter test.pat from test.p

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
find_package(Doxygen REQUIRED) find_package(Doxygen REQUIRED)
find_package(Sphinx REQUIRED) find_package(Sphinx REQUIRED)

View File

@ -1,8 +1,6 @@
Firmware Upgrade Firmware Upgrade
================= =================
Eiger Eiger
------------- -------------
@ -18,30 +16,9 @@ Upgrade
^^^^^^^^ ^^^^^^^^
#. Tftp must be already installed on your pc to use the bcp script. #. Tftp must be already installed on your pc to use the bcp script.
#. Kill the on-board servers and copy new servers to the board. #. Copy new servers to the board. See :ref:`how to upgrade detector servers<Detector Server Upgrade>` for more detals. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files.
.. code-block:: bash * This step is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore.
# Option 1: from detector console
# kill old server
ssh root@bebxxx
killall eigerDetectorServer
# copy new server
cd executables
scp user@pc:/path/eigerDetectorServerxxx .
chmod 777 eigerDetectorServerxxx
ln -sf eigerDetectorServerxxx eigerDetectorServer
sync
# Options 2: from client console for multiple modules
for i in bebxxx bebyyy;
do ssh root@$i killall eigerDetectorServer;
scp eigerDetectorServerxxx root@$i:~/executables/eigerDetectorServer;
ssh root@$i sync; done
* This is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore.
#. Bring the board into programmable mode using either of the 2 ways. Both methods result in only the central LED blinking. #. Bring the board into programmable mode using either of the 2 ways. Both methods result in only the central LED blinking.
@ -50,8 +27,13 @@ Upgrade
Do a hard reset for each half module on back panel boards, between the LEDs, closer to each of the 1G ethernet connectors. Push until all LEDs start to blink. Do a hard reset for each half module on back panel boards, between the LEDs, closer to each of the 1G ethernet connectors. Push until all LEDs start to blink.
* Software: * Software:
.. code-block:: bash .. code-block:: bash
# Option 1: if the old server is still running:
sls_detector_put execcommand "./boot_recovery"
# Option 2:
ssh root@bebxxx ssh root@bebxxx
cd executables cd executables
./boot_recovery ./boot_recovery
@ -79,11 +61,24 @@ Upgrade
#update front right fpga #update front right fpga
bcp download.bit bebxxx:/febr bcp download.bit bebxxx:/febr
#update kernel (only if required by the SLS Detector Group) #update kernel (only if required by us)
bcp download.bit bebxxx:/kernel bcp download.bit bebxxx:/kernel
#. Reboot the detector. #. Reboot the detector.
.. code-block:: bash
# In the first terminal where we saw "Succeess"
# reconfig febX is necessary only if you have flashed a new feb firmware
reconfig febl
reconfig febr
# will reboot controller
reconfig fw0
.. note ::
If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
Jungfrau Jungfrau
------------- -------------
@ -94,75 +89,26 @@ Download
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__ - `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
Upgrade (from v4.x.x) Upgrade
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware. .. note ::
#. Tftp must be installed on pc. These instructions are for upgrades from v5.0.0. For earlier versions, contact us.
#. Update client package to the latest (5.x.x).
#. Disable server respawning or kill old server
.. code-block:: bash
# Option 1: if respawning enabled
telnet bchipxxx
# edit /etc/inittab
# comment out line #ttyS0::respawn:/jungfrauDetectorServervxxx
reboot
# ensure servers did not start up after reboot
telnet bchipxxx
ps
# Option 2: if respawning already disabled
telnet bchipxxx
killall jungfrauDetectorServerv*
#. Copy new server and start in update mode
.. code-block:: bash
tftp pcxxx -r jungfrauDetectorServervxxx -g
chmod 777 jungfrauDetectorServervxxx
./jungfrauDetectorServervxxx -u
#. Program fpga from the client console
.. code-block:: bash
sls_detector_get free
# Crucial that the next command executes without any errors
sls_detector_put hostname bchipxxx
sls_detector_put programfpga xxx.pof
#. After programming, kill 'update server' using Ctrl + C in server console.
#. Enable server respawning if needed
.. code-block:: bash
telnet bchipxxx
# edit /etc/inittab
# uncomment out line #ttyS0::respawn:/jungfrauDetectorServervxxx
# ensure the line has the new server name
reboot
# ensure both servers are running using ps
jungfrauDetectorServervxxx
jungfrauDetectorServervxxx --stop-server 1953
Upgrade (from v5.0.0)
^^^^^^^^^^^^^^^^^^^^^^^^^^
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware. Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
Always ensure that the client and server software are of the same release. Always ensure that the client and server software are of the same release.
#. Program from console Program from console
.. code-block:: bash .. code-block:: bash
# copies server from tftp folder of pc, programs fpga, # copies server from tftp folder of pc, links new server to jungfrauDetectorServer,
# removes old server from respawn, sets up new server to respawn # removes old server from respawn, sets up new lnked server to respawn
# and reboots # programs fpga,
# reboots
sls_detector_put update jungfrauDetectorServervxxx pcxxx xx.pof sls_detector_put update jungfrauDetectorServervxxx pcxxx xx.pof
# Or only program firmware # Or only program firmware
@ -170,8 +116,8 @@ Always ensure that the client and server software are of the same release.
Gotthard Gotthard I
--------- -----------
Download Download
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
@ -186,7 +132,7 @@ Upgrade
^^^^^^^^ ^^^^^^^^
.. warning :: .. warning ::
| Gotthard firmware cannot be upgraded remotely and requires the use of USB-Blaster. | Gotthard firmware cannot be upgraded remotely and requires the use of USB-Blaster.
| It is generally updated by the SLS Detector group. | It is generally updated by us.
#. Download `Altera Quartus software or Quartus programmer <https://fpgasoftware.intel.com/20.1/?edition=standard&platform=linux&product=qprogrammer#tabs-4>`__. #. Download `Altera Quartus software or Quartus programmer <https://fpgasoftware.intel.com/20.1/?edition=standard&platform=linux&product=qprogrammer#tabs-4>`__.
@ -197,7 +143,7 @@ Upgrade
#. Plug the end of your USB-Blaster with the adaptor provided to the connector 'AS config' on the Gotthard board. #. Plug the end of your USB-Blaster with the adaptor provided to the connector 'AS config' on the Gotthard board.
#. Click on 'Add file'. Select programming (pof) file provided by the SLS Detector group. #. Click on 'Add file'. Select programming (pof) file provided by us.
#. Check "Program/Configure" and "Verify". Push the start button. Wait until the programming process is finished. #. Check "Program/Configure" and "Verify". Push the start button. Wait until the programming process is finished.
@ -206,68 +152,69 @@ Upgrade
#. Reboot the detector. #. Reboot the detector.
Mythen3 Mythen III
------- -----------
.. note :: .. note ::
As it is still in developement, the rbf files must be picked up from the SLS Detector Group. As it is still in development, the rbf files must be picked up from us.
Download Download
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
- detector server corresponding to package in slsDetectorPackage/serverBin - detector server corresponding to package in slsDetectorPackage/serverBin
- rbf files (in developement) - `rbf files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
Upgrade (from v5.0.0) Upgrade
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^
Always ensure that the client and server software are of the same release. Always ensure that the client and server software are of the same release.
#. Program from console Program from console
.. code-block:: bash .. code-block:: bash
# copies server from tftp folder of pc, programs fpga, # copies server from tftp folder of pc, links new server to mythen3DetectorServer,
# and reboots (new server not respawned currently) # programs fpga,
# reboots
sls_detector_put update mythen3DetectorServervxxx pcxxx xxx.rbf sls_detector_put update mythen3DetectorServervxxx pcxxx xxx.rbf
# Or only program firmware # Or only program firmware
sls_detector_put programfpga xxx.rbf sls_detector_put programfpga xxx.rbf
Gotthard2
-------------
.. note :: .. note ::
As it is still in developement, the rbf files must be picked up from the SLS Detector Group. If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
Gotthard II
-------------
Download Download
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
- detector server corresponding to package in slsDetectorPackage/serverBin - detector server corresponding to package in slsDetectorPackage/serverBin
- rbf files (in development) - `rbf files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
Upgrade
Upgrade (from v5.0.0) ^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^
Always ensure that the client and server software are of the same release. Always ensure that the client and server software are of the same release.
#. Program from console Program from console
.. code-block:: bash .. code-block:: bash
# copies server from tftp folder of pc, programs fpga, # copies server from tftp folder of pc, links new server to gotthard2DetectorServer,
# and reboots (new server not respawned currently) # programs fpga,
# reboots
sls_detector_put update gotthard2DetectorServervxxx pcxxx xxx.rbf sls_detector_put update gotthard2DetectorServervxxx pcxxx xxx.rbf
# Or only program firmware # Or only program firmware
sls_detector_put programfpga xxx.rbf sls_detector_put programfpga xxx.rbf
.. note ::
If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
Moench Moench
------- -------
@ -279,19 +226,21 @@ Download
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__ - `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
Upgrade (from v5.0.0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^ Upgrade
^^^^^^^^
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware. Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
Always ensure that the client and server software are of the same release. Always ensure that the client and server software are of the same release.
#. Program from console Program from console
.. code-block:: bash .. code-block:: bash
# copies server from tftp folder of pc, programs fpga, # copies server from tftp folder of pc, links new server to moenchDetectorServer,
# removes old server from respawn, sets up new server to respawn # removes old server from respawn, sets up new lnked server to respawn
# and reboots # programs fpga,
# reboots
sls_detector_put update moenchDetectorServervxxx pcxxx xx.pof sls_detector_put update moenchDetectorServervxxx pcxxx xx.pof
# Or only program firmware # Or only program firmware
@ -307,19 +256,21 @@ Download
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__ - `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
Upgrade (from v5.0.0)
^^^^^^^^^^^^^^^^^^^^^^^^^^ Upgrade
^^^^^^^^
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware. Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
Always ensure that the client and server software are of the same release. Always ensure that the client and server software are of the same release.
#. Program from console Program from console
.. code-block:: bash .. code-block:: bash
# copies server from tftp folder of pc, programs fpga, # copies server from tftp folder of pc, links new server to ctbDetectorServer,
# removes old server from respawn, sets up new server to respawn # removes old server from respawn, sets up new lnked server to respawn
# and reboots # programs fpga,
# reboots
sls_detector_put update ctbDetectorServervxxx pcxxx xx.pof sls_detector_put update ctbDetectorServervxxx pcxxx xx.pof
# Or only program firmware # Or only program firmware
@ -354,43 +305,53 @@ Firmware Troubleshooting with blackfin
5. If one can't list it, read the next section to try to get the blackfin to list it. 5. If one can't list it, read the next section to try to get the blackfin to list it.
How to get back mtd3 drive remotely (copying new kernel) How to get back mtd3 drive remotely (udpating kernel)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You have 2 alternatives to update the kernel.
.. code-block:: bash 1. Commands via software (>= v6.0.0)
# step 1: get the kernel image (uImage.lzma) from slsdetectorgroup
# and copy it to pc's tftp folder
# step 2: connect to the board .. code-block:: bash
telnet bchipxxx
#step 3: go to directory for space sls_detector_put updatekernel /home/...path-to-kernel-image
cd /var/tmp/
# step 3: copy kernel to board
tftp pcxxx -r uImage.lzma -g
# step 4: verify kernel copied properly 2. or command line
ls -lrt
# step 5: erase flash
flash_eraseall /dev/mtd1
# step 6: copy new image to kernel drive
cat uImage.lzma > /dev/mtd1
# step 7:
sync
# step 8:
reboot
# step 9: verification
telnet bchipxxx
uname -a # verify kernel date
more /proc/mtd # verify mtd3 is listed
.. code-block:: bash
# step 1: get the kernel image (uImage.lzma) from slsdetectorgroup
# and copy it to pc's tftp folder
# step 2: connect to the board
telnet bchipxxx
#step 3: go to directory for space
cd /var/tmp/
# step 3: copy kernel to board
tftp pcxxx -r uImage.lzma -g
# step 4: verify kernel copied properly
ls -lrt
# step 5: erase flash
flash_eraseall /dev/mtd1
# step 6: copy new image to kernel drive
cat uImage.lzma > /dev/mtd1
# step 7:
sync
# step 8:
reboot
# step 9: verification
telnet bchipxxx
uname -a # verify kernel date
more /proc/mtd # verify mtd3 is listed
Last Resort using USB Blaster Last Resort using USB Blaster
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
/** /**
* Utility program to generate input files for the command line * Utility program to generate input files for the command line
* documentation. Uses the string returned from sls_detector_help cmd * documentation. Uses the string returned from sls_detector_help cmd

View File

@ -71,4 +71,19 @@ exposed to Python through pybind11.
:undoc-members: :undoc-members:
.. autoclass:: timingSourceType .. autoclass:: timingSourceType
:undoc-members:
.. autoclass:: M3_GainCaps
:undoc-members:
.. autoclass:: portPosition
:undoc-members:
.. autoclass:: streamingInterface
:undoc-members:
.. autoclass:: vetoAlgorithm
:undoc-members:
.. autoclass:: gainMode
:undoc-members: :undoc-members:

View File

@ -36,6 +36,7 @@ Detector Servers include:
When using a blocking acquire command (sls_detector_acquire or Detector::acquire), the control server is blocked until end of acquisition. However, stop server commands could be used in parallel. When using a blocking acquire command (sls_detector_acquire or Detector::acquire), the control server is blocked until end of acquisition. However, stop server commands could be used in parallel.
.. _Automatic start servers:
Automatic start Automatic start
------------------ ------------------

View File

@ -1,114 +1,44 @@
.. _Detector Server Upgrade:
Detector Server Upgrade Detector Server Upgrade
======================= =======================
Eiger
-------------
**Location:** slsDetectorPackage/serverBin/ folder for every release. **Location:** slsDetectorPackage/serverBin/ folder for every release.
#. Kill old server and copy new server
.. code-block:: bash
# Option 1: from detector console
# kill old server
ssh root@bebxxx
killall eigerDetectorServer
# copy new server
cd executables
scp user@pc:/path/eigerDetectorServerxxx .
chmod 777 eigerDetectorServerxxx
ln -sf eigerDetectorServerxxx eigerDetectorServer
sync
# Options 2: from client console for multiple modules
for i in bebxxx bebyyy;
do ssh root@$i killall eigerDetectorServer;
scp eigerDetectorServerxxx root@$i:~/executables/eigerDetectorServer;
ssh root@$i sync; done
#. Reboot the detector.
Jungfrau
-------------
**Location:** slsDetectorPackage/serverBin/ folder for every release.
#. Install tftp and copy detector server binary to tftp folder #. Install tftp and copy detector server binary to tftp folder
#. Program from console (only from 5.0.0-rcx) #. Program from console
.. note ::
These instructions are for upgrades from v5.0.0. For earlier versions, contact us.
.. code-block:: bash .. code-block:: bash
# copies new server from pc tftp folder, respawns and reboots # copies new server from pc tftp folder, creates a soft link to xxxDetectorServerxxx
sls_detector_put copydetectorserver jungfrauDetectorServerxxx pcxxx # [Jungfrau][CTB][Moench] also edits initttab to respawn server on reboot
# Then, the detector controller will reboot (except Eiger)
sls_detector_put copydetectorserver xxxDetectorServerxxx pcxxx
#. Copy the detector server specific config files or any others required to the detector:
.. code-block:: bash
sls_detector_put execcommand "tftp pcxxx -r configxxx -g"
Gotthard .. note ::
---------
**Location:** slsDetectorPackage/serverBin/ folder for every release. For Mythen3, Gotthard2 and Eiger, you need to add scripts to automatically start detector server upon power on. See :ref:`Automatic start<Automatic start servers>` for more details.
#. Install tftp and copy detector server binary to tftp folder .. note ::
#. Program from console (only from 5.0.0-rcx)
.. code-block:: bash
# copies new server from pc tftp folder, respawns and reboots Eiger requires a manual reboot. Or killall the servers and restart the new linked one. If you are in the process of updating firmware, then don't reboot yet.
sls_detector_put copydetectorserver gotthardDetectorServerxxx pcxxx
Errors
Mythen3
-------
**Location:** slsDetectorPackage/serverBin/ folder for every release.
#. Install tftp and copy detector server binary to tftp folder
#. Program from console (only from 5.0.0-rcx)
.. code-block:: bash
# copies new server from pc tftp folder and reboots (does not respawn)
sls_detector_put copydetectorserver mythen3DetectorServerxxx pcxxx
Gotthard2
----------
**Location:** slsDetectorPackage/serverBin/ folder for every release.
#. Install tftp and copy detector server binary to tftp folder
#. Program from console (only from 5.0.0-rcx)
.. code-block:: bash
# copies new server from pc tftp folder and reboots (does not respawn)
sls_detector_put copydetectorserver gotthard2DetectorServerxxx pcxxx
Moench
------ ------
**Location:** slsDetectorPackage/serverBin/ folder for every release. #. tftp write error: There is no space left. Please delete some old binaries and try again.
#. Install tftp and copy detector server binary to tftp folder #. text file busy: You are trying to copy the same server.
#. Program from console (only from 5.0.0-rcx)
.. code-block:: bash
# copies new server from pc tftp folder, respawns and reboots
sls_detector_put copydetectorserver moenchDetectorServerxxx pcxxx
Ctb
---
**Location:** slsDetectorPackage/serverBin/ folder for every release.
#. Install tftp and copy detector server binary to tftp folder
#. Program from console (only from 5.0.0-rcx)
.. code-block:: bash
# copies new server from pc tftp folder, respawns and reboots
sls_detector_put copydetectorserver ctbDetectorServerxxx pcxxx

View File

@ -247,6 +247,19 @@ Possible causes could be the following:
* For Jungfrau, refer to :ref:`Jungfrau Power Supply Troubleshooting<Jungfrau Troubleshooting Power Supply>`. * For Jungfrau, refer to :ref:`Jungfrau Power Supply Troubleshooting<Jungfrau Troubleshooting Power Supply>`.
Cannot ping module (Nios)
^^^^^^^^^^^^^^^^^^^^^^^^^
If you executed "reboot" command on the board, you cannot ping it anymore unless you power cycle. To reboot the controller, please use the software command ("rebootcontroller"), which talks to the microcontroller.
Gotthard2
---------
Cannot get data without a module attached
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You cannot get data without a module attached as a specific pin is floating. Attach module to get data.
Gotthard Gotthard
---------- ----------

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
GITREPO1='git remote -v' GITREPO1='git remote -v'
GITREPO2=" | grep \"fetch\" | cut -d' ' -f1" GITREPO2=" | grep \"fetch\" | cut -d' ' -f1"
BRANCH1='git branch -v' BRANCH1='git branch -v'

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#####! /bin/awk -f #####! /bin/awk -f

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
# MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} ) # MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
# MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} ) # MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include "DetectorImpl.h" #include "DetectorImpl.h"
#include "catch.hpp" #include "catch.hpp"
#include "sls/string_utils.h" #include "sls/string_utils.h"

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include "catch.hpp" #include "catch.hpp"

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include "DetectorImpl.h" #include "DetectorImpl.h"
#include "catch.hpp" #include "catch.hpp"
#include "sls/string_utils.h" #include "sls/string_utils.h"

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
// tests-main.cpp // tests-main.cpp
#define CATCH_CONFIG_MAIN #define CATCH_CONFIG_MAIN
#include "catch.hpp" #include "catch.hpp"

View File

@ -1,16 +0,0 @@
Copyright (C) 2021 Contributors to the SLS Detector Package
This file is part of the SLS Detecotor Package.
SLS Detecotor Package is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SLS Detecotor Package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SLS Detecotor Package. If not, see <https://www.gnu.org/licenses/>.

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
pybind11_add_module(_slsdet pybind11_add_module(_slsdet
src/main.cpp src/main.cpp

View File

@ -1,63 +0,0 @@
# sls_detector: Python interface to slsDetectorPackage
Python interface to the Sls Detector Software.
### Documentation ###
Sphinx built documentation is available here:
[https://slsdetectorgroup.github.io/sls_detector/](https://slsdetectorgroup.github.io/sls_detector/)
### Install using conda ###
Binaries are available using conda. This installs both the detector software and the Python
interface.
```bash
#Add conda channels
conda config --add channels conda-forge
conda config --add channels slsdetectorgroup
#Install latest version
conda install sls_detector
#Install specific version
conda install sls_detector=3.0.1
#Scientific Linux 6 version (GLIBC2.12)
conda install sls_detector=SL6_3.0.1
```
### Building using conda-build ###
Needs [sls_detector_software](https://github.com/slsdetectorgroup/sls_detector_software) installed.
```bash
#Clone source code
git clone https://github.com/slsdetectorgroup/sls_detector.git
#Checkout the branch needed
git checkout 3.0.1
#Build and install the local version
conda-build sls_detector
conda install --use-local sls_detector
```
### Developer build ###
IF you if you are developing and are making constant changes to the code it's a bit cumbersome
to build with conda and install. Then an easier way is to build the C/C++ parts in the package
directory and temporary add this to the path
```bash
#in path/to/sls_detector
python setup.py build_ext --inplace
```
Then in your Python script
```python
import sys
sys.path.append('/path/to/sls_detector')
from sls_detector import Detector
```

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Example showing how to set and get exposure times Example showing how to set and get exposure times
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Detector, patternParameters from slsdet import Detector, patternParameters

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import time import time
from multiprocessing import Process from multiprocessing import Process
from slsdet import Detector, runStatus from slsdet import Detector, runStatus

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import time import time
from slsdet import Detector, runStatus from slsdet import Detector, runStatus

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Detector, Eiger, dacIndex from slsdet import Detector, Eiger, dacIndex

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Detector, Eiger, dacIndex from slsdet import Detector, Eiger, dacIndex

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Eiger from slsdet import Eiger
d = Eiger() d = Eiger()

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Detector, currentSrcParameters from slsdet import Detector, currentSrcParameters
s = currentSrcParameters() s = currentSrcParameters()

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
# Most settings are represented as enums that can be # Most settings are represented as enums that can be
# explicitly imported # explicitly imported

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from slsdet import Mythen3, scanParameters, dacIndex from slsdet import Mythen3, scanParameters, dacIndex

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import os import os
import sys import sys
import numpy as np import numpy as np

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import subprocess import subprocess
import locale import locale
out = subprocess.run(['g', 'list'], stdout = subprocess.PIPE, encoding=locale.getpreferredencoding()) out = subprocess.run(['g', 'list'], stdout = subprocess.PIPE, encoding=locale.getpreferredencoding())

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import subprocess import subprocess
import os import os
import sys import sys

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Code generator for enum bindings in the Python extension. Code generator for enum bindings in the Python extension.
Reads the sls_detector_defs.h and enums_in.cpp then outputs Reads the sls_detector_defs.h and enums_in.cpp then outputs
@ -14,8 +16,8 @@ from parse import remove_comments
allow_bitwise_op = ["M3_GainCaps"] allow_bitwise_op = ["M3_GainCaps"]
allow_bitwise_op = ["streamingInterface"] allow_bitwise_op = ["streamingInterface"]
op_key = {"operator|": "__or__", op_key = {"operator|": "|",
"operator&" : "__and__"} "operator&" : "&"}
def single_line_enum(line): def single_line_enum(line):
sub = line[line.find('{')+1:line.find('}')] sub = line[line.find('{')+1:line.find('}')]
@ -90,8 +92,7 @@ def generate_enum_string(enums):
#Here add the operators #Here add the operators
for op in operators: for op in operators:
data.append(f"\n\t.def(\"{op_key[op]}\", py::overload_cast< const slsDetectorDefs::streamingInterface&, const slsDetectorDefs::streamingInterface&>(&{op}))") data.append(f"\n\t.def(py::self {op_key[op]} slsDetectorDefs::{key}())")
data.append(';\n\n') data.append(';\n\n')
return ''.join(data) return ''.join(data)

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
This file is used to auto generate Python bindings for the This file is used to auto generate Python bindings for the
sls::Detector class. The tool needs the libclang bindings sls::Detector class. The tool needs the libclang bindings

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Utility to find and list which command line functions have tests and Utility to find and list which command line functions have tests and
where the tests are located where the tests are located

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import re import re
import subprocess import subprocess
from subprocess import PIPE from subprocess import PIPE

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import pytest import pytest
import subprocess import subprocess
import os import os

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Setup file for slsdet Setup file for slsdet
Build upon the pybind11 example found here: https://github.com/pybind/python_example Build upon the pybind11 example found here: https://github.com/pybind/python_example
@ -25,6 +27,7 @@ ext_modules = [
Pybind11Extension( Pybind11Extension(
'_slsdet', '_slsdet',
['src/main.cpp', ['src/main.cpp',
'src/current.cpp',
'src/enums.cpp', 'src/enums.cpp',
'src/detector.cpp', 'src/detector.cpp',
'src/network.cpp', 'src/network.cpp',

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
# from .detector import Detector, DetectorError, free_shared_memory # from .detector import Detector, DetectorError, free_shared_memory
from .eiger import Eiger from .eiger import Eiger
from .ctb import Ctb from .ctb import Ctb

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from functools import partial from functools import partial
class Adc: class Adc:
def __init__(self, name, enum, detector): def __init__(self, name, enum, detector):

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .detector import Detector from .detector import Detector
from .utils import element_if_equal from .utils import element_if_equal
from .dacs import DetectorDacs from .dacs import DetectorDacs

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .detector_property import DetectorProperty from .detector_property import DetectorProperty
from functools import partial from functools import partial
import numpy as np import numpy as np

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from collections.abc import Iterable from collections.abc import Iterable
import numpy as np import numpy as np

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Automatically improt all enums from slsDetectorDefs and give an Automatically improt all enums from slsDetectorDefs and give an
alias with their name in the enum module. All names from the enum alias with their name in the enum module. All names from the enum

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .detector import Detector from .detector import Detector
def view(name, det = Detector): def view(name, det = Detector):

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
import _slsdet import _slsdet
from _slsdet import Pattern from _slsdet import Pattern

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .utils import element_if_equal from .utils import element_if_equal
from .enums import dacIndex from .enums import dacIndex

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
class Register: class Register:
def __init__(self, detector): def __init__(self, detector):
self._detector = detector self._detector = detector

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from functools import partial from functools import partial
from collections.abc import Iterable from collections.abc import Iterable
import numpy as np import numpy as np

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
""" """
Utility functions that are useful for testing and troubleshooting Utility functions that are useful for testing and troubleshooting
but not directly used in controlling the detector but not directly used in controlling the detector

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include <pybind11/chrono.h> #include <pybind11/chrono.h>
#include <pybind11/numpy.h> #include <pybind11/numpy.h>
#include <pybind11/operators.h> #include <pybind11/operators.h>

View File

@ -1,3 +1,5 @@
// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
/* WARINING This file is auto generated any edits might be overwritten without /* WARINING This file is auto generated any edits might be overwritten without
* warning */ * warning */
@ -65,6 +67,10 @@ void init_det(py::module &m) {
(Result<int64_t>(Detector::*)(sls::Positions) const) & (Result<int64_t>(Detector::*)(sls::Positions) const) &
Detector::getDetectorServerVersion, Detector::getDetectorServerVersion,
py::arg() = Positions{}) py::arg() = Positions{})
.def("getKernelVersion",
(Result<std::string>(Detector::*)(sls::Positions) const) &
Detector::getKernelVersion,
py::arg() = Positions{})
.def("getSerialNumber", .def("getSerialNumber",
(Result<int64_t>(Detector::*)(sls::Positions) const) & (Result<int64_t>(Detector::*)(sls::Positions) const) &
Detector::getSerialNumber, Detector::getSerialNumber,
@ -1070,13 +1076,13 @@ void init_det(py::module &m) {
(void (Detector::*)(const defs::gainMode, sls::Positions)) & (void (Detector::*)(const defs::gainMode, sls::Positions)) &
Detector::setGainMode, Detector::setGainMode,
py::arg(), py::arg() = Positions{}) py::arg(), py::arg() = Positions{})
.def("getFilterCell", .def("getNumberOfFilterCells",
(Result<int>(Detector::*)(sls::Positions) const) & (Result<int>(Detector::*)(sls::Positions) const) &
Detector::getFilterCell, Detector::getNumberOfFilterCells,
py::arg() = Positions{}) py::arg() = Positions{})
.def("setFilterCell", .def("setNumberOfFilterCells",
(void (Detector::*)(int, sls::Positions)) & (void (Detector::*)(int, sls::Positions)) &
Detector::setFilterCell, Detector::setNumberOfFilterCells,
py::arg(), py::arg() = Positions{}) py::arg(), py::arg() = Positions{})
.def("getROI", .def("getROI",
(Result<defs::ROI>(Detector::*)(sls::Positions) const) & (Result<defs::ROI>(Detector::*)(sls::Positions) const) &
@ -1515,6 +1521,14 @@ void init_det(py::module &m) {
sls::Positions)) & sls::Positions)) &
Detector::copyDetectorServer, Detector::copyDetectorServer,
py::arg(), py::arg(), py::arg() = Positions{}) py::arg(), py::arg(), py::arg() = Positions{})
.def("updateDetectorServer",
(void (Detector::*)(const std::string &, sls::Positions)) &
Detector::updateDetectorServer,
py::arg(), py::arg() = Positions{})
.def("updateKernel",
(void (Detector::*)(const std::string &, sls::Positions)) &
Detector::updateKernel,
py::arg(), py::arg() = Positions{})
.def("rebootController", .def("rebootController",
(void (Detector::*)(sls::Positions)) & Detector::rebootController, (void (Detector::*)(sls::Positions)) & Detector::rebootController,
py::arg() = Positions{}) py::arg() = Positions{})
@ -1523,6 +1537,19 @@ void init_det(py::module &m) {
const std::string &, sls::Positions)) & const std::string &, sls::Positions)) &
Detector::updateFirmwareAndServer, Detector::updateFirmwareAndServer,
py::arg(), py::arg(), py::arg(), py::arg() = Positions{}) py::arg(), py::arg(), py::arg(), py::arg() = Positions{})
.def("updateFirmwareAndServer",
(void (Detector::*)(const std::string &, const std::string &,
sls::Positions)) &
Detector::updateFirmwareAndServer,
py::arg(), py::arg(), py::arg() = Positions{})
.def("getUpdateMode",
(Result<bool>(Detector::*)(sls::Positions) const) &
Detector::getUpdateMode,
py::arg() = Positions{})
.def("setUpdateMode",
(void (Detector::*)(bool, sls::Positions)) &
Detector::setUpdateMode,
py::arg(), py::arg() = Positions{})
.def("readRegister", .def("readRegister",
(Result<uint32_t>(Detector::*)(uint32_t, sls::Positions) const) & (Result<uint32_t>(Detector::*)(uint32_t, sls::Positions) const) &
Detector::readRegister, Detector::readRegister,

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