diff --git a/configuration/camera_config/SARES11-SPEC125-M1.json b/configuration/camera_config/SARES11-SPEC125-M1.json index 842385b..e6379d7 100644 --- a/configuration/camera_config/SARES11-SPEC125-M1.json +++ b/configuration/camera_config/SARES11-SPEC125-M1.json @@ -20,8 +20,8 @@ "name": "SARES11-SPEC125-M1", "prefix": "SARES11-SPEC125-M1", "source": "SARES11-SPEC125-M1", - "connections": 4, - "buffer_size": 100, - "buffer_logs": false, - "protocol": "tcp" + "connections": 2, + "buffer_size": 20, + "debug": true, + "protocol": "ipc" } \ No newline at end of file diff --git a/configuration/camera_config/SARES20-CAMS142-C1.json b/configuration/camera_config/SARES20-CAMS142-C1.json index 36e4033..43e7b5f 100644 --- a/configuration/camera_config/SARES20-CAMS142-C1.json +++ b/configuration/camera_config/SARES20-CAMS142-C1.json @@ -1,13 +1,13 @@ { "camera_calibration": { "reference_marker": [ - 1120, - 876, - 1425, - 1103 + 1296, + 809, + 1395, + 912 ], - "reference_marker_width": 102.9, - "reference_marker_height": 176.0, + "reference_marker_width": 300.0, + "reference_marker_height": 300.0, "angle_horizontal": 0.0, "angle_vertical": 0.0 }, @@ -20,7 +20,9 @@ "prefix": "SARES20-CAMS142-C1", "name": "SARES20-CAMS142-C1", "source": "SARES20-CAMS142-C1", - "alias": [], + "alias": [ + "SAMPLECAM_MICROSCOPE (SARES20-CAMS142-C1)" + ], "group": [ "Photonics", "Bernina" diff --git a/configuration/camera_config/SARES20-CAMS142-C2.json b/configuration/camera_config/SARES20-CAMS142-C2.json index 680a858..1811b72 100644 --- a/configuration/camera_config/SARES20-CAMS142-C2.json +++ b/configuration/camera_config/SARES20-CAMS142-C2.json @@ -1,13 +1,13 @@ { "camera_calibration": { "reference_marker": [ - 957, - 517, - 979, - 522 + 854, + 461, + 956, + 563 ], - "reference_marker_width": 1.0, - "reference_marker_height": 1.0, + "reference_marker_width": 2000.0, + "reference_marker_height": 2000.0, "angle_horizontal": 0.0, "angle_vertical": 0.0 }, @@ -24,5 +24,7 @@ "Photonics", "Bernina" ], - "alias": [] + "alias": [ + "SAMPLECAM_SIDEVIEW (SARES20-CAMS142-C2)" + ] } \ No newline at end of file diff --git a/configuration/camera_config/SARES20-CAMS142-M1.json b/configuration/camera_config/SARES20-CAMS142-M1.json index 7603ffb..bc88c84 100644 --- a/configuration/camera_config/SARES20-CAMS142-M1.json +++ b/configuration/camera_config/SARES20-CAMS142-M1.json @@ -1,13 +1,13 @@ { "camera_calibration": { "reference_marker": [ - 1457, - 673, - 1557, - 771 + 1463, + 735, + 1465, + 737 ], - "reference_marker_width": 1754.0, - "reference_marker_height": 1030.0, + "reference_marker_width": 2, + "reference_marker_height": 2, "angle_horizontal": 0.0, "angle_vertical": 0.0 }, diff --git a/configuration/camera_config/SARES20-CAMS142-M3.json b/configuration/camera_config/SARES20-CAMS142-M3.json index 3fdd911..c92298c 100644 --- a/configuration/camera_config/SARES20-CAMS142-M3.json +++ b/configuration/camera_config/SARES20-CAMS142-M3.json @@ -1,18 +1,18 @@ { "camera_calibration": { "reference_marker": [ - 1729, - 817, - 1829, - 917 + 1210, + 1102, + 1317, + 1201 ], - "reference_marker_width": 552.0, - "reference_marker_height": 586.0, + "reference_marker_width": 134.0, + "reference_marker_height": 144.0, "angle_horizontal": 0.0, "angle_vertical": 0.0 }, "mirror_x": false, - "mirror_y": true, + "mirror_y": false, "rotate": 0, "roi": null, "image_background": null, diff --git a/configuration/camera_config/SARES20-PROF141-M1.json b/configuration/camera_config/SARES20-PROF141-M1.json index e656053..dcfc28a 100644 --- a/configuration/camera_config/SARES20-PROF141-M1.json +++ b/configuration/camera_config/SARES20-PROF141-M1.json @@ -1,10 +1,10 @@ { "camera_calibration": { "reference_marker": [ - 343, - 120, - 445, - 220 + 379, + 72, + 487, + 159 ], "reference_marker_width": 200.0, "reference_marker_height": 200.0, @@ -27,6 +27,6 @@ "Bernina" ], "alias": [ - "TT_KB (SARES20-PROF141-M1)" + "PROF_KB (SARES20-PROF141-M1)" ] } \ No newline at end of file diff --git a/configuration/camera_config/SARES30-CAMS156-SMX-OAV.json b/configuration/camera_config/SARES30-CAMS156-SMX-OAV.json new file mode 100644 index 0000000..3bd8076 --- /dev/null +++ b/configuration/camera_config/SARES30-CAMS156-SMX-OAV.json @@ -0,0 +1,24 @@ +{ + "camera_calibration": { + "reference_marker": [ + 179, + 173, + 475, + 427 + ], + "reference_marker_width": 4000.0, + "reference_marker_height": 3000.0, + "angle_horizontal": 21.0, + "angle_vertical": 0.0 + }, + "mirror_x": true, + "mirror_y": false, + "rotate": 0, + "roi": null, + "image_background": null, + "source_type": "epics", + "name": "SARES30-CAMS156-SMX-OAV", + "source": "SARES30-CAMS156-SMX-OAV", + "group": "Cristallina", + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SARES30-CAMS156-SMX-XEYE.json b/configuration/camera_config/SARES30-CAMS156-SMX-XEYE.json new file mode 100644 index 0000000..55faab3 --- /dev/null +++ b/configuration/camera_config/SARES30-CAMS156-SMX-XEYE.json @@ -0,0 +1,24 @@ +{ + "camera_calibration": { + "reference_marker": [ + 179, + 173, + 475, + 427 + ], + "reference_marker_width": 4000.0, + "reference_marker_height": 3000.0, + "angle_horizontal": 21.0, + "angle_vertical": 0.0 + }, + "mirror_x": true, + "mirror_y": false, + "rotate": 0, + "roi": null, + "image_background": null, + "source_type": "epics", + "name": "SARES30-CAMS156-SMX-XEYE", + "source": "SARES30-CAMS156-SMX-XEYE", + "group": "Cristallina", + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SARES30-CAMS156-XE.json b/configuration/camera_config/SARES30-CAMS156-XE.json new file mode 100644 index 0000000..12996a1 --- /dev/null +++ b/configuration/camera_config/SARES30-CAMS156-XE.json @@ -0,0 +1,30 @@ +{ + "camera_calibration": { + "reference_marker": [ + 0, + 0, + 100, + 100 + ], + "reference_marker_width": 100.0, + "reference_marker_height": 100.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 0, + "source_type": "epics", + "name": "SARES30-CAMS156-XE", + "prefix": "SARES30-CAMS156-XE", + "source": "SARES30-CAMS156-XE", + "connections": 1, + "buffer_size": 100, + "buffer_logs": false, + "protocol": "tcp", + "group": [ + "Photonics", + "Cristallina" + ], + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SARFE10-PSSS059.json b/configuration/camera_config/SARFE10-PSSS059.json index 75f3a9e..0a339d7 100644 --- a/configuration/camera_config/SARFE10-PSSS059.json +++ b/configuration/camera_config/SARFE10-PSSS059.json @@ -20,8 +20,10 @@ "prefix": "SARFE10-PSSS059", "source": "SARFE10-PSSS059", "name": "SARFE10-PSSS059", - "connections": 4, + "connections": 2, "buffer_size": 100, + "buffer_threshold": 0.5, + "debug": true, "group": [ "Photonics", "Alvra", @@ -29,5 +31,5 @@ "Beamline Aramis" ], "alias": [], - "protocol": "tcp" + "protocol": "ipc" } \ No newline at end of file diff --git a/configuration/camera_config/SAROP21-PPRM102.json b/configuration/camera_config/SAROP21-PPRM102.json index e618d65..3a01e78 100644 --- a/configuration/camera_config/SAROP21-PPRM102.json +++ b/configuration/camera_config/SAROP21-PPRM102.json @@ -16,7 +16,7 @@ "rotate": 0, "roi": null, "image_background": null, - "source_type": "epics", + "source_type": "bsread", "name": "SAROP21-PPRM102", "source": "SAROP21-PPRM102", "group": [ diff --git a/configuration/camera_config/SAROP21-PPRM138.json b/configuration/camera_config/SAROP21-PPRM138.json index 86276ad..24b2eec 100644 --- a/configuration/camera_config/SAROP21-PPRM138.json +++ b/configuration/camera_config/SAROP21-PPRM138.json @@ -1,10 +1,10 @@ { "camera_calibration": { "reference_marker": [ - 331, - 274, - 366, - 317 + 334, + 277, + 369, + 320 ], "reference_marker_width": 500.0, "reference_marker_height": 500.0, diff --git a/configuration/camera_config/SAROP31-PPRM113.json b/configuration/camera_config/SAROP31-PPRM113.json index 8ff65b9..5eb9f65 100644 --- a/configuration/camera_config/SAROP31-PPRM113.json +++ b/configuration/camera_config/SAROP31-PPRM113.json @@ -20,7 +20,8 @@ "name": "SAROP31-PPRM113", "source": "SAROP31-PPRM113", "group": [ - "Photonics" + "Photonics", + "Cristallina" ], "alias": [] } \ No newline at end of file diff --git a/configuration/camera_config/SAROP31-PPRM150.json b/configuration/camera_config/SAROP31-PPRM150.json new file mode 100644 index 0000000..eaac293 --- /dev/null +++ b/configuration/camera_config/SAROP31-PPRM150.json @@ -0,0 +1,27 @@ +{ + "camera_calibration": { + "reference_marker": [ + 179, + 173, + 475, + 427 + ], + "reference_marker_width": 4000.0, + "reference_marker_height": 3000.0, + "angle_horizontal": 21.0, + "angle_vertical": 0.0 + }, + "mirror_x": true, + "mirror_y": false, + "rotate": 0, + "roi": null, + "image_background": null, + "source_type": "epics", + "name": "SAROP31-PPRM150", + "source": "SAROP31-PPRM150", + "group": [ + "Photonics", + "Cristallina" + ], + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SATDI01-DSCR040.json b/configuration/camera_config/SATDI01-DSCR040.json new file mode 100644 index 0000000..81e7778 --- /dev/null +++ b/configuration/camera_config/SATDI01-DSCR040.json @@ -0,0 +1,27 @@ +{ + "camera_calibration": { + "reference_marker": [ + 207, + 101, + 827, + 693 + ], + "reference_marker_width": 19500.0, + "reference_marker_height": 19500.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 2, + "roi": null, + "image_background": null, + "source_type": "epics", + "source": "SATDI01-DSCR040", + "name": "SATDI01-DSCR040", + "group": [ + "Electrons", + "HERO" + ], + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SATDI01-DSCR065.json b/configuration/camera_config/SATDI01-DSCR065.json new file mode 100644 index 0000000..f351c00 --- /dev/null +++ b/configuration/camera_config/SATDI01-DSCR065.json @@ -0,0 +1,27 @@ +{ + "camera_calibration": { + "reference_marker": [ + 687, + 484, + 734, + 532 + ], + "reference_marker_width": 1400.0, + "reference_marker_height": 1400.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 2, + "roi": null, + "image_background": null, + "source_type": "epics", + "source": "SATDI01-DSCR065", + "name": "SATDI01-DSCR065", + "group": [ + "Electrons", + "HERO" + ], + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SATES31-CAMS187-RIXS1.json b/configuration/camera_config/SATES31-CAMS187-RIXS1.json new file mode 100644 index 0000000..83c1c92 --- /dev/null +++ b/configuration/camera_config/SATES31-CAMS187-RIXS1.json @@ -0,0 +1,30 @@ +{ + "camera_calibration": { + "reference_marker": [ + 0, + 0, + 100, + 100 + ], + "reference_marker_width": 100.0, + "reference_marker_height": 100.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 0, + "source_type": "bsread", + "name": "SATES31-CAMS187-RIXS1", + "prefix": "SATES31-CAMS187-RIXS1", + "source": "SATES31-CAMS187-RIXS1", + "connections": 2, + "buffer_size": 100, + "buffer_logs": false, + "protocol": "ipc", + "group": [ + "Photonics", + "Furka" + ], + "alias": [] +} \ No newline at end of file diff --git a/configuration/camera_config/SATOP31-PMOS132-1D.json b/configuration/camera_config/SATOP31-PMOS132-1D.json new file mode 100644 index 0000000..055f38e --- /dev/null +++ b/configuration/camera_config/SATOP31-PMOS132-1D.json @@ -0,0 +1,37 @@ +{ + "camera_calibration": { + "reference_marker": [ + 0, + 0, + 100, + 100 + ], + "reference_marker_width": 100.0, + "reference_marker_height": 100.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 0, + "roi": null, + "image_background": null, + "source_type": "bsread", + "prefix": "SATOP31-PMOS132-1D", + "source": "SATOP31-PMOS132-1D", + "name": "SATOP31-PMOS132-1D", + "connections": 4, + "buffer_size": 100, + "group": [ + "Photonics" + ], + "alias": [], + "protocol": "tcp", + "reference_marker": [ + 0, + 0, + 0, + 0 + ], + "reference_marker_height": 0 +} \ No newline at end of file diff --git a/configuration/camera_config/SLAAR21-LCAM-C511.json b/configuration/camera_config/SLAAR21-LCAM-C511.json index b401be4..6ceb586 100644 --- a/configuration/camera_config/SLAAR21-LCAM-C511.json +++ b/configuration/camera_config/SLAAR21-LCAM-C511.json @@ -1,10 +1,10 @@ { "camera_calibration": { "reference_marker": [ - 596, - 384, - 796, - 602 + 663, + 492, + 765, + 593 ], "reference_marker_width": 2.0, "reference_marker_height": 2.0, @@ -23,8 +23,6 @@ "Laser", "Bernina" ], - "alias": [ - "CAM_NIR_ANGLE (SLAAR21-LCAM-C511)" - ], + "alias": [], "prefix": "SLAAR21-LCAM-C511" } \ No newline at end of file diff --git a/configuration/camera_config/SLAAR21-LCAM-C531.json b/configuration/camera_config/SLAAR21-LCAM-C531.json index f6491b7..8923168 100644 --- a/configuration/camera_config/SLAAR21-LCAM-C531.json +++ b/configuration/camera_config/SLAAR21-LCAM-C531.json @@ -1,10 +1,10 @@ { "camera_calibration": { "reference_marker": [ - 712, - 530, - 728, - 537 + 725, + 539, + 738, + 546 ], "reference_marker_width": 2.0, "reference_marker_height": 2.0, @@ -23,8 +23,6 @@ "Laser", "Bernina" ], - "alias": [ - "CAM_NIR_POSITION (SLAAR21-LCAM-C531)" - ], + "alias": [], "prefix": "SLAAR21-LCAM-C531" } \ No newline at end of file diff --git a/configuration/camera_config/new_camera_name.json b/configuration/camera_config/new_camera_name.json index f59ceca..06e0a22 100644 --- a/configuration/camera_config/new_camera_name.json +++ b/configuration/camera_config/new_camera_name.json @@ -17,4 +17,4 @@ "source_type": "epics", "source": "SLG-LCAM-C041", "name": "new_camera_name" -} +} \ No newline at end of file diff --git a/configuration/camera_config/permanent_instances.json b/configuration/camera_config/permanent_instances.json index 2c82bcf..4ceb4a8 100644 --- a/configuration/camera_config/permanent_instances.json +++ b/configuration/camera_config/permanent_instances.json @@ -1,4 +1,7 @@ { "#SARES11-SPEC125-M1": "SARES11-SPEC125-M1", - "#SARES11-SPEC125-M2": "SARES11-SPEC125-M2" + "#SARES11-SPEC125-M2": "SARES11-SPEC125-M2", + "#SARES11-XPR125-C4P2": "SARES11-XPR125-C4P2", + "#SARES12-CAMS128-M1": "SARES12-CAMS128-M1", + "SARFE10-PSSS059": "SARFE10-PSSS059" } \ No newline at end of file diff --git a/configuration/camera_config/servers.json b/configuration/camera_config/servers.json index 640911f..f295a49 100644 --- a/configuration/camera_config/servers.json +++ b/configuration/camera_config/servers.json @@ -38,10 +38,11 @@ "instances": [ "SARES11-SPEC125-M1", "SARES11-SPEC125-M2", - "SARES11-XMI125-C4P1", - "SARES11-XPR125-C4P2", - "SLAAR11-LCAM-C452", - "SLAAR11-LCAM-C421" + "#SARES11-XMI125-C4P1", + "#SARES11-XPR125-C4P2", + "#SLAAR11-LCAM-C452", + "#SLAAR11-LCAM-C421", + "#SARES12-CAMS128-M1" ] }, "http://sf-daqsync-06.psi.ch:8880": { @@ -67,4 +68,4 @@ "expanding": true, "instances": [] } -} +} \ No newline at end of file diff --git a/configuration/camera_config/simulation_3.json b/configuration/camera_config/simulation_3.json new file mode 100644 index 0000000..40e241f --- /dev/null +++ b/configuration/camera_config/simulation_3.json @@ -0,0 +1,23 @@ +{ + "camera_calibration": { + "reference_marker": [ + 211, + 173, + 1063, + 793 + ], + "reference_marker_width": 30000.0, + "reference_marker_height": 30000.0, + "angle_horizontal": 0.0, + "angle_vertical": 0.0 + }, + "mirror_x": false, + "mirror_y": false, + "rotate": 0, + "source_type": "simulation", + "name": "simulation_3", + "source": "", + + "frame_rate":2, + "protocol": "tcp" +} diff --git a/configuration/pipeline_config/SARES11-SPEC125-M1_psen_db.json b/configuration/pipeline_config/SARES11-SPEC125-M1_psen_db.json index 1fc30a3..33f5806 100644 --- a/configuration/pipeline_config/SARES11-SPEC125-M1_psen_db.json +++ b/configuration/pipeline_config/SARES11-SPEC125-M1_psen_db.json @@ -1,30 +1,29 @@ { - "image_background_enable": false, - "image_background": null, + "image_background_enable": "passive", + "image_background": "SARES11-SPEC125-M1_20220411_150342_083919", "image_threshold": null, "image_region_of_interest": null, "image_good_region": null, "image_slices": null, "pipeline_type": "processing", - "function": "psen_min_processing.py", + "function": "SARES11-SPEC125-M1_tt.py", "camera_name": "SARES11-SPEC125-M1", "name": "SARES11-SPEC125-M1_psen_db", "mode": "PUSH", "roi_signal": [ 0, 2048, - 260, - 100 + 50, + 300 ], - "roi_background": [ - 0, - 2048, - 1150, - 100 - ], - "processing_threads": 6, - "thread_buffer_size": 30, - "abort_on_error": false, "no_client_timeout": 0, - "reload": true + "port": "9013", + "pixel_bkg": 0, + "multiprocessing": false, + "_buffer_size": 5, + "processing_threads": 3, + "thread_buffer_size": 20, + "send_buffer_size": 20, + "block": false, + "debug": true } \ No newline at end of file diff --git a/configuration/pipeline_config/SARES11-SPEC125-M2_psen_db.json b/configuration/pipeline_config/SARES11-SPEC125-M2_psen_db.json index 8a9d80f..f5a3148 100644 --- a/configuration/pipeline_config/SARES11-SPEC125-M2_psen_db.json +++ b/configuration/pipeline_config/SARES11-SPEC125-M2_psen_db.json @@ -14,16 +14,15 @@ 0, 2047, 50, - 300 + 200 ], "roi_signal": [ 0, 2047, - 550, - 300 + 450, + 200 ], "no_client_timeout": 0, "pixel_bkg": 0, - "port": "9011", - "reload": true + "port": "9011" } \ No newline at end of file diff --git a/configuration/pipeline_config/SARES12-CAMS128-M1_psen_db.json b/configuration/pipeline_config/SARES12-CAMS128-M1_psen_db.json index c7e811e..e0bc767 100644 --- a/configuration/pipeline_config/SARES12-CAMS128-M1_psen_db.json +++ b/configuration/pipeline_config/SARES12-CAMS128-M1_psen_db.json @@ -10,16 +10,10 @@ "camera_name": "SARES12-CAMS128-M1", "name": "SARES12-CAMS128-M1_psen_db", "mode": "PUSH", - "roi_background": [ - 800, - 450, - 1300, - 450 - ], "roi_signal": [ - 800, - 450, - 700, - 450 + 0, + 2048, + 50, + 300 ] } \ No newline at end of file diff --git a/configuration/pipeline_config/SARFE10-PBPS053_proc.json b/configuration/pipeline_config/SARFE10-PBPS053_proc.json index e5d7227..411222e 100644 --- a/configuration/pipeline_config/SARFE10-PBPS053_proc.json +++ b/configuration/pipeline_config/SARFE10-PBPS053_proc.json @@ -10,19 +10,18 @@ ], "mode": "PUB", "function": "pbps.py", - "reload": true, "no_client_timeout": 0, "port": "9004", "up": "SARFE10-CVME-PHO6212:Lnk9Ch12-DATA-SUM", "down": "SARFE10-CVME-PHO6212:Lnk9Ch13-DATA-SUM", "right": "SARFE10-CVME-PHO6212:Lnk9Ch14-DATA-SUM", "left": "SARFE10-CVME-PHO6212:Lnk9Ch15-DATA-SUM", - "up_calib": 0.0396114649477661, - "down_calib": 0.04443745869759186, - "left_calib": 0.1251130741103867, - "right_calib": 0.06045661775892209, - "horiz_calib": -3.145932044592976, - "vert_calib": -8.645746475053746, + "up_calib": 0.0353509790781039, + "down_calib": 0.03683066094728678, + "left_calib": 0.08736011613824678, + "right_calib": 0.0547255642297261, + "horiz_calib": -4.474257539843546, + "vert_calib": -12.781273093267753, "uJ_calib": 605.9512700123181, "threshold": 0, "queue_length": 1000, @@ -54,4 +53,4 @@ "xpos_dif_w_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-W", "ypos_dif_m_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-M", "ypos_dif_w_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-W" -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SARFE10-PSSS059_psss.json b/configuration/pipeline_config/SARFE10-PSSS059_psss.json index 01b26f4..1f90b17 100644 --- a/configuration/pipeline_config/SARFE10-PSSS059_psss.json +++ b/configuration/pipeline_config/SARFE10-PSSS059_psss.json @@ -1,6 +1,6 @@ { "image_background_enable": true, - "image_background": "SARFE10-PSSS059_20211216_185801_521432", + "image_background": "SARFE10-PSSS059_20220411_150327_076737", "image_threshold": null, "image_region_of_interest": null, "image_good_region": null, @@ -12,9 +12,11 @@ "mode": "PUSH", "no_client_timeout": 0, "port": "8889", - "reload": true, - "processing_threads": 6, - "thread_buffer_size": 30, + "processing_threads": 8, + "thread_buffer_size": 20, + "send_buffer_size": 20, + "debug": true, "abort_on_error": false, + "block": false, "pixel_bkg": 1 } \ No newline at end of file diff --git a/configuration/pipeline_config/SARFE10-PSSS059_psss_avg.json b/configuration/pipeline_config/SARFE10-PSSS059_psss_avg.json index db8535a..6c44ce2 100644 --- a/configuration/pipeline_config/SARFE10-PSSS059_psss_avg.json +++ b/configuration/pipeline_config/SARFE10-PSSS059_psss_avg.json @@ -13,10 +13,11 @@ "port": "9005", "spectrum_x": "SARFE10-PSSS059:SPECTRUM_X", "spectrum_y": "SARFE10-PSSS059:SPECTRUM_Y", - "reload": true, "processing_threads": 6, - "thread_buffer_size": 30, + "thread_buffer_size": 20, + "send_buffer_size": 20, "abort_on_error": false, "pixel_bkg": 1, + "block": false, "queue_length": 100 } \ No newline at end of file diff --git a/configuration/pipeline_config/SAROP11-ATT01_proc.json b/configuration/pipeline_config/SAROP11-ATT01_proc.json index f1a3283..48577fb 100644 --- a/configuration/pipeline_config/SAROP11-ATT01_proc.json +++ b/configuration/pipeline_config/SAROP11-ATT01_proc.json @@ -13,7 +13,6 @@ "name": "SAROP11-ATT01_proc", "no_client_timeout": 0, "pipeline_type": "stream", - "reload": true, "calib": 1, "step_length": 50, "edge_type": "falling", @@ -25,4 +24,4 @@ "filter_window": 51, "filter": true, "port": 9001 -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SAROP11-PBPS117_proc.json b/configuration/pipeline_config/SAROP11-PBPS117_proc.json index c00ee77..b7942e8 100644 --- a/configuration/pipeline_config/SAROP11-PBPS117_proc.json +++ b/configuration/pipeline_config/SAROP11-PBPS117_proc.json @@ -10,7 +10,6 @@ ], "mode": "PUB", "function": "pbps.py", - "reload": true, "no_client_timeout": 0, "port": "9007", "up": "SAROP11-CVME-PBPS2:Lnk9Ch13-DATA-SUM", @@ -54,4 +53,4 @@ "xpos_dif_w_pvname": "SAROP11-PBPS117:XPOS-DIF-HIST-W", "ypos_dif_m_pvname": "SAROP11-PBPS117:YPOS-DIF-HIST-M", "ypos_dif_w_pvname": "SAROP11-PBPS117:YPOS-DIF-HIST-W" -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SAROP11-PBPS122_proc.json b/configuration/pipeline_config/SAROP11-PBPS122_proc.json index b755458..81ec10e 100644 --- a/configuration/pipeline_config/SAROP11-PBPS122_proc.json +++ b/configuration/pipeline_config/SAROP11-PBPS122_proc.json @@ -10,7 +10,6 @@ ], "mode": "PUB", "function": "pbps.py", - "reload": true, "no_client_timeout": 0, "port": "9010", "up": "SAROP11-CVME-PBPS1:Lnk9Ch4-DATA-SUM", @@ -54,4 +53,4 @@ "xpos_dif_w_pvname": "SAROP11-PBPS122:XPOS-DIF-HIST-W", "ypos_dif_m_pvname": "SAROP11-PBPS122:YPOS-DIF-HIST-M", "ypos_dif_w_pvname": "SAROP11-PBPS122:YPOS-DIF-HIST-W" -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SAROP21-ATT01_proc.json b/configuration/pipeline_config/SAROP21-ATT01_proc.json index 82b15bd..c1721a9 100644 --- a/configuration/pipeline_config/SAROP21-ATT01_proc.json +++ b/configuration/pipeline_config/SAROP21-ATT01_proc.json @@ -9,12 +9,14 @@ "events": "SAR-CVME-TIFALL5:EvtSet", "function": "SAROP21-ATT01_proc.py", "device": "SAROP21-ATT01", - "mode": "PUB", + "mode": "PUSH", "name": "SAROP21-ATT01_proc", "no_client_timeout": 0, "pipeline_type": "stream", - "reload": true, - "calib": 1, + "calib": [ + 1, + 0 + ], "step_length": 150, "edge_type": "rising", "refinement": 1, diff --git a/configuration/pipeline_config/SAROP21-PBPS133_proc.json b/configuration/pipeline_config/SAROP21-PBPS133_proc.json index 3cdfda7..8f56f16 100644 --- a/configuration/pipeline_config/SAROP21-PBPS133_proc.json +++ b/configuration/pipeline_config/SAROP21-PBPS133_proc.json @@ -10,21 +10,20 @@ ], "mode": "PUB", "function": "pbps.py", - "reload": true, "no_client_timeout": 0, "port": "9008", "up": "SLAAR21-LSCP1-FNS:CH7:VAL_GET", "down": "SLAAR21-LSCP1-FNS:CH6:VAL_GET", "right": "SLAAR21-LSCP1-FNS:CH4:VAL_GET", "left": "SLAAR21-LSCP1-FNS:CH5:VAL_GET", - "up_calib": 5.227803647305459e-05, - "down_calib": 4.348410512443169e-05, - "left_calib": 4.011211152052761e-05, - "right_calib": 9.626135639469406e-05, - "horiz_calib": 5.154915297561473, - "vert_calib": 5.781762629317017, + "up_calib": 0.0003244282457463418, + "down_calib": 0.00029970494517137886, + "left_calib": 0.00020403260875036537, + "right_calib": 0.00023071106308969315, + "horiz_calib": 4.194653639146427, + "vert_calib": -3.9946225385830854, "uJ_calib": 605.4608924473305, - "threshold": 1, + "threshold": 0, "queue_length": 3000, "xpos_all_x_pvname": "SAROP21-PBPS133:XPOS-ALL-HIST-X", "xpos_all_y_pvname": "SAROP21-PBPS133:XPOS-ALL-HIST-Y", @@ -54,4 +53,4 @@ "xpos_dif_w_pvname": "SAROP21-PBPS133:XPOS-DIF-HIST-W", "ypos_dif_m_pvname": "SAROP21-PBPS133:YPOS-DIF-HIST-M", "ypos_dif_w_pvname": "SAROP21-PBPS133:YPOS-DIF-HIST-W" -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SAROP21-PBPS138_proc.json b/configuration/pipeline_config/SAROP21-PBPS138_proc.json index 173996f..4af9c4e 100644 --- a/configuration/pipeline_config/SAROP21-PBPS138_proc.json +++ b/configuration/pipeline_config/SAROP21-PBPS138_proc.json @@ -10,7 +10,6 @@ ], "mode": "PUB", "function": "pbps.py", - "reload": true, "no_client_timeout": 0, "port": "9009", "up": "SAROP21-CVME-PBPS2:Lnk9Ch4-DATA-SUM", @@ -54,4 +53,4 @@ "xpos_dif_w_pvname": "SAROP21-PBPS138:XPOS-DIF-HIST-W", "ypos_dif_m_pvname": "SAROP21-PBPS138:YPOS-DIF-HIST-M", "ypos_dif_w_pvname": "SAROP21-PBPS138:YPOS-DIF-HIST-W" -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SAROP21-PPRM102_ib.json b/configuration/pipeline_config/SAROP21-PPRM102_ib.json new file mode 100644 index 0000000..74d771d --- /dev/null +++ b/configuration/pipeline_config/SAROP21-PPRM102_ib.json @@ -0,0 +1,11 @@ +{ + "image_background_enable": false, + "image_background": null, + "image_threshold": null, + "image_region_of_interest": null, + "image_good_region": null, + "image_slices": null, + "pipeline_type": "store", + "camera_name": "SAROP21-PPRM102", + "name": "SAROP21-PPRM102_ib" +} \ No newline at end of file diff --git a/configuration/pipeline_config/SAROP21-PPRM102_proc.json b/configuration/pipeline_config/SAROP21-PPRM102_proc.json index 1e528fb..992bea2 100644 --- a/configuration/pipeline_config/SAROP21-PPRM102_proc.json +++ b/configuration/pipeline_config/SAROP21-PPRM102_proc.json @@ -10,6 +10,8 @@ "name": "SAROP21-PPRM102_proc", "function": "bernina", "mode": "PUSH", - "no_client_timeout": 0, - "port": "9016" + "multiprocessing": false, + "processing_threads": 0, + "thread_buffer_size": 5, + "no_client_timeout": 0 } \ No newline at end of file diff --git a/configuration/pipeline_config/SAROP21-PPRM138_ib.json b/configuration/pipeline_config/SAROP21-PPRM138_ib.json new file mode 100644 index 0000000..bf6b507 --- /dev/null +++ b/configuration/pipeline_config/SAROP21-PPRM138_ib.json @@ -0,0 +1,11 @@ +{ + "image_background_enable": false, + "image_background": null, + "image_threshold": null, + "image_region_of_interest": null, + "image_good_region": null, + "image_slices": null, + "pipeline_type": "store", + "camera_name": "SAROP21-PPRM138", + "name": "SAROP21-PPRM138_ib" +} \ No newline at end of file diff --git a/configuration/pipeline_config/SAROP31-PBPS149_proc.json b/configuration/pipeline_config/SAROP31-PBPS149_proc.json new file mode 100644 index 0000000..0cc9070 --- /dev/null +++ b/configuration/pipeline_config/SAROP31-PBPS149_proc.json @@ -0,0 +1,57 @@ +{ + "pipeline_type": "stream", + "name": "SAROP31-PBPS149_proc", + "bsread_address": "", + "bsread_channels": [ + "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD0", + "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD1", + "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD2", + "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD3", + "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD4" + ], + "mode": "PUSH", + "function": "pbps.py", + "no_client_timeout": 0, + "up": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD1", + "down": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD0", + "right": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD2", + "left": "SAROP31-PBPS149:Lnk9Ch0-PP_VAL_PD3", + "up_calib": 2.503673389597217e-05, + "down_calib": 2.421143360740676e-05, + "left_calib": 1.0534124791624477e-05, + "right_calib": 3.4071828866743713e-05, + "horiz_calib": 64.46583408724379, + "vert_calib": -43.52641852658788, + "uJ_calib": 605.9512700123181, + "threshold": 0, + "queue_length": 1000, + "xpos_all_x_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-X", + "xpos_all_y_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-Y", + "xpos_all_m_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-M", + "xpos_all_w_pvname": "SARFE10-PBPS053:XPOS-ALL-HIST-W", + "ypos_all_x_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-X", + "ypos_all_y_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-Y", + "ypos_all_m_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-M", + "ypos_all_w_pvname": "SARFE10-PBPS053:YPOS-ALL-HIST-W", + "xpos_evn_x_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-X", + "xpos_evn_y_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-Y", + "xpos_evn_m_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-M", + "xpos_evn_w_pvname": "SARFE10-PBPS053:XPOS-EVN-HIST-W", + "ypos_evn_x_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-X", + "ypos_evn_y_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-Y", + "ypos_evn_m_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-M", + "ypos_evn_w_pvname": "SARFE10-PBPS053:YPOS-EVN-HIST-W", + "xpos_odd_x_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-X", + "xpos_odd_y_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-Y", + "xpos_odd_m_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-M", + "xpos_odd_w_pvname": "SARFE10-PBPS053:XPOS-ODD-HIST-W", + "ypos_odd_x_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-X", + "ypos_odd_y_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-Y", + "ypos_odd_m_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-M", + "ypos_odd_w_pvname": "SARFE10-PBPS053:YPOS-ODD-HIST-W", + "xpos_dif_m_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-M", + "xpos_dif_w_pvname": "SARFE10-PBPS053:XPOS-DIF-HIST-W", + "ypos_dif_m_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-M", + "ypos_dif_w_pvname": "SARFE10-PBPS053:YPOS-DIF-HIST-W", + "port": "9011" +} diff --git a/configuration/pipeline_config/SATES21-CAMS-PATT1_spec_db.json b/configuration/pipeline_config/SATES21-CAMS-PATT1_spec_db.json index fbbc20a..acfb82d 100644 --- a/configuration/pipeline_config/SATES21-CAMS-PATT1_spec_db.json +++ b/configuration/pipeline_config/SATES21-CAMS-PATT1_spec_db.json @@ -26,9 +26,8 @@ "processing_threads": 4, "thread_buffer_size": 30, "multiprocessing": true, - "reload": true, "project_axis": 0, "no_client_timeout": 0, "port": "9003", "threshold": 1000 -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SATES21-CAMS154-M1_spec_db.json b/configuration/pipeline_config/SATES21-CAMS154-M1_spec_db.json index 14ff01a..e2f8094 100644 --- a/configuration/pipeline_config/SATES21-CAMS154-M1_spec_db.json +++ b/configuration/pipeline_config/SATES21-CAMS154-M1_spec_db.json @@ -1,6 +1,6 @@ { "image_background_enable": "passive", - "image_background": "SATES21-CAMS154-M1_20220124_133832_927522", + "image_background": "SATES21-CAMS154-M1_20220311_183200_746851", "image_threshold": null, "image_region_of_interest": null, "image_good_region": null, @@ -18,7 +18,6 @@ ], "processing_threads": 4, "thread_buffer_size": 30, - "reload": true, "project_axis": 1, "threshold": 5 -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SATES24-CAMS161-M1_spec_db.json b/configuration/pipeline_config/SATES24-CAMS161-M1_spec_db.json index c7646c3..534b0e9 100644 --- a/configuration/pipeline_config/SATES24-CAMS161-M1_spec_db.json +++ b/configuration/pipeline_config/SATES24-CAMS161-M1_spec_db.json @@ -16,9 +16,8 @@ 370, 1540 ], - "reload": true, "processing_threads": 4, "thread_buffer_size": 30, "project_axis": 0, "threshold": 5 -} \ No newline at end of file +} diff --git a/configuration/pipeline_config/SATES31-CAMS187-RIXS1_ib.json b/configuration/pipeline_config/SATES31-CAMS187-RIXS1_ib.json new file mode 100644 index 0000000..7c7643d --- /dev/null +++ b/configuration/pipeline_config/SATES31-CAMS187-RIXS1_ib.json @@ -0,0 +1,11 @@ +{ + "image_background_enable": false, + "image_background": null, + "image_threshold": null, + "image_region_of_interest": null, + "image_good_region": null, + "image_slices": null, + "pipeline_type": "store", + "camera_name": "SATES31-CAMS187-RIXS1", + "name": "SATES31-CAMS187-RIXS1_ib" +} \ No newline at end of file diff --git a/configuration/pipeline_config/SATES31-CAMS187-RIXS1_proc.json b/configuration/pipeline_config/SATES31-CAMS187-RIXS1_proc.json new file mode 100644 index 0000000..a5b6ea3 --- /dev/null +++ b/configuration/pipeline_config/SATES31-CAMS187-RIXS1_proc.json @@ -0,0 +1,18 @@ +{ + "image_background_enable": false, + "image_background": null, + "image_threshold": null, + "image_region_of_interest": null, + "image_good_region": null, + "image_slices": null, + "pipeline_type": "processing", + "camera_name": "SATES31-CAMS187-RIXS1", + "name": "SATES31-CAMS187-RIXS1_proc", + "function": "SATES31-CAMS187-RIXS1_proc", + "mode": "PUSH", + "copy": false, + "processing_threads": 4, + "thread_buffer_size": 30, + "spawn_send_thread": true, + "multiprocessing": true +} \ No newline at end of file diff --git a/configuration/pipeline_config/arrival_time_proc.json b/configuration/pipeline_config/arrival_time_proc.json index 6b99a23..0b4474e 100644 --- a/configuration/pipeline_config/arrival_time_proc.json +++ b/configuration/pipeline_config/arrival_time_proc.json @@ -6,7 +6,8 @@ "image_good_region": null, "image_slices": null, "pipeline_type": "processing", - "camera_name": "SARES20-CAMS142-M5", + "#camera_name": "SARES20-CAMS142-M5", + "camera_name": "SARES11-SPEC125-M1", "name": "arrival_time_proc", "bsread_address": "", "bsread_channels": [ @@ -17,6 +18,5 @@ "mode": "PUSH", "function": "arrival_time_proc", "no_client_timeout": 0, - "port": "9008", "dispatcher_disable_compression": true -} +} \ No newline at end of file diff --git a/configuration/pipeline_config/permanent_instances.json b/configuration/pipeline_config/permanent_instances.json index 63ec2ed..32cdd52 100644 --- a/configuration/pipeline_config/permanent_instances.json +++ b/configuration/pipeline_config/permanent_instances.json @@ -1,12 +1,15 @@ { + "#SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db1", + "#SARES11-SPEC125-M2_psen_ib": "SARES11-SPEC125-M2_psen_ib1", + "#SARES12-CAMS128-M1_psen_db": "SARES12-CAMS128-M1_psen_db", + "#SARES12-CAMS128-M1_psen_ib": "SARES12-CAMS128-M1_psen_ib", "#SLAAR11-LCAM-C421_sp": "SLAAR11-LCAM-C421_sp", "#SLAAR11-LCAM-C452_sp": "SLAAR11-LCAM-C452_sp", "#test_stream": "test_stream", "#testdb_ib": "testdb_ib", "SARES11-SPEC125-M1_psen_db": "SARES11-SPEC125-M1_psen_db1", "SARES11-SPEC125-M1_psen_ib": "SARES11-SPEC125-M1_psen_ib1", - "SARES11-SPEC125-M2_psen_db": "SARES11-SPEC125-M2_psen_db1", - "SARES11-SPEC125-M2_psen_ib": "SARES11-SPEC125-M2_psen_ib1", + "SARES11-SPEC125-M1_test": "SARES11-SPEC125-M1_test", "SARES11-XMI125-C4P1_sp": "SARES11-XMI125-C4P1_sp", "SARES11-XMI125-C4P2_sp": "SARES11-XMI125-C4P2_sp", "SARES20-CAMS142-M1_psen_db": "SARES20-CAMS142-M1_psen_db1", @@ -29,15 +32,21 @@ "SAROP21-ATT01_proc": "SAROP21-ATT01_proc", "SAROP21-PBPS133_proc": "SAROP21-PBPS133_proc", "SAROP21-PBPS138_proc": "SAROP21-PBPS138_proc", + "SAROP21-PPRM102_ib": "SAROP21-PPRM102_ib", "SAROP21-PPRM102_proc": "SAROP21-PPRM102_proc", + "SAROP21-PPRM138_ib": "SAROP21-PPRM138_ib", "SAROP21-PPRM138_proc": "SAROP21-PPRM138_proc", + "SAROP31-PBPS149_proc": "SAROP31-PBPS149_proc", "SATES21-CAMS-PATT1_spec_db": "SATES21-CAMS-PATT1_spec_db", "SATES21-CAMS-PATT1_spec_ib": "SATES21-CAMS-PATT1_spec_ib", "SATES21-CAMS154-M1_spec_db": "SATES21-CAMS154-M1_spec_db", "SATES21-CAMS154-M1_spec_ib": "SATES21-CAMS154-M1_spec_ib", "SATES24-CAMS161-M1_spec_db": "SATES24-CAMS161-M1_spec_db", "SATES24-CAMS161-M1_spec_ib": "SATES24-CAMS161-M1_spec_ib", + "SATES31-CAMS187-RIXS1_ib": "SATES31-CAMS187-RIXS1_ib", + "SATES31-CAMS187-RIXS1_proc": "SATES31-CAMS187-RIXS1_proc", "SATOP31-PMOS132-2D_pmos": "SATOP31-PMOS132-2D_pmos", "SATOP31-PMOS132-2D_store": "SATOP31-PMOS132-2D_store", - "jungfrau_proc": "jungfrau_proc" + "jungfrau_proc": "jungfrau_proc", + "test_str": "test_str" } \ No newline at end of file diff --git a/configuration/pipeline_config/servers.json b/configuration/pipeline_config/servers.json index f077eb1..8808d68 100644 --- a/configuration/pipeline_config/servers.json +++ b/configuration/pipeline_config/servers.json @@ -31,7 +31,7 @@ "instances": [ "SARFE10-PSSS059_psss:8889", "SARFE10-PSSS059_store:8890", - "SARFE10-PSSS059_psss_avg:9005" + "#SARFE10-PSSS059_psss_avg:9005" ] }, "http://sf-daqsync-03.psi.ch:8881": { @@ -46,11 +46,12 @@ "SARFE10-PBPS053_proc:9004", "SAROP21-ATT01_proc:9003", "test_stream:9006", + "SARFE10-PSSS059_psss_avg:9012", "SAROP21-PBPS138_proc:9009", "SAROP11-PBPS117_proc:9007", + "SAROP31-PBPS149_proc:9011", "SAROP11-PBPS122_proc:9010", "SAROP21-PBPS133_proc:9008", - "SAROP21-PPRM102_proc:9016", "SATOP31-PMOS132-2D_sp", "SATOP31-PMOS132-2D_pmos:9001", "SATOP31-PMOS132-2D_store:9002" @@ -90,10 +91,11 @@ "instances": [ "SARES11-SPEC125-M1_psen_ib:9000", "SARES11-SPEC125-M1_psen_db:9001", - "SARES11-SPEC125-M2_psen_ib:9010", - "SARES11-SPEC125-M2_psen_db:9011", - "SARES12-CAMS128-M1_psen_ib:9002", - "SARES12-CAMS128-M1_psen_db:9003" + "SARES11-SPEC125-M1_test:9009", + "#SARES11-SPEC125-M2_psen_ib:9010", + "#SARES11-SPEC125-M2_psen_db:9011", + "#SARES12-CAMS128-M1_psen_ib:9002", + "#SARES12-CAMS128-M1_psen_db:9003" ] }, "http://sf-daqsync-06.psi.ch:8881": { @@ -106,6 +108,7 @@ "SARES20-PROF142-M1", "SARES20-PROF141-M1", "SARES20-PROF146-M1", + "SAROP21-PPRM102", "SAROP21-PPRM138", "SARES20-DSDPPRM" ], @@ -116,39 +119,51 @@ "SARES20-CAMS142-M4_psen_ib:9000", "SARES20-CAMS142-M4_psen_db:9001", "SARES20-CAMS142-M5_psen_ib:9010", + "SAROP21-PPRM138_ib:9004", "SARES20-CAMS142-M5_psen_db:9011", "SARES20-PROF142-M1_sp", "SARES20-PROF142-M1_ib:9005", "SARES20-PROF142-M1_proc:9017", + "SAROP21-PPRM102_ib:9006", + "SAROP21-PPRM102_proc:9007", "SAROP21-PPRM138_proc:9015", "SAROP21-PPRM138_sp", "SARES20-PROF141-M1_sp", - "SARES20-PROF141-M1_proc:9016", + "#SARES20-PROF141-M1_proc:9016", "SARES20-PROF141-M1_ib:9013", "SARES20-PROF146-M1_sp", "SARES20-PROF146-M1_proc:9018", "SARES20-DSDPPRM_proc:9014", - "arrival_time_proc:9008", + "#arrival_time_proc:9008", "test_arrival" ] }, "http://sf-daqsync-08.psi.ch:8881": { "cameras": [ "simulation_2", - "simulation" + "simulation", + "SARES30-CAMS156-XE" ], "enabled": true, "expanding": false, "instances": [ "simulation_2_sp", - "simulation2_sp" + "simulation2_sp", + "SARES30-CAMS156-XE_sp", + "test_str:9000" ] }, "http://sf-daqsync-09.psi.ch:8881": { - "cameras": [], + "cameras": [ + "SATES31-CAMS187-RIXS1" + ], "enabled": true, "expanding": false, - "instances": [] + "instances": [ + "SATES31-CAMS187-RIXS1_sp", + "SATES31-CAMS187-RIXS1_proc:9000", + "SATES31-CAMS187-RIXS1_ib:9001" + ] }, "http://sf-daqsync-10.psi.ch:8881": { "cameras": [], diff --git a/configuration/user_scripts/SARES11-SPEC125-M1_tt.py b/configuration/user_scripts/SARES11-SPEC125-M1_tt.py new file mode 100644 index 0000000..14f0099 --- /dev/null +++ b/configuration/user_scripts/SARES11-SPEC125-M1_tt.py @@ -0,0 +1,133 @@ +import sys +import json + +from logging import getLogger +from scipy.interpolate import interp1d +from scipy import signal +from scipy.ndimage import gaussian_filter1d +from scipy.ndimage import convolve1d +import numpy as np + +_logger = getLogger(__name__) + +# Alvra spectral encoder constants/waveforms +px2fs = 1.91 # calibration from ... +lambdas = 528.34 + 0.0261*np.arange(0,2048) # calibration from 2021-10-06 +nus = 299792458 / (lambdas * 10**-9) # frequency space, uneven +nus_new = np.linspace(nus[0], nus[-1], num=2048, endpoint=True) # frequency space, even +filters = { + "YAG": np.concatenate((np.ones(20),signal.tukey(40)[20:40], np.zeros(2008), np.zeros(2048))) # back timetool YAG +} + +# Functions for image analysis and spectral encoding processing +def get_roi_projection(image, roi, axis): + x_start, x_stop, y_start, y_stop = roi + cropped = image[y_start:y_stop, x_start:x_stop] + project = cropped.sum(axis=axis) + return project.astype("int64") + + +def interpolate(xold, xnew, vals): + """ + Interpolate vals from xold to xnew + """ + interp = interp1d(xold, vals, kind='cubic') + return interp(xnew) + + +def fourier_filter(vals, filt): + """ + Fourier transform, filter, inverse fourier transform, take the real part + """ + vals = np.hstack((vals, np.zeros_like(vals))) # pad + transformed = np.fft.fft(vals) + filtered = transformed * filt + inverse = np.fft.ifft(filtered) + invreal = 2 * np.real(inverse) + return invreal + + +def edge(filter_name, backgrounds, signals, peakback): + """ + returns: + edge positions determined from argmax of peak traces, converted to fs + edge amplitudes determined from the amax of the peak traces + the actual peak traces, which are the derivative of signal traces (below) + the raw signal traces, without any processing or smoothing except for the Fourier filter applied to remove the etalon + """ + ffilter = filters[filter_name] + + # background normalization + sig_norm = (signals / backgrounds) - 1 + # interpolate to get evenly sampled in frequency space + sig_interp = interpolate(nus, nus_new, sig_norm) + # Fourier filter + sig_filtered = fourier_filter(sig_interp, ffilter) + # interpolate to get unevenly sampled in frequency space (back to original wavelength space) + sig_uninterp = interpolate(nus_new, nus, sig_filtered[..., 0:2048]) + # peak via the derivative + sig_deriv = gaussian_filter1d(sig_uninterp, 50, order=1) + sig_deriv -= peakback + peak_pos = 1024 - (np.argmax(sig_deriv[500:1500], axis=-1) + 500) + peak_pos *= px2fs + peak_amp = 15000 * np.amax(sig_deriv[500:1500], axis=-1) # 15000 is the conversion factor to get the correct % + + return peak_pos, peak_amp, sig_deriv, sig_uninterp + + +def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None): + try: + """ + takes an image, processes the signal, sends out the raw data and processed results + """ + image = image.astype(int) + camera_name = parameters["camera_name"] + background = parameters.get("background_data") + background_name = parameters.get("image_background") + background_mode = parameters.get("image_background_enable") + roi_signal = parameters.get("roi_signal") + project_axis = parameters.get("project_axis", 0) + + # maintain the structure of processing_parameters + background_shape = None + + # maintain the structure of res + projection_signal = projection_background = None + + try: + + if roi_signal is not None: + projection_background = get_roi_projection(background, roi_signal, project_axis) + projection_signal = get_roi_projection(image, roi_signal, project_axis) + peak_pos, peak_amp, sig_deriv, sig_uninterp = edge("YAG", projection_background, projection_signal, 0) + + except Exception as e: + lineno = sys.exc_info()[2].tb_lineno + tn = type(e).__name__ + status = f"Error in line number {lineno}: {tn}: {e}" + raise e + else: + status = "OK" + + processing_parameters = { + "status": status, + "background_name": background_name, + "roi_signal": roi_signal + } + + processing_parameters = json.dumps(processing_parameters) + + res = { + camera_name + ".processing_parameters": processing_parameters, + camera_name + ".projection_signal": projection_signal, + camera_name + ".projection_background": projection_background, + camera_name + ".edge_position": peak_pos, + camera_name + ".edge_amplitude": peak_amp, + camera_name + ".edge_derivative": sig_deriv, + camera_name + ".edge_raw": sig_uninterp + } + return res + except: + _logger.exception("Error in processing function") + raise + \ No newline at end of file diff --git a/configuration/user_scripts/SAROP21-ATT01_proc.py b/configuration/user_scripts/SAROP21-ATT01_proc.py index c475e92..b605937 100644 --- a/configuration/user_scripts/SAROP21-ATT01_proc.py +++ b/configuration/user_scripts/SAROP21-ATT01_proc.py @@ -1,4 +1,5 @@ from collections import deque +import logging from logging import getLogger from scipy.signal import savgol_filter import numpy as np @@ -68,55 +69,73 @@ def process(data, pulse_id, timestamp, params): if not initialized: initialize(params) output = {} + try: + # Read stream inputs + prof_sig = data[params["prof_sig"]] + if prof_sig is None: + #TODO + return + prof_sig = prof_sig.astype('l') + prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3) + events = data[params["events"]] + + if events[dark_event] and use_dark: + buffer.append(prof_sig) + + if prof_sig_savgol.ndim == 1: + prof_sig_savgol = prof_sig_savgol[np.newaxis, :] + + if events[dark_event] and use_dark: + buffer_savgol.append(prof_sig_savgol) + edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan} + else: + if events[fel_on_event] and buffer_savgol: + prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0) + edge_results = find_edge(prof_sig_norm, step_length, edge_type, refinement) + elif events[fel_on_event] and not use_dark: + edge_results = find_edge(prof_sig_savgol, step_length, edge_type, refinement) + else: + edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan} + + # calib edge + edge_results["arrival_time"] = np.polyval(calib,edge_results["edge_pos"]) + # sort edge by parity + if pulse_id %2 ==0: + edge_results["arrival_time_even"] = np.nan if np.isnan(edge_results["edge_pos"]) else edge_results["edge_pos"] * calib + edge_results["arrival_time_odd"] = np.nan + else: + edge_results["arrival_time_even"] = np.nan + edge_results["arrival_time_odd"] = np.nan if np.isnan(edge_results["edge_pos"]) else edge_results["edge_pos"] * calib + + # push pulse ID for debuging + edge_results["pulse_id"] = pulse_id + # Set bs outputs + for key, value in edge_results.items(): + if key in ("pulse_id", "arrival_time", "edge_pos", "xcorr_ampl"): + output[f"{device}:{key}"] = value - # Read stream inputs - prof_sig = data[params["prof_sig"]] - prof_sig_savgol = savgol_filter(prof_sig, filter_window, 3) - events = data[params["events"]] - - if events[dark_event] and use_dark: - buffer.append(prof_sig) - - if prof_sig_savgol.ndim == 1: - prof_sig_savgol = prof_sig_savgol[np.newaxis, :] - - if events[dark_event] and use_dark: - buffer_savgol.append(prof_sig_savgol) - edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan} - else: - if events[fel_on_event] and buffer_savgol: - prof_sig_norm = prof_sig_savgol / np.mean(buffer_savgol, axis=0) - edge_results = find_edge(prof_sig_norm, step_length, edge_type, refinement) - elif events[fel_on_event] and not use_dark: - edge_results = find_edge(prof_sig_savgol, step_length, edge_type, refinement) - else: - edge_results = {"edge_pos": np.nan, "xcorr": np.nan, "xcorr_ampl": np.nan, "signal":np.nan} - - # calib edge - edge_results["arrival_time"] = edge_results["edge_pos"] * calib - - # Set bs outputs - for key, value in edge_results.items(): - output[f"{device}:{key}"] = value - - output[f"{device}:raw_wf"] = prof_sig - output[f"{device}:raw_wf_savgol"] = prof_sig_savgol - - if events[dark_event]: - output[f"{device}:dark_wf"] = prof_sig - output[f"{device}:dark_wf_savgol"] = prof_sig_savgol - else: - output[f"{device}:dark_wf"] = np.nan - output[f"{device}:dark_wf_savgol"] = np.nan - - if buffer: - output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0) - else: - output[f"{device}:avg_dark_wf"] = np.nan - - if buffer_savgol: - output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0) - else: - output[f"{device}:avg_dark_wf_savgol"] = np.nan - - return output + output[f"{device}:raw_wf"] = prof_sig + output[f"{device}:raw_wf_savgol"] = prof_sig_savgol + + if events[dark_event]: + output[f"{device}:dark_wf"] = prof_sig + output[f"{device}:dark_wf_savgol"] = prof_sig_savgol + else: + output[f"{device}:dark_wf"] = np.zeros(len(prof_sig), prof_sig.dtype) #np.nan + output[f"{device}:dark_wf_savgol"] = np.zeros(len(prof_sig), prof_sig_savgol.dtype) #np.nan + + if buffer: + output[f"{device}:avg_dark_wf"] = np.mean(buffer, axis=0) + else: + output[f"{device}:avg_dark_wf"] = np.nan + + if buffer_savgol: + output[f"{device}:avg_dark_wf_savgol"] = np.mean(buffer_savgol, axis=0) + else: + output[f"{device}:avg_dark_wf_savgol"] = np.nan + return output + except Exception as e: + #_logger.debug("Error in " + __name__ + ": "+ str(e)) + logging.exception("message") + #raise + return None diff --git a/configuration/user_scripts/SATES31-CAMS187-RIXS1_proc.py b/configuration/user_scripts/SATES31-CAMS187-RIXS1_proc.py new file mode 100644 index 0000000..286d5fd --- /dev/null +++ b/configuration/user_scripts/SATES31-CAMS187-RIXS1_proc.py @@ -0,0 +1,118 @@ +import numpy as np +#from skimage.feature import peak_local_max +#from scipy.optimize import curve_fit +from cam_server.pipeline.data_processing import functions, processor + +initialized = False +prefix=None +curvature=None + +def initialize(parameters, image): + global initialized, prefix, curvature + prefix = parameters["camera_name"]+":" + + curv_pars = [6.57905502e-05, -1.06989268e-01, 1.58730770e+02] + xxx = np.arange(image.shape[0]) + curvature = xxx ** 2 * curv_pars[0] + xxx * curv_pars[1] + curv_pars[2] + curvature -= np.min(curvature) + initialized = True + +def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None): + if not initialized: + initialize(parameters, image) + #ret = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata) + ret = dict() + #image = np.array(image) #Remove this copy if pipeline parameter "copy" is set to true or multiprocessed + + Spectrum = evt_list = SPC = SPC_wgt = SPC_gauss = None + try: + # 1 Apply Threshold + low, high = 128, 400 # threshold values + mask = (image < high) * (image > low) # image is the single frame from the camera + mask = np.logical_not(mask) + image[mask] = 0 + + # 2 Correct Curvature + #Do only once in initialization + """ + curv_pars = [6.57905502e-05, -1.06989268e-01, 1.58730770e+02] + xxx = np.arange(image.shape[0]) + curvature = xxx ** 2 * curv_pars[0] + xxx * curv_pars[1] + curv_pars[2] + curvature -= np.min(curvature) + """ + image_corr = np.zeros(image.shape) + for j in range(image.shape[0]): + image_corr[j] = np.roll(image[j], -int(curvature[j])) + + # 3 Binning + Spectrum = np.sum(image_corr, axis=0) + + """ + # 4 SPC + def gauss2D(M, mx, my, sx, sy, amp): + x, y = M + den = 2 * np.pi * sx * sy + exparg = -(((x - mx) / sx) ** 2 + ((y - my) / sy) ** 2) / 2. + return amp * np.exp(exparg) / den + + + size = 10 # crop size around event + evt_list = np.array([]) + tot_evt = 0 + + bounds_low = [int(size * 0.5) - 3, int(size * 0.5) - 3, 0.4, 0.4, 1] + bounds_high = [int(size * 0.5) + 3, int(size * 0.5) + 3, 5, 5, 1e5] + xx_c, yy_c = np.meshgrid(np.arange(size), np.arange(size)) + + xx, yy = np.meshgrid(np.arange(image_corr.shape[1]), np.arange(image_corr.shape[0])) + + coords = peak_local_max(image_corr, min_distance=6) # Identify location of event + + for e in range(len(coords)): + tot_evt += 1 + + y0, x0 = coords.astype(int)[e] + + extr = image_corr[(y0 - int(size * 0.5)):(y0 + int(size * 0.5)), + (x0 - int(size * 0.5)):(x0 + int(size * 0.5))] # crop the frame + + pars = [int(size * 0.5), int(size * 0.5), 1.5, 1.5, 100] + + pars, pcov = curve_fit(gauss2D, np.vstack((xx_c.ravel(), yy_c.ravel())), extr.ravel(), p0=pars, + bounds=(bounds_low, bounds_high)) # fit the event + + pars[0] = x0 - int(size * 0.5) + pars[0] + pars[1] = y0 - int(size * 0.5) + pars[1] + + evt_list = np.append(evt_list, np.append([int(tot_evt)], pars)) + + evt_list = np.reshape(evt_list, (tot_evt, 6)) + + # 5 SPC spectra + image_SPC = np.zeros(image.shape) + image_SPC_weighted = np.zeros(image.shape) + image_gauss = np.zeros(image.shape) + + for evt in range(tot_evt): + if ((evt_list[evt, 3] > 0.7) & (evt_list[evt, 4] > 0.7)): # filter out fake events + cx, cy = evt_list[evt, 2], evt_list[evt, 1] + image_SPC_weighted[int(cx), int(cy)] += evt_list[evt, 5] + image_SPC[int(cx), int(cy)] += 1 + pars = evt_list[evt][1:] + image_gauss += (gauss2D([xx, yy], *pars)) + + SPC = np.sum(image_SPC, axis=0) + SPC_wgt = np.sum(image_SPC_weighted, axis=0) + SPC_gauss = np.sum(image_gauss, axis=0) + """ + except Exception as e: + _logger.error("Error in processing function: " + str(e)) + + #return values + ret[prefix+"Spectrum"]=Spectrum + ret[prefix+"evt_list"]=evt_list + ret[prefix+"SPC"]=SPC + ret[prefix+"SPC_wgt"]=SPC_wgt + ret[prefix+"SPC_gauss"]=SPC_gauss + + return ret \ No newline at end of file diff --git a/configuration/user_scripts/bernina.py b/configuration/user_scripts/bernina.py index d3b35b2..c73223f 100644 --- a/configuration/user_scripts/bernina.py +++ b/configuration/user_scripts/bernina.py @@ -5,7 +5,7 @@ from cam_server.pipeline.data_processing import functions, processor def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata): r = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata) ret = OrderedDict() - channels = ["intensity","x_center_of_mass","x_fwhm","x_rms","x_fit_amplitude", "x_fit_mean","x_fit_offset","x_fit_standard_deviation","x_profile"] + channels = ["intensity","x_center_of_mass","x_fwhm","x_rms","x_fit_amplitude", "x_fit_mean","x_fit_offset","x_fit_standard_deviation","x_profile","y_center_of_mass","y_fwhm","y_rms","y_fit_amplitude", "y_fit_mean","y_fit_offset","y_fit_standard_deviation","y_profile"] prefix = parameters["camera_name"] for c in channels: ret[prefix+":"+c] = r[c] diff --git a/configuration/user_scripts/psen_min_processing.py b/configuration/user_scripts/psen_min_processing.py index bd6661d..da86e79 100644 --- a/configuration/user_scripts/psen_min_processing.py +++ b/configuration/user_scripts/psen_min_processing.py @@ -19,7 +19,7 @@ def get_roi_x_profile(image, roi): #_logger.warning("----- START ---- ") #pid = None #sent=None -def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, image_background_array=None): +def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None): #global pid, sent #if pid is not None: # if pid != sent: @@ -30,6 +30,11 @@ def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, image_ processed_data = dict() + if bsdata is not None: + processed_data.update(bsdata) + + event = processed_data.get("SAR-CVME-TIFALL4:EvtSet", None) + image_property_name = parameters["camera_name"] roi_signal = parameters.get("roi_signal", DEFAULT_ROI_SIGNAL) roi_background = parameters.get("roi_background", DEFAULT_ROI_BACKGROUND) diff --git a/configuration/user_scripts/test3.py b/configuration/user_scripts/test3.py index 57db06f..3b6aec0 100644 --- a/configuration/user_scripts/test3.py +++ b/configuration/user_scripts/test3.py @@ -2,4 +2,5 @@ from cam_server.pipeline.data_processing import functions, processor def process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata=None): ret = processor.process_image(image, pulse_id, timestamp, x_axis, y_axis, parameters, bsdata) + ret["value"]=3.0 return ret \ No newline at end of file