From 00c1211c56d0b5c3d34410ece4a5ff36e8f1f20a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 15 May 2020 16:14:57 +0200 Subject: [PATCH 01/30] unformatting regdefs --- .../mythen3DetectorServer/RegisterDefs.h | 346 +++++++++--------- 1 file changed, 165 insertions(+), 181 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index 4cc54b714..101c91cd9 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -1,326 +1,310 @@ #pragma once +// clang-format off #define REG_OFFSET (4) /* Base addresses 0x1804 0000 ---------------------------------------------*/ /* Reconfiguration core for readout pll */ -#define BASE_READOUT_PLL (0x0000) // 0x1804_0000 - 0x1804_07FF +#define BASE_READOUT_PLL (0x0000) // 0x1804_0000 - 0x1804_07FF /* Reconfiguration core for system pll */ -#define BASE_SYSTEM_PLL (0x0800) // 0x1804_0800 - 0x1804_0FFF +#define BASE_SYSTEM_PLL (0x0800) // 0x1804_0800 - 0x1804_0FFF /* Clock Generation */ -#define BASE_CLK_GENERATION (0x1000) // 0x1804_1000 - 0x1804_XXXX //TODO +#define BASE_CLK_GENERATION (0x1000) // 0x1804_1000 - 0x1804_XXXX //TODO /* Base addresses 0x1806 0000 ---------------------------------------------*/ /* General purpose control and status registers */ -#define BASE_CONTROL (0x0000) // 0x1806_0000 - 0x1806_00FF +#define BASE_CONTROL (0x0000) // 0x1806_0000 - 0x1806_00FF // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/ctrl/ctrl.vhd /* ASIC Control */ -#define BASE_ASIC (0x0100) // 0x1806_0100 - 0x1806_010F +#define BASE_ASIC (0x0100) // 0x1806_0100 - 0x1806_010F /* ASIC Digital Interface. Data recovery core */ -#define BASE_ADIF (0x0110) // 0x1806_0110 - 0x1806_011F +#define BASE_ADIF (0x0110) // 0x1806_0110 - 0x1806_011F // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/adif/adif_ctrl.vhd /* Formatting of data core */ -#define BASE_FMT (0x0120) // 0x1806_0120 - 0x1806_012F +#define BASE_FMT (0x0120) // 0x1806_0120 - 0x1806_012F /* Packetizer */ -#define BASE_PKT (0x0140) // 0x1806_0140 - 0x1806_014F +#define BASE_PKT (0x0140) // 0x1806_0140 - 0x1806_014F // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/pkt/pkt_ctrl.vhd /* Pattern control and status registers */ -#define BASE_PATTERN_CONTROL (0x00200) // 0x1806_0200 - 0x1806_02FF +#define BASE_PATTERN_CONTROL (0x00200) // 0x1806_0200 - 0x1806_02FF // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/pattern_flow/pattern_flow_ctrl.vhd /* UDP datagram generator */ -#define BASE_UDP_RAM (0x01000) // 0x1806_1000 - 0x1806_1FFF +#define BASE_UDP_RAM (0x01000) // 0x1806_1000 - 0x1806_1FFF /* Pattern RAM. Pattern table */ -#define BASE_PATTERN_RAM (0x10000) // 0x1807_0000 - 0x1807_FFFF +#define BASE_PATTERN_RAM (0x10000) // 0x1807_0000 - 0x1807_FFFF /* Clock Generation registers * ------------------------------------------------------*/ -#define PLL_RESET_REG (0x00 * REG_OFFSET + BASE_CLK_GENERATION) +#define PLL_RESET_REG (0x00 * REG_OFFSET + BASE_CLK_GENERATION) -#define PLL_RESET_READOUT_OFST (0) -#define PLL_RESET_READOUT_MSK (0x00000001 << PLL_RESET_READOUT_OFST) -#define PLL_RESET_SYSTEM_OFST (1) -#define PLL_RESET_SYSTEM_MSK (0x00000001 << PLL_RESET_SYSTEM_OFST) +#define PLL_RESET_READOUT_OFST (0) +#define PLL_RESET_READOUT_MSK (0x00000001 << PLL_RESET_READOUT_OFST) +#define PLL_RESET_SYSTEM_OFST (1) +#define PLL_RESET_SYSTEM_MSK (0x00000001 << PLL_RESET_SYSTEM_OFST) /* Control registers --------------------------------------------------*/ /* Module Control Board Serial Number Register */ -#define MCB_SERIAL_NO_REG (0x00 * REG_OFFSET + BASE_CONTROL) +#define MCB_SERIAL_NO_REG (0x00 * REG_OFFSET + BASE_CONTROL) -#define MCB_SERIAL_NO_VRSN_OFST (16) -#define MCB_SERIAL_NO_VRSN_MSK (0x0000001F << MCB_SERIAL_NO_VRSN_OFST) +#define MCB_SERIAL_NO_VRSN_OFST (16) +#define MCB_SERIAL_NO_VRSN_MSK (0x0000001F << MCB_SERIAL_NO_VRSN_OFST) /* FPGA Version register */ -#define FPGA_VERSION_REG (0x01 * REG_OFFSET + BASE_CONTROL) +#define FPGA_VERSION_REG (0x01 * REG_OFFSET + BASE_CONTROL) -#define FPGA_COMPILATION_DATE_OFST (0) -#define FPGA_COMPILATION_DATE_MSK (0x00FFFFFF << FPGA_COMPILATION_DATE_OFST) -#define DETECTOR_TYPE_OFST (24) -#define DETECTOR_TYPE_MSK (0x000000FF << DETECTOR_TYPE_OFST) +#define FPGA_COMPILATION_DATE_OFST (0) +#define FPGA_COMPILATION_DATE_MSK (0x00FFFFFF << FPGA_COMPILATION_DATE_OFST) +#define DETECTOR_TYPE_OFST (24) +#define DETECTOR_TYPE_MSK (0x000000FF << DETECTOR_TYPE_OFST) /* API Version Register */ -#define API_VERSION_REG (0x02 * REG_OFFSET + BASE_CONTROL) +#define API_VERSION_REG (0x02 * REG_OFFSET + BASE_CONTROL) -#define API_VERSION_OFST (0) -#define API_VERSION_MSK (0x00FFFFFF << API_VERSION_OFST) -#define API_VERSION_DETECTOR_TYPE_OFST (24) // Not used in software -#define API_VERSION_DETECTOR_TYPE_MSK \ - (0x000000FF << API_VERSION_DETECTOR_TYPE_OFST) // Not used in software +#define API_VERSION_OFST (0) +#define API_VERSION_MSK (0x00FFFFFF << API_VERSION_OFST) +#define API_VERSION_DETECTOR_TYPE_OFST (24) // Not used in software +#define API_VERSION_DETECTOR_TYPE_MSK (0x000000FF << API_VERSION_DETECTOR_TYPE_OFST) // Not used in software /* Fix pattern register */ -#define FIX_PATT_REG (0x03 * REG_OFFSET + BASE_CONTROL) -#define FIX_PATT_VAL (0xACDC2019) +#define FIX_PATT_REG (0x03 * REG_OFFSET + BASE_CONTROL) +#define FIX_PATT_VAL (0xACDC2019) /* Status register */ -#define STATUS_REG (0x04 * REG_OFFSET + BASE_CONTROL) +#define STATUS_REG (0x04 * REG_OFFSET + BASE_CONTROL) /* Look at me register, read only */ -#define LOOK_AT_ME_REG \ - (0x05 * REG_OFFSET + \ - BASE_CONTROL) // Not used in firmware or software, good to play with +#define LOOK_AT_ME_REG (0x05 * REG_OFFSET + BASE_CONTROL) // Not used in firmware or software, good to play with -#define SYSTEM_STATUS_REG \ - (0x06 * REG_OFFSET + BASE_CONTROL) // Not used in software +#define SYSTEM_STATUS_REG (0x06 * REG_OFFSET + BASE_CONTROL) // Not used in software /* Config RW regiseter */ -#define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL) -#define CONFIG_COUNTER_ENA_OFST (0) -#define CONFIG_COUNTER_ENA_MSK (0x00000003 << CONFIG_COUNTER_ENA_OFST) -#define CONFIG_COUNTER_ENA_DEFAULT_VAL \ - ((0x0 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) -#define CONFIG_COUNTER_ENA_1_VAL \ - ((0x1 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) -#define CONFIG_COUNTER_ENA_2_VAL \ - ((0x2 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) -#define CONFIG_COUNTER_ENA_ALL_VAL \ - ((0x3 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) -#define CONFIG_DYNAMIC_RANGE_OFST (4) -#define CONFIG_DYNAMIC_RANGE_MSK (0x00000003 << CONFIG_DYNAMIC_RANGE_OFST) -#define CONFIG_DYNAMIC_RANGE_1_VAL \ - ((0x0 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) -#define CONFIG_DYNAMIC_RANGE_4_VAL \ - ((0x1 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) -#define CONFIG_DYNAMIC_RANGE_16_VAL \ - ((0x2 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) -#define CONFIG_DYNAMIC_RANGE_24_VAL \ - ((0x3 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL) +#define CONFIG_COUNTER_ENA_OFST (0) +#define CONFIG_COUNTER_ENA_MSK (0x00000003 << CONFIG_COUNTER_ENA_OFST) +#define CONFIG_COUNTER_ENA_DEFAULT_VAL ((0x0 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_1_VAL ((0x1 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_2_VAL ((0x2 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_ALL_VAL ((0x3 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_DYNAMIC_RANGE_OFST (4) +#define CONFIG_DYNAMIC_RANGE_MSK (0x00000003 << CONFIG_DYNAMIC_RANGE_OFST) +#define CONFIG_DYNAMIC_RANGE_1_VAL ((0x0 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_4_VAL ((0x1 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_16_VAL ((0x2 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_24_VAL ((0x3 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) /* Control RW register */ -#define CONTROL_REG (0x21 * REG_OFFSET + BASE_CONTROL) +#define CONTROL_REG (0x21 * REG_OFFSET + BASE_CONTROL) -#define CONTROL_STRT_ACQSTN_OFST (0) -#define CONTROL_STRT_ACQSTN_MSK (0x00000001 << CONTROL_STRT_ACQSTN_OFST) -#define CONTROL_STP_ACQSTN_OFST (1) -#define CONTROL_STP_ACQSTN_MSK (0x00000001 << CONTROL_STP_ACQSTN_OFST) -#define CONTROL_CRE_RST_OFST (10) -#define CONTROL_CRE_RST_MSK (0x00000001 << CONTROL_CRE_RST_OFST) -#define CONTROL_PRPHRL_RST_OFST (11) // Only GBE10? -#define CONTROL_PRPHRL_RST_MSK (0x00000001 << CONTROL_PRPHRL_RST_OFST) -#define CONTROL_CLR_ACQSTN_FIFO_OFST (15) -#define CONTROL_CLR_ACQSTN_FIFO_MSK (0x00000001 << CONTROL_CLR_ACQSTN_FIFO_OFST) -#define CONTROL_PWR_CHIP_OFST (31) -#define CONTROL_PWR_CHIP_MSK (0x00000001 << CONTROL_PWR_CHIP_OFST) +#define CONTROL_STRT_ACQSTN_OFST (0) +#define CONTROL_STRT_ACQSTN_MSK (0x00000001 << CONTROL_STRT_ACQSTN_OFST) +#define CONTROL_STP_ACQSTN_OFST (1) +#define CONTROL_STP_ACQSTN_MSK (0x00000001 << CONTROL_STP_ACQSTN_OFST) +#define CONTROL_CRE_RST_OFST (10) +#define CONTROL_CRE_RST_MSK (0x00000001 << CONTROL_CRE_RST_OFST) +#define CONTROL_PRPHRL_RST_OFST (11) // Only GBE10? +#define CONTROL_PRPHRL_RST_MSK (0x00000001 << CONTROL_PRPHRL_RST_OFST) +#define CONTROL_CLR_ACQSTN_FIFO_OFST (15) +#define CONTROL_CLR_ACQSTN_FIFO_MSK (0x00000001 << CONTROL_CLR_ACQSTN_FIFO_OFST) +#define CONTROL_PWR_CHIP_OFST (31) +#define CONTROL_PWR_CHIP_MSK (0x00000001 << CONTROL_PWR_CHIP_OFST) /* Pattern IO Control 64 bit register */ -#define PATTERN_IO_CTRL_LSB_REG (0x22 * REG_OFFSET + BASE_CONTROL) -#define PATTERN_IO_CTRL_MSB_REG (0x23 * REG_OFFSET + BASE_CONTROL) +#define PATTERN_IO_CTRL_LSB_REG (0x22 * REG_OFFSET + BASE_CONTROL) +#define PATTERN_IO_CTRL_MSB_REG (0x23 * REG_OFFSET + BASE_CONTROL) -#define DTA_OFFSET_REG (0x24 * REG_OFFSET + BASE_CONTROL) +#define DTA_OFFSET_REG (0x24 * REG_OFFSET + BASE_CONTROL) /* Packetizer -------------------------------------------------------------*/ /* Packetizer Config Register */ -#define PKT_CONFIG_REG (0x00 * REG_OFFSET + BASE_PKT) +#define PKT_CONFIG_REG (0x00 * REG_OFFSET + BASE_PKT) -#define PKT_CONFIG_NRXR_MAX_OFST (0) -#define PKT_CONFIG_NRXR_MAX_MSK (0x0000003F << PKT_CONFIG_NRXR_MAX_OFST) -#define PKT_CONFIG_RXR_START_ID_OFST (8) -#define PKT_CONFIG_RXR_START_ID_MSK (0x0000003F << PKT_CONFIG_RXR_START_ID_OFST) +#define PKT_CONFIG_NRXR_MAX_OFST (0) +#define PKT_CONFIG_NRXR_MAX_MSK (0x0000003F << PKT_CONFIG_NRXR_MAX_OFST) +#define PKT_CONFIG_RXR_START_ID_OFST (8) +#define PKT_CONFIG_RXR_START_ID_MSK (0x0000003F << PKT_CONFIG_RXR_START_ID_OFST) /* Module Coordinates Register */ -#define COORD_0_REG (0x02 * REG_OFFSET + BASE_PKT) -#define COORD_ROW_OFST (0) -#define COORD_ROW_MSK (0x0000FFFF << COORD_ROW_OFST) -#define COORD_COL_OFST (16) -#define COORD_COL_MSK (0x0000FFFF << COORD_COL_OFST) +#define COORD_0_REG (0x02 * REG_OFFSET + BASE_PKT) +#define COORD_ROW_OFST (0) +#define COORD_ROW_MSK (0x0000FFFF << COORD_ROW_OFST) +#define COORD_COL_OFST (16) +#define COORD_COL_MSK (0x0000FFFF << COORD_COL_OFST) /* Module ID Register */ -#define COORD_1_REG (0x03 * REG_OFFSET + BASE_PKT) -#define COORD_RESERVED_OFST (0) -#define COORD_RESERVED_MSK (0x0000FFFF << COORD_RESERVED_OFST) -#define COORD_ID_OFST (16) // Not connected in firmware TODO -#define COORD_ID_MSK \ - (0x0000FFFF << COORD_ID_OFST) // Not connected in firmware TODO +#define COORD_1_REG (0x03 * REG_OFFSET + BASE_PKT) +#define COORD_RESERVED_OFST (0) +#define COORD_RESERVED_MSK (0x0000FFFF << COORD_RESERVED_OFST) +#define COORD_ID_OFST (16) // Not connected in firmware TODO +#define COORD_ID_MSK (0x0000FFFF << COORD_ID_OFST) // Not connected in firmware TODO /* Pattern Control registers * --------------------------------------------------*/ /* Pattern status Register*/ -#define PAT_STATUS_REG (0x00 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PAT_STATUS_RUN_BUSY_OFST (0) -#define PAT_STATUS_RUN_BUSY_MSK (0x00000001 << PAT_STATUS_RUN_BUSY_OFST) -#define PAT_STATUS_WAIT_FOR_TRGGR_OFST (3) -#define PAT_STATUS_WAIT_FOR_TRGGR_MSK \ - (0x00000001 << PAT_STATUS_WAIT_FOR_TRGGR_OFST) -#define PAT_STATUS_DLY_BFRE_TRGGR_OFST (4) -#define PAT_STATUS_DLY_BFRE_TRGGR_MSK \ - (0x00000001 << PAT_STATUS_DLY_BFRE_TRGGR_OFST) -#define PAT_STATUS_FIFO_FULL_OFST (5) -#define PAT_STATUS_FIFO_FULL_MSK (0x00000001 << PAT_STATUS_FIFO_FULL_OFST) -#define PAT_STATUS_DLY_AFTR_TRGGR_OFST (15) -#define PAT_STATUS_DLY_AFTR_TRGGR_MSK \ - (0x00000001 << PAT_STATUS_DLY_AFTR_TRGGR_OFST) -#define PAT_STATUS_CSM_BUSY_OFST (17) -#define PAT_STATUS_CSM_BUSY_MSK (0x00000001 << PAT_STATUS_CSM_BUSY_OFST) +#define PAT_STATUS_REG (0x00 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PAT_STATUS_RUN_BUSY_OFST (0) +#define PAT_STATUS_RUN_BUSY_MSK (0x00000001 << PAT_STATUS_RUN_BUSY_OFST) +#define PAT_STATUS_WAIT_FOR_TRGGR_OFST (3) +#define PAT_STATUS_WAIT_FOR_TRGGR_MSK (0x00000001 << PAT_STATUS_WAIT_FOR_TRGGR_OFST) +#define PAT_STATUS_DLY_BFRE_TRGGR_OFST (4) +#define PAT_STATUS_DLY_BFRE_TRGGR_MSK (0x00000001 << PAT_STATUS_DLY_BFRE_TRGGR_OFST) +#define PAT_STATUS_FIFO_FULL_OFST (5) +#define PAT_STATUS_FIFO_FULL_MSK (0x00000001 << PAT_STATUS_FIFO_FULL_OFST) +#define PAT_STATUS_DLY_AFTR_TRGGR_OFST (15) +#define PAT_STATUS_DLY_AFTR_TRGGR_MSK (0x00000001 << PAT_STATUS_DLY_AFTR_TRGGR_OFST) +#define PAT_STATUS_CSM_BUSY_OFST (17) +#define PAT_STATUS_CSM_BUSY_MSK (0x00000001 << PAT_STATUS_CSM_BUSY_OFST) /* Delay left 64bit Register */ -#define GET_DELAY_LSB_REG (0x02 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_DELAY_MSB_REG (0x03 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_DELAY_LSB_REG (0x02 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_DELAY_MSB_REG (0x03 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Triggers left 64bit Register */ -#define GET_CYCLES_LSB_REG (0x04 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_CYCLES_MSB_REG (0x05 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_CYCLES_LSB_REG (0x04 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_CYCLES_MSB_REG (0x05 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Frames left 64bit Register */ -#define GET_FRAMES_LSB_REG (0x06 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_FRAMES_MSB_REG (0x07 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_FRAMES_LSB_REG (0x06 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_FRAMES_MSB_REG (0x07 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Period left 64bit Register */ -#define GET_PERIOD_LSB_REG (0x08 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_PERIOD_MSB_REG (0x09 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_PERIOD_LSB_REG (0x08 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define GET_PERIOD_MSB_REG (0x09 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Time from Start 64 bit register */ -#define TIME_FROM_START_LSB_REG (0x0A * REG_OFFSET + BASE_PATTERN_CONTROL) -#define TIME_FROM_START_MSB_REG (0x0B * REG_OFFSET + BASE_PATTERN_CONTROL) +#define TIME_FROM_START_LSB_REG (0x0A * REG_OFFSET + BASE_PATTERN_CONTROL) +#define TIME_FROM_START_MSB_REG (0x0B * REG_OFFSET + BASE_PATTERN_CONTROL) /* Get Frames from Start 64 bit register (frames from last reset using * CONTROL_CRST) */ -#define FRAMES_FROM_START_LSB_REG (0x0C * REG_OFFSET + BASE_PATTERN_CONTROL) -#define FRAMES_FROM_START_MSB_REG (0x0D * REG_OFFSET + BASE_PATTERN_CONTROL) +#define FRAMES_FROM_START_LSB_REG (0x0C * REG_OFFSET + BASE_PATTERN_CONTROL) +#define FRAMES_FROM_START_MSB_REG (0x0D * REG_OFFSET + BASE_PATTERN_CONTROL) /* Measurement Time 64 bit register (timestamp at a frame start until reset)*/ -#define START_FRAME_TIME_LSB_REG (0x0E * REG_OFFSET + BASE_PATTERN_CONTROL) -#define START_FRAME_TIME_MSB_REG (0x0F * REG_OFFSET + BASE_PATTERN_CONTROL) +#define START_FRAME_TIME_LSB_REG (0x0E * REG_OFFSET + BASE_PATTERN_CONTROL) +#define START_FRAME_TIME_MSB_REG (0x0F * REG_OFFSET + BASE_PATTERN_CONTROL) /* Delay 64bit Write-register */ -#define SET_DELAY_LSB_REG (0x22 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_DELAY_MSB_REG (0x23 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_DELAY_LSB_REG (0x22 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_DELAY_MSB_REG (0x23 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Cylces 64bit Write-register */ -#define SET_CYCLES_LSB_REG (0x24 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_CYCLES_MSB_REG (0x25 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_CYCLES_LSB_REG (0x24 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_CYCLES_MSB_REG (0x25 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Frames 64bit Write-register */ -#define SET_FRAMES_LSB_REG (0x26 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_FRAMES_MSB_REG (0x27 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_FRAMES_LSB_REG (0x26 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_FRAMES_MSB_REG (0x27 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Period 64bit Write-register */ -#define SET_PERIOD_LSB_REG (0x28 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_PERIOD_MSB_REG (0x29 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_PERIOD_LSB_REG (0x28 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_PERIOD_MSB_REG (0x29 * REG_OFFSET + BASE_PATTERN_CONTROL) /* External Signal register */ -#define EXT_SIGNAL_REG (0x30 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define EXT_SIGNAL_REG (0x30 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define EXT_SIGNAL_OFST (0) -#define EXT_SIGNAL_MSK (0x00000001 << EXT_SIGNAL_OFST) +#define EXT_SIGNAL_OFST (0) +#define EXT_SIGNAL_MSK (0x00000001 << EXT_SIGNAL_OFST) /* Trigger Delay 64 bit register */ -#define SET_TRIGGER_DELAY_LSB_REG (0x32 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_TRIGGER_DELAY_MSB_REG (0x33 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_TRIGGER_DELAY_LSB_REG (0x32 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define SET_TRIGGER_DELAY_MSB_REG (0x33 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Limit RW Register */ -#define PATTERN_LIMIT_REG (0x40 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LIMIT_REG (0x40 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_LIMIT_STRT_OFST (0) -#define PATTERN_LIMIT_STRT_MSK (0x00001FFF << PATTERN_LIMIT_STRT_OFST) -#define PATTERN_LIMIT_STP_OFST (16) -#define PATTERN_LIMIT_STP_MSK (0x00001FFF << PATTERN_LIMIT_STP_OFST) +#define PATTERN_LIMIT_STRT_OFST (0) +#define PATTERN_LIMIT_STRT_MSK (0x00001FFF << PATTERN_LIMIT_STRT_OFST) +#define PATTERN_LIMIT_STP_OFST (16) +#define PATTERN_LIMIT_STP_MSK (0x00001FFF << PATTERN_LIMIT_STP_OFST) /** Pattern Mask 64 bit RW regiser */ -#define PATTERN_MASK_LSB_REG (0x42 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_MASK_MSB_REG (0x43 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_MASK_LSB_REG (0x42 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_MASK_MSB_REG (0x43 * REG_OFFSET + BASE_PATTERN_CONTROL) /** Pattern Set 64 bit RW regiser */ -#define PATTERN_SET_LSB_REG (0x44 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_SET_MSB_REG (0x45 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_SET_LSB_REG (0x44 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_SET_MSB_REG (0x45 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Wait Timer 0 64bit RW Register */ -#define PATTERN_WAIT_TIMER_0_LSB_REG (0x60 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_0_MSB_REG (0x61 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_0_LSB_REG (0x60 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_0_MSB_REG (0x61 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Wait 0 RW Register*/ -#define PATTERN_WAIT_0_ADDR_REG (0x62 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_0_ADDR_REG (0x62 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_0_ADDR_OFST (0) -#define PATTERN_WAIT_0_ADDR_MSK (0x00001FFF << PATTERN_WAIT_0_ADDR_OFST) +#define PATTERN_WAIT_0_ADDR_OFST (0) +#define PATTERN_WAIT_0_ADDR_MSK (0x00001FFF << PATTERN_WAIT_0_ADDR_OFST) /* Pattern Loop 0 Iteration RW Register */ -#define PATTERN_LOOP_0_ITERATION_REG (0x63 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_0_ITERATION_REG (0x63 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Loop 0 Address RW Register */ -#define PATTERN_LOOP_0_ADDR_REG (0x64 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_0_ADDR_REG (0x64 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_LOOP_0_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_0_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_0_ADDR_STRT_OFST) -#define PATTERN_LOOP_0_ADDR_STP_OFST (16) -#define PATTERN_LOOP_0_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STP_OFST) +#define PATTERN_LOOP_0_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_0_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STRT_OFST) +#define PATTERN_LOOP_0_ADDR_STP_OFST (16) +#define PATTERN_LOOP_0_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STP_OFST) /* Pattern Wait Timer 1 64bit RW Register */ -#define PATTERN_WAIT_TIMER_1_LSB_REG (0x65 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_1_MSB_REG (0x66 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_1_LSB_REG (0x65 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_1_MSB_REG (0x66 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Wait 1 RW Register*/ -#define PATTERN_WAIT_1_ADDR_REG (0x67 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_1_ADDR_REG (0x67 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_1_ADDR_OFST (0) -#define PATTERN_WAIT_1_ADDR_MSK (0x00001FFF << PATTERN_WAIT_1_ADDR_OFST) +#define PATTERN_WAIT_1_ADDR_OFST (0) +#define PATTERN_WAIT_1_ADDR_MSK (0x00001FFF << PATTERN_WAIT_1_ADDR_OFST) /* Pattern Loop 1 Iteration RW Register */ -#define PATTERN_LOOP_1_ITERATION_REG (0x68 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_1_ITERATION_REG (0x68 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Loop 1 Address RW Register */ -#define PATTERN_LOOP_1_ADDR_REG (0x69 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_1_ADDR_REG (0x69 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_LOOP_1_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_1_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_1_ADDR_STRT_OFST) -#define PATTERN_LOOP_1_ADDR_STP_OFST (16) -#define PATTERN_LOOP_1_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STP_OFST) +#define PATTERN_LOOP_1_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_1_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STRT_OFST) +#define PATTERN_LOOP_1_ADDR_STP_OFST (16) +#define PATTERN_LOOP_1_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STP_OFST) /* Pattern Wait Timer 2 64bit RW Register */ -#define PATTERN_WAIT_TIMER_2_LSB_REG (0x6A * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_2_MSB_REG (0x6B * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_2_LSB_REG (0x6A * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_TIMER_2_MSB_REG (0x6B * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Wait 2 RW Register*/ -#define PATTERN_WAIT_2_ADDR_REG (0x6C * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_WAIT_2_ADDR_REG (0x6C * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_2_ADDR_OFST (0) -#define PATTERN_WAIT_2_ADDR_MSK (0x00001FFF << PATTERN_WAIT_2_ADDR_OFST) +#define PATTERN_WAIT_2_ADDR_OFST (0) +#define PATTERN_WAIT_2_ADDR_MSK (0x00001FFF << PATTERN_WAIT_2_ADDR_OFST) /* Pattern Loop 2 Iteration RW Register */ -#define PATTERN_LOOP_2_ITERATION_REG (0x6D * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_2_ITERATION_REG (0x6D * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Loop 0 Address RW Register */ -#define PATTERN_LOOP_2_ADDR_REG (0x6E * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOP_2_ADDR_REG (0x6E * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_LOOP_2_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_2_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_2_ADDR_STRT_OFST) -#define PATTERN_LOOP_2_ADDR_STP_OFST (16) -#define PATTERN_LOOP_2_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STP_OFST) +#define PATTERN_LOOP_2_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_2_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STRT_OFST) +#define PATTERN_LOOP_2_ADDR_STP_OFST (16) +#define PATTERN_LOOP_2_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STP_OFST) /* Pattern RAM registers --------------------------------------------------*/ /* Register of first word */ -#define PATTERN_STEP0_LSB_REG (0x0 * REG_OFFSET + BASE_PATTERN_RAM) -#define PATTERN_STEP0_MSB_REG (0x1 * REG_OFFSET + BASE_PATTERN_RAM) +#define PATTERN_STEP0_LSB_REG (0x0 * REG_OFFSET + BASE_PATTERN_RAM) +#define PATTERN_STEP0_MSB_REG (0x1 * REG_OFFSET + BASE_PATTERN_RAM) + +// clang-format on \ No newline at end of file From ecc692ad9a18738c3ae1a94e15a94ad34e4d8432 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 15 May 2020 17:06:08 +0200 Subject: [PATCH 02/30] start pattern without binaries --- .../mythen3DetectorServer/RegisterDefs.h | 3 ++ .../slsDetectorFunctionList.c | 11 ++++--- .../include/slsDetectorFunctionList.h | 1 + .../include/slsDetectorServer_funcs.h | 1 + .../src/slsDetectorServer_funcs.c | 17 ++++++++++ slsDetectorSoftware/include/Detector.h | 3 ++ slsDetectorSoftware/src/CmdProxy.h | 4 +++ slsDetectorSoftware/src/Detector.cpp | 4 +++ slsDetectorSoftware/src/Module.cpp | 31 +++++++------------ slsDetectorSoftware/src/Module.h | 3 ++ slsSupportLib/include/sls_detector_funcs.h | 3 +- 11 files changed, 57 insertions(+), 24 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index 101c91cd9..a84ae993d 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -90,6 +90,7 @@ /* Config RW regiseter */ #define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL) + #define CONFIG_COUNTER_ENA_OFST (0) #define CONFIG_COUNTER_ENA_MSK (0x00000003 << CONFIG_COUNTER_ENA_OFST) #define CONFIG_COUNTER_ENA_DEFAULT_VAL ((0x0 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) @@ -110,6 +111,8 @@ #define CONTROL_STRT_ACQSTN_MSK (0x00000001 << CONTROL_STRT_ACQSTN_OFST) #define CONTROL_STP_ACQSTN_OFST (1) #define CONTROL_STP_ACQSTN_MSK (0x00000001 << CONTROL_STP_ACQSTN_OFST) +#define CONTROL_STRT_PATTERN_OFST (2) +#define CONTROL_STRT_PATTERN_MSK (0x00000001 << CONTROL_STRT_PATTERN_OFST) #define CONTROL_CRE_RST_OFST (10) #define CONTROL_CRE_RST_MSK (0x00000001 << CONTROL_CRE_RST_OFST) #define CONTROL_PRPHRL_RST_OFST (11) // Only GBE10? diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 7c86e19f8..4152325b3 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -716,10 +716,8 @@ int setTrimbits(int *trimbits) { int start = 0, nloop = 0; setPatternLoop(-1, &start, &iaddr, &nloop); } - // load the trimbits -#ifndef VIRTUAL - startStateMachine(); -#endif + // send pattern to the chips + startPattern(); } // copy trimbits locally @@ -1186,6 +1184,11 @@ int *getDetectorPosition() { return detPos; } /* pattern */ +void startPattern() { + LOG(logINFOBLUE, ("Starting Pattern\n")); + bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_STRT_PATTERN_MSK); +} + uint64_t readPatternWord(int addr) { // error (handled in tcp) if (addr < 0 || addr >= MAX_PATTERN_LENGTH) { diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index 7fe2f46de..25cfed686 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -449,6 +449,7 @@ int getActivate(int *retval); int setPhase(enum CLKINDEX ind, int val, int degrees); #elif MYTHEN3D +void startPattern(); uint64_t readPatternWord(int addr); uint64_t writePatternWord(int addr, uint64_t word); int setPatternWaitAddress(int level, int addr); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index b53b08bfd..dd5cd16d7 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -217,3 +217,4 @@ int set_timing_source(int); int get_num_channels(int); int update_rate_correction(int); int get_receiver_parameters(int); +int start_pattern(int); diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 04d646c13..8f0596109 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -329,6 +329,7 @@ void function_table() { flist[F_GET_NUM_CHANNELS] = &get_num_channels; flist[F_UPDATE_RATE_CORRECTION] = &update_rate_correction; flist[F_GET_RECEIVER_PARAMETERS] = &get_receiver_parameters; + flist[F_START_PATTERN] = &start_pattern; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { @@ -7009,4 +7010,20 @@ int get_receiver_parameters(int file_des) { LOG(logINFO, ("Sent %d bytes for receiver parameters\n", n)); return OK; +} + +int start_pattern(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + + LOG(logDEBUG1, ("Starting Pattern\n")); +#ifndef MYTHEN3D + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + startPattern(); + } +#endif + return Server_SendResult(file_des, INT32, NULL, 0); } \ No newline at end of file diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index 47e4c8a7e..0f8b1fb3e 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -1210,6 +1210,9 @@ class Detector { */ void setPatternBitMask(uint64_t mask, Positions pos = {}); + /** [Mythen3] */ + void startPattern(Positions pos = {}); + /************************************************** * * * Moench * diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index cd4b4db3f..cb71f1360 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -860,6 +860,7 @@ class CmdProxy { {"patwaittime2", &CmdProxy::PatternWaitTime}, {"patmask", &CmdProxy::patmask}, {"patsetbit", &CmdProxy::patsetbit}, + {"patternstart", &CmdProxy::patternstart}, /* Moench */ {"rx_jsonaddheader", &CmdProxy::AdditionalJsonHeader}, @@ -2031,6 +2032,9 @@ class CmdProxy { "[64 bit mask]\n\t[Ctb][Moench][Mythen3] 64 bit values " "applied to the selected patmask for every pattern."); + EXECUTE_SET_COMMAND(patternstart, startPattern, + "\n\t[Mythen3] Starts Pattern"); + /* Moench */ INTEGER_COMMAND(framemode, getFrameMode, setFrameMode, diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 3422cde97..d3648b0d2 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1574,6 +1574,10 @@ void Detector::setPatternBitMask(uint64_t mask, Positions pos) { pimpl->Parallel(&Module::setPatternBitMask, pos, mask); } +void Detector::startPattern(Positions pos) { + pimpl->Parallel(&Module::startPattern, pos); +} + // Moench Result> diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 780e9c8b4..43f74bd50 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -4,8 +4,8 @@ #include "ToString.h" #include "file_utils.h" #include "network_utils.h" -#include "sls_detector_funcs.h" #include "sls_detector_exceptions.h" +#include "sls_detector_funcs.h" #include "string_utils.h" #include "versionAPI.h" @@ -139,16 +139,14 @@ void Module::sendToDetector(int fnum, std::nullptr_t, Ret &retval) { void Module::sendToDetector(int fnum) { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << "]"; sendToDetector(fnum, nullptr, 0, nullptr, 0); } template Ret Module::sendToDetector(int fnum) { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", nullptr, 0, " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -160,8 +158,7 @@ template Ret Module::sendToDetector(int fnum) { template Ret Module::sendToDetector(int fnum, const Arg &args) { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -216,8 +213,7 @@ void Module::sendToDetectorStop(int fnum, std::nullptr_t, Ret &retval) const { void Module::sendToDetectorStop(int fnum) { LOG(logDEBUG1) << "Sending to detector stop: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << "]"; sendToDetectorStop(fnum, nullptr, 0, nullptr, 0); } @@ -237,8 +233,7 @@ void Module::sendToReceiver(int fnum, const void *args, size_t args_size, if (!shm()->useReceiverFlag) { std::ostringstream oss; oss << "Set rx_hostname first to use receiver parameters, "; - oss << getFunctionNameFromEnum( - static_cast(fnum)); + oss << getFunctionNameFromEnum(static_cast(fnum)); throw RuntimeError(oss.str()); } auto receiver = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); @@ -278,8 +273,7 @@ void Module::sendToReceiver(int fnum, std::nullptr_t, Ret &retval) const { template Ret Module::sendToReceiver(int fnum) { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", nullptr, 0, " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -290,8 +284,7 @@ template Ret Module::sendToReceiver(int fnum) { template Ret Module::sendToReceiver(int fnum) const { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", nullptr, 0, " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -303,8 +296,7 @@ template Ret Module::sendToReceiver(int fnum) const { template Ret Module::sendToReceiver(int fnum, const Arg &args) { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -316,8 +308,7 @@ Ret Module::sendToReceiver(int fnum, const Arg &args) { template Ret Module::sendToReceiver(int fnum, const Arg &args) const { LOG(logDEBUG1) << "Sending: [" - << getFunctionNameFromEnum( - static_cast(fnum)) + << getFunctionNameFromEnum(static_cast(fnum)) << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; @@ -2877,6 +2868,8 @@ uint64_t Module::getPatternBitMask() { return sendToDetector(F_GET_PATTERN_BIT_MASK); } +void Module::startPattern() { sendToDetector(F_START_PATTERN); } + int Module::setLEDEnable(int enable) { return sendToDetector(F_LED, enable); } diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index b8cccfd93..bdd81d651 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -1500,6 +1500,9 @@ class Module : public virtual slsDetectorDefs { */ uint64_t getPatternBitMask(); + /** [Mythen3] */ + void startPattern(); + /** * Set LED Enable (Moench, CTB only) * @param enable 1 to switch on, 0 to switch off, -1 gets diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index c8b2dede7..4df1aab5c 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -197,6 +197,7 @@ enum detFuncs { F_GET_NUM_CHANNELS, F_UPDATE_RATE_CORRECTION, F_GET_RECEIVER_PARAMETERS, + F_START_PATTERN, NUM_DET_FUNCTIONS, RECEIVER_ENUM_START = 256, /**< detector function should not exceed this @@ -490,6 +491,7 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { case F_GET_NUM_CHANNELS: return "F_GET_NUM_CHANNELS"; case F_UPDATE_RATE_CORRECTION: return "F_UPDATE_RATE_CORRECTION"; case F_GET_RECEIVER_PARAMETERS: return "F_GET_RECEIVER_PARAMETERS"; + case F_START_PATTERN: return "F_START_PATTERN"; case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS"; case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START"; @@ -590,4 +592,3 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { // clang-format on } - From c8eda1a4588740a73be0fadb64eeb2039191dd4a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 15 May 2020 17:07:27 +0200 Subject: [PATCH 03/30] mythen binary up --- .../bin/mythen3DetectorServer_developer | Bin 159872 -> 159932 bytes slsSupportLib/include/versionAPI.h | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 6cfa6a2ab0f35261320bbcd540d738968648af8e..ff78cd86a77760ab37aaf857e55b9a525dadd7eb 100755 GIT binary patch delta 42767 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 delta 42691 zcmdVD30zdw`#*lqbwEIbK^bNMWfuXF%^ej`amf{z+)^?%rCduhD|IGAGea|vdCknI z%&d&e4O4?jt*o@DtklfV%+%D#OwC+=?{nvwnLAfR>-+tF{+~au*TcM@_j&F)=brPN z^={jb_}Y&6E{bA4&qj~(-uEYy_Wk+n{0O%8-8b%*Qq~{&DfAqx3;%6I3?QdT}$$AB}wM%)*~Awi5bF(%g}Jq#5L7$@x&!)xF*EK zYPdAwA~akJ2Y0u3sD{iW!(a`UO1cVS`Ka|sAx;~?lKE)%k(^_)WFHbL4VG-i2#aLgDA}dL zqP>=ll1(y9F5%g~hx4H!b>x{TyiZ01|J~G+S$S4SV>WZcn2=hGE#mi^o5{yh_)F&Q z^6w@5SMyT&`b7SOWj1TXy+b>(T;4r&jBIPf*M~M{J@~=U{%iQ)&WNv zMC3fJW1P1rLIjsJ9OYXyDN&7c0Z)oZWzX}W5smSGHvTW?Z$>=f3SYrnMy9g2`IyKi ztb{L)j0N5t**0+9BvBzo=~r1YmzP(H=y_aJgIc!pVLUZBj1P|ruji_QI-&~TmG5qt zA7y27c`DCtgmQ>E)KXdyCW%~0tHPvQn26tvQVuhGGAXgJ5HhYUcF^Ok2ilL}x>y4DF<5=M0{RUnTe@6CB?|#_<~kOwuG;26(ifu@mZ~V@_^PuL+o{ttLMBV6WXWg z^7Ts5v#7xrWP4pctqmEs=3li@*b97CRx|brUzs^yREy= zuylBOL!Q^g5Gz{H0QB8z%YnISS4T4{)J|93WJ#AaQGOqFDMxFW+chIIXRk#n{1wIY zb@>tVzUxN{{d1V;rd0kH@LyPusQM9$WI!Kku5jx7T-Ro-9*^%9FXznP(7W49GTPYL z?(;?bkM;<2)X!gP;jiow%bN48y(4&KkKkmH*FD$Ejb?aC<`Qp9=DJ;KzRfUJD^)!R zJ;FYNkr(%fmfNSR1H$N@(X1;{h~%&JY|XvyGxEN@;^f{agoJ3mtXD(%o^&4BFNPoJ z)k@Srz24Jg`(8f3cPhIdY4?$5I)a<_>FOu7z+eK$K=`aaceAJX;XW_0mHg4XuJVR- zKK9NS{&QZW;|wmUXAsbL1G6JMh9B$OM*dpF)FDKT8}Z9duj1MkG9~-%Ik3 z>1ZttH#G0xg2@-s`M3f1Ganw&FP8r`AkY!-IW^vTclKxX`ItM$1gJF@j2inx4LEqG zIyA}y$2b~q6W^WiwjHXst#p$gg4{)9EB?TsU>3{g4vI~54pvDS(e|^lWRj3eNJL%X ziZ~|eLC0X0%D);k$=9i6@$Q5BuwH!m;2vx!KR$SzT#$ibxgnoC#1JW}t-0q2A$iv$ zSDcW6(KI3v1BbIOhpDs+we0H89fOJ_1{Zk9!6ALvgFI6(Llz?KfY$e#CsW9PU~N^A@y^h5X>q7&+$~ zer;%Dwv5N$HHf{;XWf-A+fMMqceRq=&fwRZG~~^P705a7@Rh^H%9}F8u*4IGHxq~D z4@dWVg0CFjNiNUerA-#)yCUVa6{M@L!SOo7qdK^pQTSvz?_UNRX?qG1bOdZFJC#{(})!A}yC~tpn zu(4$`$D9@YsQH@ph=JcTq`n%_5@&CB%ZQTeiG)o!FY^VO{H5^=_qJv2c*dBvtOK7o zrkQ+4Gqo?ZkMUxCk=Y1-Y)nHokjrD+Vw}wy+lr0k)5fOCW168YH{`p<=E}CY+^=91 zo5&{?G-i+Rr3KwZ&v&%oF*cj$-S|}UB+x9PP>e;6Q^Cqd`O&j8S^P|?qy5?Gkig$b{VseIMIbUGkAbF?K0*taoT0f zPsC}LF(;adWsL8cDUM~#E?zS6i8fbN&1jcuNunz={gPE_{-q41fi6v&>gdu8&7*BU z_(-M`WtHX=vyS94jE1}T{gWO}^q;EEz@0~{Wf(}-f5Q4tm$l#IwuvTpxu9-%f7J5_r7_VogaDeh%U1W{F`|LQcCskj*mq z{0CZ@no;=g2>;y`{_O*iruGz4g^(&&%zh6}Ld=goSjsx`j47>5-N@<`tWM2xtoL^D zSyRH(dsE0sgq(DS_(EH~Kxmc=9QZOZNAqpjUu^Js;6&q>l~$aF{%q!_XhvKw*;QUx(Al_U!! z8RGK&G0ksmoa2epHqI%;QRB3#B{iK$ZR?y#oVIn&CeGbDnc+#|w2iZfxL{2NpCwM) zIF~kW?8vpYb-qA`+SXajmrr}i?={uwC8@Wsy2mj5VT<)mgHen)TNim7r;4$8k7seN zSRqMkAR8fe$R5ak$T3J2u|bL;%OI;D>x!+Cv>jkKWFMpwavE|8Vt5%P0BHb8fHa5X zKzc$3Lq{19837p&+5X0VLPY)lM-sY8I@a4vd^$>`5V8oe z0evK_J; zvJX-TISsi4F}x0cfHZ(4K$=5xAUz?2A)_IaAu}NJAWI;{khPF4kX?`p$RWrH$obb% z|I!*b1jGV~gQP*)LApT(Kt@2uL#9ItA&Vd@AZs8SA$G_f$bQH%NEPG?#0MoC42gmy zLs~;}A$gEtkOIimH;}#!pa`-IvI?>eqAo!;Z8Um!t>wV)0b?sz<;#FO5dIK2i}0tw zZ3$NZwUJK#SEcL1)Et&W4cLpehM{ee#r9t!*m;d_9w>#kNo0q_yRlYkEso&x+m;fI0u z6MhW%8^TuLuL#c-$`_<80Nz7*G4LmZ72uBuuK?aj_+?-_;WfbT6MhGHE8&g6rG(!D z-blC%_+4PDWRna#p_EX-XTVtcsAu^l@EXGVfnOth82A;!KLNi)_$2TO!e@b>C;U6` zQo`qfIpIs2j8^YOq+CJ30>biUqc=7i)l7H+KS|gRxR7ul@Z*F-fM*eI2>ck~7~tuI zlYk#0oDTe;imj5N6_iO7&>na^;f}!f5$+0%jU6>Zy?{p%?hibI@F3vfgognSB|HLn z5aBVv0|?&_+}BFVBq+TJPX+El_%Yyagl7YHCOjXwBjLrs*@Tw^wt-lvq-+IlO1KO-iSP%&jR}7Y97lK$a5Uix;0VI|fWrwN0JaeR5!gidC*XRr zgy}OJ@B|d>>#Fz^us`A7fPD#{2gVMPYV#LxEyCA0v{#Z9{5MX9f1!K?h1T>a1Y>b3HJs5 zT3{>Aeh`!j3K$N&m+&ayPYD+Qe@u7+@GinrfIlGo2yhwUS-{%}KLNaj@I2s6gckr? z*ORgs$~%M=;I)KT0KY-_W#H9>R|CIF_$}aK!tVmVNVpVuIpOz#6~a4#mpHK1up7#= z6tEX~A>prppC(`jOHOxDVkD zz�f0ltH9Pv97tu5&P>yxq$0Y<``fa?<82JA<; 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 VX_E3dpyj*!WGRgyoAl>|{|{K@Zb1M5 diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index c156d693f..53bd24a09 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -9,5 +9,5 @@ #define APIGOTTHARD 0x200515 #define APIGOTTHARD2 0x200515 #define APIJUNGFRAU 0x200515 -#define APIMYTHEN3 0x200515 #define APIMOENCH 0x200515 +#define APIMYTHEN3 0x200515 From a7ce30391c014320a548f5a26ac21e1d39880f80 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 18 May 2020 14:35:59 +0200 Subject: [PATCH 04/30] register defs from pattern control to flow control --- .../mythen3DetectorServer/RegisterDefs.h | 147 ++++++++++-------- .../slsDetectorFunctionList.c | 21 ++- 2 files changed, 94 insertions(+), 74 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index a84ae993d..c47dfc2c9 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -30,19 +30,24 @@ #define BASE_FMT (0x0120) // 0x1806_0120 - 0x1806_012F /* Packetizer */ -#define BASE_PKT (0x0140) // 0x1806_0140 - 0x1806_014F +#define BASE_PKT (0x0130) // 0x1806_0130 - 0x1806_013F // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/pkt/pkt_ctrl.vhd /* Pattern control and status registers */ #define BASE_PATTERN_CONTROL (0x00200) // 0x1806_0200 - 0x1806_02FF // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/pattern_flow/pattern_flow_ctrl.vhd +/* Flow control and status registers */ +#define BASE_FLOW_CONTROL (0x00400) // 0x1806_0400 - 0x1806_04FF +// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/qsys/flow/flow_ctrl.vhd + /* UDP datagram generator */ #define BASE_UDP_RAM (0x01000) // 0x1806_1000 - 0x1806_1FFF /* Pattern RAM. Pattern table */ #define BASE_PATTERN_RAM (0x10000) // 0x1807_0000 - 0x1807_FFFF + /* Clock Generation registers * ------------------------------------------------------*/ #define PLL_RESET_REG (0x00 * REG_OFFSET + BASE_CLK_GENERATION) @@ -159,71 +164,6 @@ #define PAT_STATUS_REG (0x00 * REG_OFFSET + BASE_PATTERN_CONTROL) #define PAT_STATUS_RUN_BUSY_OFST (0) #define PAT_STATUS_RUN_BUSY_MSK (0x00000001 << PAT_STATUS_RUN_BUSY_OFST) -#define PAT_STATUS_WAIT_FOR_TRGGR_OFST (3) -#define PAT_STATUS_WAIT_FOR_TRGGR_MSK (0x00000001 << PAT_STATUS_WAIT_FOR_TRGGR_OFST) -#define PAT_STATUS_DLY_BFRE_TRGGR_OFST (4) -#define PAT_STATUS_DLY_BFRE_TRGGR_MSK (0x00000001 << PAT_STATUS_DLY_BFRE_TRGGR_OFST) -#define PAT_STATUS_FIFO_FULL_OFST (5) -#define PAT_STATUS_FIFO_FULL_MSK (0x00000001 << PAT_STATUS_FIFO_FULL_OFST) -#define PAT_STATUS_DLY_AFTR_TRGGR_OFST (15) -#define PAT_STATUS_DLY_AFTR_TRGGR_MSK (0x00000001 << PAT_STATUS_DLY_AFTR_TRGGR_OFST) -#define PAT_STATUS_CSM_BUSY_OFST (17) -#define PAT_STATUS_CSM_BUSY_MSK (0x00000001 << PAT_STATUS_CSM_BUSY_OFST) - -/* Delay left 64bit Register */ -#define GET_DELAY_LSB_REG (0x02 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_DELAY_MSB_REG (0x03 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Triggers left 64bit Register */ -#define GET_CYCLES_LSB_REG (0x04 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_CYCLES_MSB_REG (0x05 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Frames left 64bit Register */ -#define GET_FRAMES_LSB_REG (0x06 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_FRAMES_MSB_REG (0x07 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Period left 64bit Register */ -#define GET_PERIOD_LSB_REG (0x08 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define GET_PERIOD_MSB_REG (0x09 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Time from Start 64 bit register */ -#define TIME_FROM_START_LSB_REG (0x0A * REG_OFFSET + BASE_PATTERN_CONTROL) -#define TIME_FROM_START_MSB_REG (0x0B * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Get Frames from Start 64 bit register (frames from last reset using - * CONTROL_CRST) */ -#define FRAMES_FROM_START_LSB_REG (0x0C * REG_OFFSET + BASE_PATTERN_CONTROL) -#define FRAMES_FROM_START_MSB_REG (0x0D * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Measurement Time 64 bit register (timestamp at a frame start until reset)*/ -#define START_FRAME_TIME_LSB_REG (0x0E * REG_OFFSET + BASE_PATTERN_CONTROL) -#define START_FRAME_TIME_MSB_REG (0x0F * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Delay 64bit Write-register */ -#define SET_DELAY_LSB_REG (0x22 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_DELAY_MSB_REG (0x23 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Cylces 64bit Write-register */ -#define SET_CYCLES_LSB_REG (0x24 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_CYCLES_MSB_REG (0x25 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Frames 64bit Write-register */ -#define SET_FRAMES_LSB_REG (0x26 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_FRAMES_MSB_REG (0x27 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Period 64bit Write-register */ -#define SET_PERIOD_LSB_REG (0x28 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_PERIOD_MSB_REG (0x29 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* External Signal register */ -#define EXT_SIGNAL_REG (0x30 * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define EXT_SIGNAL_OFST (0) -#define EXT_SIGNAL_MSK (0x00000001 << EXT_SIGNAL_OFST) - -/* Trigger Delay 64 bit register */ -#define SET_TRIGGER_DELAY_LSB_REG (0x32 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define SET_TRIGGER_DELAY_MSB_REG (0x33 * REG_OFFSET + BASE_PATTERN_CONTROL) /* Pattern Limit RW Register */ #define PATTERN_LIMIT_REG (0x40 * REG_OFFSET + BASE_PATTERN_CONTROL) @@ -310,4 +250,79 @@ #define PATTERN_STEP0_LSB_REG (0x0 * REG_OFFSET + BASE_PATTERN_RAM) #define PATTERN_STEP0_MSB_REG (0x1 * REG_OFFSET + BASE_PATTERN_RAM) + +/* Flow Control registers + * --------------------------------------------------*/ + +/* Flow status Register*/ +#define FLOW_STATUS_REG (0x00 * REG_OFFSET + BASE_FLOW_CONTROL) + +#define FLOW_STATUS_RUN_BUSY_OFST (0) +#define FLOW_STATUS_RUN_BUSY_MSK (0x00000001 << FLOW_STATUS_RUN_BUSY_OFST) +#define FLOW_STATUS_WAIT_FOR_TRGGR_OFST (3) +#define FLOW_STATUS_WAIT_FOR_TRGGR_MSK (0x00000001 << FLOW_STATUS_WAIT_FOR_TRGGR_OFST) +#define FLOW_STATUS_DLY_BFRE_TRGGR_OFST (4) +#define FLOW_STATUS_DLY_BFRE_TRGGR_MSK (0x00000001 << FLOW_STATUS_DLY_BFRE_TRGGR_OFST) +#define FLOW_STATUS_FIFO_FULL_OFST (5) +#define FLOW_STATUS_FIFO_FULL_MSK (0x00000001 << FLOW_STATUS_FIFO_FULL_OFST) +#define FLOW_STATUS_DLY_AFTR_TRGGR_OFST (15) +#define FLOW_STATUS_DLY_AFTR_TRGGR_MSK (0x00000001 << FLOW_STATUS_DLY_AFTR_TRGGR_OFST) +#define FLOW_STATUS_CSM_BUSY_OFST (17) +#define FLOW_STATUS_CSM_BUSY_MSK (0x00000001 << FLOW_STATUS_CSM_BUSY_OFST) + +/* Delay left 64bit Register */ +#define GET_DELAY_LSB_REG (0x02 * REG_OFFSET + BASE_FLOW_CONTROL) +#define GET_DELAY_MSB_REG (0x03 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Triggers left 64bit Register */ +#define GET_CYCLES_LSB_REG (0x04 * REG_OFFSET + BASE_FLOW_CONTROL) +#define GET_CYCLES_MSB_REG (0x05 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Frames left 64bit Register */ +#define GET_FRAMES_LSB_REG (0x06 * REG_OFFSET + BASE_FLOW_CONTROL) +#define GET_FRAMES_MSB_REG (0x07 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Period left 64bit Register */ +#define GET_PERIOD_LSB_REG (0x08 * REG_OFFSET + BASE_FLOW_CONTROL) +#define GET_PERIOD_MSB_REG (0x09 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Time from Start 64 bit register */ +#define TIME_FROM_START_LSB_REG (0x0A * REG_OFFSET + BASE_FLOW_CONTROL) +#define TIME_FROM_START_MSB_REG (0x0B * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Get Frames from Start 64 bit register (frames from last reset using + * CONTROL_CRST) */ +#define FRAMES_FROM_START_LSB_REG (0x0C * REG_OFFSET + BASE_FLOW_CONTROL) +#define FRAMES_FROM_START_MSB_REG (0x0D * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Measurement Time 64 bit register (timestamp at a frame start until reset)*/ +#define START_FRAME_TIME_LSB_REG (0x0E * REG_OFFSET + BASE_FLOW_CONTROL) +#define START_FRAME_TIME_MSB_REG (0x0F * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Delay 64bit Write-register */ +#define SET_DELAY_LSB_REG (0x22 * REG_OFFSET + BASE_FLOW_CONTROL) +#define SET_DELAY_MSB_REG (0x23 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Cylces 64bit Write-register */ +#define SET_CYCLES_LSB_REG (0x24 * REG_OFFSET + BASE_FLOW_CONTROL) +#define SET_CYCLES_MSB_REG (0x25 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Frames 64bit Write-register */ +#define SET_FRAMES_LSB_REG (0x26 * REG_OFFSET + BASE_FLOW_CONTROL) +#define SET_FRAMES_MSB_REG (0x27 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* Period 64bit Write-register */ +#define SET_PERIOD_LSB_REG (0x28 * REG_OFFSET + BASE_FLOW_CONTROL) +#define SET_PERIOD_MSB_REG (0x29 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* External Signal register */ +#define EXT_SIGNAL_REG (0x30 * REG_OFFSET + BASE_FLOW_CONTROL) + +#define EXT_SIGNAL_OFST (0) +#define EXT_SIGNAL_MSK (0x00000001 << EXT_SIGNAL_OFST) + +/* Trigger Delay 64 bit register */ +#define SET_TRIGGER_DELAY_LSB_REG (0x32 * REG_OFFSET + BASE_FLOW_CONTROL) +#define SET_TRIGGER_DELAY_MSB_REG (0x33 * REG_OFFSET + BASE_FLOW_CONTROL) + // clang-format on \ No newline at end of file diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 4152325b3..12302130c 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1187,6 +1187,11 @@ int *getDetectorPosition() { return detPos; } void startPattern() { LOG(logINFOBLUE, ("Starting Pattern\n")); bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_STRT_PATTERN_MSK); + usleep(1); + while (bus_r(PAT_STATUS_REG) & PAT_STATUS_RUN_BUSY_MSK) { + usleep(1); + } + LOG(logINFOBLUE, ("Pattern done\n")); } uint64_t readPatternWord(int addr) { @@ -1843,20 +1848,20 @@ enum runStatus getRunStatus() { } #endif LOG(logDEBUG1, ("Getting status\n")); - uint32_t retval = bus_r(PAT_STATUS_REG); + uint32_t retval = bus_r(FLOW_STATUS_REG); LOG(logINFO, ("Status Register: %08x\n", retval)); enum runStatus s; // running - if (retval & PAT_STATUS_RUN_BUSY_MSK) { - if (retval & PAT_STATUS_WAIT_FOR_TRGGR_MSK) { + if (retval & FLOW_STATUS_RUN_BUSY_MSK) { + if (retval & FLOW_STATUS_WAIT_FOR_TRGGR_MSK) { LOG(logINFOBLUE, ("Status: WAITING\n")); s = WAITING; } else { - if (retval & PAT_STATUS_DLY_BFRE_TRGGR_MSK) { + if (retval & FLOW_STATUS_DLY_BFRE_TRGGR_MSK) { LOG(logINFO, ("Status: Delay before Trigger\n")); - } else if (retval & PAT_STATUS_DLY_AFTR_TRGGR_MSK) { + } else if (retval & FLOW_STATUS_DLY_AFTR_TRGGR_MSK) { LOG(logINFO, ("Status: Delay after Trigger\n")); } LOG(logINFOBLUE, ("Status: RUNNING\n")); @@ -1867,10 +1872,10 @@ enum runStatus getRunStatus() { // not running else { // stopped or error - if (retval & PAT_STATUS_FIFO_FULL_MSK) { + if (retval & FLOW_STATUS_FIFO_FULL_MSK) { LOG(logINFOBLUE, ("Status: STOPPED\n")); // FIFO FULL?? s = STOPPED; - } else if (retval & PAT_STATUS_CSM_BUSY_MSK) { + } else if (retval & FLOW_STATUS_CSM_BUSY_MSK) { LOG(logINFOBLUE, ("Status: READ MACHINE BUSY\n")); s = TRANSMITTING; } else if (!retval) { @@ -1915,7 +1920,7 @@ u_int32_t runBusy() { } return virtual_status; #endif - u_int32_t s = (bus_r(PAT_STATUS_REG) & PAT_STATUS_RUN_BUSY_MSK); + u_int32_t s = (bus_r(FLOW_STATUS_REG) & FLOW_STATUS_RUN_BUSY_MSK); // LOG(logDEBUG1, ("Status Register: %08x\n", s)); return s; } From cd90f09a30caaf43a211ee78200be2cbac37e513 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 19 May 2020 18:24:32 +0200 Subject: [PATCH 05/30] WIP --- .../mythen3DetectorServer/RegisterDefs.h | 70 ++++- .../slsDetectorFunctionList.c | 280 +++++++++++++++--- .../slsDetectorServer_defs.h | 30 +- .../include/slsDetectorFunctionList.h | 14 + .../include/slsDetectorServer_funcs.h | 6 + .../src/slsDetectorServer_funcs.c | 279 ++++++++++++++++- slsDetectorSoftware/include/Detector.h | 34 ++- slsDetectorSoftware/src/CmdProxy.cpp | 188 ++++++++++++ slsDetectorSoftware/src/CmdProxy.h | 34 ++- slsDetectorSoftware/src/Detector.cpp | 37 ++- slsDetectorSoftware/src/Module.cpp | 38 ++- slsDetectorSoftware/src/Module.h | 24 +- slsSupportLib/include/sls_detector_defs.h | 7 +- slsSupportLib/include/sls_detector_funcs.h | 13 + slsSupportLib/src/ToString.cpp | 4 + 15 files changed, 966 insertions(+), 92 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index c47dfc2c9..1c1d526ae 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -19,9 +19,6 @@ #define BASE_CONTROL (0x0000) // 0x1806_0000 - 0x1806_00FF // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/ctrl/ctrl.vhd -/* ASIC Control */ -#define BASE_ASIC (0x0100) // 0x1806_0100 - 0x1806_010F - /* ASIC Digital Interface. Data recovery core */ #define BASE_ADIF (0x0110) // 0x1806_0110 - 0x1806_011F // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/adif/adif_ctrl.vhd @@ -33,14 +30,21 @@ #define BASE_PKT (0x0130) // 0x1806_0130 - 0x1806_013F // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/pkt/pkt_ctrl.vhd -/* Pattern control and status registers */ +/* ASIC Exposure Control */ +#define BASE_ASIC_EXP (0x0180) // 0x1806_0180 - 0x1806_01BF + +/* Pattern control and status */ #define BASE_PATTERN_CONTROL (0x00200) // 0x1806_0200 - 0x1806_02FF // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/pattern_flow/pattern_flow_ctrl.vhd -/* Flow control and status registers */ +/* Flow control and status */ #define BASE_FLOW_CONTROL (0x00400) // 0x1806_0400 - 0x1806_04FF // https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/qsys/flow/flow_ctrl.vhd +/** ASIC Readout Control */ +#define BASE_ASIC_RDO (0x00500) // 0x1806_0500 - 0x1806_050F +// https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/asic_rdo/asic_rdo.vhd + /* UDP datagram generator */ #define BASE_UDP_RAM (0x01000) // 0x1806_1000 - 0x1806_1FFF @@ -157,6 +161,53 @@ #define COORD_ID_OFST (16) // Not connected in firmware TODO #define COORD_ID_MSK (0x0000FFFF << COORD_ID_OFST) // Not connected in firmware TODO +/* ASIC Exposure Control registers + * --------------------------------------------------*/ + +/** ASIC Exposure Status register */ +#define ASIC_EXP_STATUS_REG (0x00 * REG_OFFSET + BASE_ASIC_EXP) + +#define ASIC_EXP_STAT_GATE_SRC_EXT_OFST (0) +#define ASIC_EXP_STAT_GATE_SRC_EXT_MSK (0x00000001 << ASIC_EXP_STAT_GATE_SRC_EXT_OFST) +#define ASIC_EXP_STAT_STO_LNGTH_OFST (16) +#define ASIC_EXP_STAT_STO_LNGTH_MSK (0x000000FF << ASIC_EXP_STAT_STO_LNGTH_OFST) +#define ASIC_EXP_STAT_RSCNTR_LNGTH_OFST (24) +#define ASIC_EXP_STAT_RSCNTR_LNGTH_MSK (0x000000FF << ASIC_EXP_STAT_RSCNTR_LNGTH_OFST) + +/** Gate 0 width register */ +#define ASIC_EXP_GATE_0_WIDTH_LSB_REG (0x01 * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_0_WIDTH_MSB_REG (0x02 * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate 1 width register */ +#define ASIC_EXP_GATE_1_WIDTH_LSB_REG (0x03 * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_1_WIDTH_MSB_REG (0x04 * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate 2 width register */ +#define ASIC_EXP_GATE_2_WIDTH_LSB_REG (0x05 * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_2_WIDTH_MSB_REG (0x06 * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate 0 delay register */ +#define ASIC_EXP_GATE_0_DELAY_LSB_REG (0x07 * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_0_DELAY_MSB_REG (0x08 * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate 1 delay register */ +#define ASIC_EXP_GATE_1_DELAY_LSB_REG (0x09 * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_1_DELAY_MSB_REG (0x0A * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate 2 delay register */ +#define ASIC_EXP_GATE_2_DELAY_LSB_REG (0x0B * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_2_DELAY_MSB_REG (0x0C * REG_OFFSET + BASE_ASIC_EXP) + +/** Gate period register */ +#define ASIC_EXP_GATE_PERIOD_LSB_REG (0x0D * REG_OFFSET + BASE_ASIC_EXP) +#define ASIC_EXP_GATE_PERIOD_MSB_REG (0x0E * REG_OFFSET + BASE_ASIC_EXP) + +/** Number of Internal Gates register */ +#define ASIC_EXP_INT_GATE_NUMBER_REG (0x0F * REG_OFFSET + BASE_ASIC_EXP) + +/** Number of Internal Gates register */ +#define ASIC_EXP_EXT_GATE_NUMBER_REG (0x10 * REG_OFFSET + BASE_ASIC_EXP) + /* Pattern Control registers * --------------------------------------------------*/ @@ -325,4 +376,13 @@ #define SET_TRIGGER_DELAY_LSB_REG (0x32 * REG_OFFSET + BASE_FLOW_CONTROL) #define SET_TRIGGER_DELAY_MSB_REG (0x33 * REG_OFFSET + BASE_FLOW_CONTROL) + +/* ASIC Readout Control registers + * --------------------------------------------------*/ + +#define ASIC_RDO_CONFIG_REG (0x01 * REG_OFFSET + BASE_ASIC_RDO) + +#define ASICRDO_CNFG_RESSTRG_LNGTH_OFST (0) +#define ASICRDO_CNFG_RESSTRG_LNGTH_MSK (0x000000FF << ASICRDO_CNFG_RESSTRG_LNGTH_OFST) + // clang-format on \ No newline at end of file diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 12302130c..e541b5d01 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -415,6 +415,7 @@ void setupDetector() { // defaults setHighVoltage(DEFAULT_HIGH_VOLTAGE); setDefaultDacs(); + setASICDefaults(); // dynamic range setDynamicRange(DEFAULT_DYNAMIC_RANGE); @@ -424,10 +425,15 @@ void setupDetector() { // Initialization of acquistion parameters setNumFrames(DEFAULT_NUM_FRAMES); setNumTriggers(DEFAULT_NUM_CYCLES); - setExpTime(DEFAULT_EXPTIME); setPeriod(DEFAULT_PERIOD); setDelayAfterTrigger(DEFAULT_DELAY_AFTER_TRIGGER); setTiming(DEFAULT_TIMING_MODE); + setNumIntGates(DEFAULT_INTERNAL_GATES); + setNumGates(DEFAULT_EXTERNAL_GATES); + for (int i = 0; i != 2; ++i) { + setExpTime(i, DEFAULT_GATE_WIDTH); + setGateDelay(i, DEFAULT_GATE_DELAY); + } } int setDefaultDacs() { @@ -446,6 +452,25 @@ int setDefaultDacs() { return ret; } +void setASICDefaults() { + uint32_t val = bus_r(ASIC_EXP_STATUS_REG); + val &= (~ASIC_EXP_STAT_STO_LNGTH_MSK); + val |= ((DEFAULT_ASIC_LATCHING_NUM_PULSES << ASIC_EXP_STAT_STO_LNGTH_OFST) & + ASIC_EXP_STAT_STO_LNGTH_MSK); + val &= (~ASIC_EXP_STAT_RSCNTR_LNGTH_MSK); + val |= + ((DEFAULT_ASIC_LATCHING_NUM_PULSES << ASIC_EXP_STAT_RSCNTR_LNGTH_OFST) & + ASIC_EXP_STAT_RSCNTR_LNGTH_MSK); + bus_w(ASIC_EXP_STATUS_REG, val); + + val = bus_r(ASIC_RDO_CONFIG_REG); + val &= (~ASICRDO_CNFG_RESSTRG_LNGTH_MSK); + val |= + ((DEFAULT_ASIC_LATCHING_NUM_PULSES << ASICRDO_CNFG_RESSTRG_LNGTH_OFST) & + ASICRDO_CNFG_RESSTRG_LNGTH_MSK); + bus_w(ASIC_RDO_CONFIG_REG, val); +} + /* firmware functions (resets) */ void cleanFifos() { @@ -783,40 +808,18 @@ int64_t getNumTriggers() { return get64BitReg(SET_CYCLES_LSB_REG, SET_CYCLES_MSB_REG); } -int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val *= (1E-9 * getFrequency(SYSTEM_C0)); - setPatternWaitTime(0, val); - - // validate for tolerance - int64_t retval = getExpTime(); - val /= (1E-9 * getFrequency(SYSTEM_C0)); - if (val != retval) { - return FAIL; - } - return OK; -} - -int64_t getExpTime() { - return setPatternWaitTime(0, -1) / (1E-9 * getFrequency(SYSTEM_C0)); -} - int setPeriod(int64_t val) { if (val < 0) { LOG(logERROR, ("Invalid period: %lld ns\n", (long long int)val)); return FAIL; } LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val *= (1E-9 * FIXED_PLL_FREQUENCY); + val *= (1E-9 * getFrequency(SYSTEM_C2)); set64BitReg(val, SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG); // validate for tolerance int64_t retval = getPeriod(); - val /= (1E-9 * FIXED_PLL_FREQUENCY); + val /= (1E-9 * getFrequency(SYSTEM_C2)); if (val != retval) { return FAIL; } @@ -825,7 +828,165 @@ int setPeriod(int64_t val) { int64_t getPeriod() { return get64BitReg(SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG) / - (1E-9 * FIXED_PLL_FREQUENCY); + (1E-9 * getFrequency(SYSTEM_C2)); +} + +void setNumIntGates(int val) { + if (val > 0) { + LOG(logINFO, + ("Setting number of Internal Gates %lld\n", (long long int)val)); + bus_w(ASIC_EXP_INT_GATE_NUMBER_REG, val); + } +} + +void setNumGates(int val) { + if (val > 0) { + LOG(logINFO, ("Setting number of Gates %lld\n", (long long int)val)); + bus_w(ASIC_EXP_EXT_GATE_NUMBER_REG, val); + } +} + +int getNumExtGates() { return bus_r(ASIC_EXP_EXT_GATE_NUMBER_REG); } + +void updateGatePeriod() { + uint64_t max = 0; + for (int i = 0; i != 2; ++i) { + // TODO: only those counters enabled (when updated to mask in firmware) + uint64_t sum = getExpTime(i) + getGateDelay(i); + if (sum > max) { + max = sum; + } + } + LOG(logINFO, ("\tSetting Gate Period to %lld ns\n", (long long int)max)); + max *= (1E-9 * getFrequency(SYSTEM_C2)); + set64BitReg(max, ASIC_EXP_GATE_PERIOD_LSB_REG, + ASIC_EXP_GATE_PERIOD_MSB_REG); +} + +int setExptime(int gateIndex, int64_t val) { + uint32_t alsb = 0; + uint32_t amsb = 0; + switch (gateIndex) { + case 0: + alsb = ASIC_EXP_GATE_0_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; + break; + case 1: + alsb = ASIC_EXP_GATE_1_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; + break; + case 2: + alsb = ASIC_EXP_GATE_2_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; + break; + default: + LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); + return FAIL; + } + if (val < 0) { + LOG(logERROR, ("Invalid exptime (index:%d): %lld ns\n", gateIndex, + (long long int)val)); + return FAIL; + } + LOG(logINFO, ("Setting exptime %lld ns (index:%d)\n", (long long int)val, + gateIndex)); + val *= (1E-9 * getFrequency(SYSTEM_C2)); + set64BitReg(val, alsb, amsb); + + // validate for tolerance + int64_t retval = getExpTime(gateIndex); + val /= (1E-9 * getFrequency(SYSTEM_C2)); + if (val != retval) { + return FAIL; + } + + updateGatePeriod(); + + return OK; +} + +int64_t getExptime(int gateIndex) { + switch (gateIndex) { + case 0: + alsb = ASIC_EXP_GATE_0_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; + break; + case 1: + alsb = ASIC_EXP_GATE_1_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; + break; + case 2: + alsb = ASIC_EXP_GATE_2_WIDTH_LSB_REG; + blsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; + break; + default: + LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); + return -1; + } + return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C2)); +} + +int setGateDelay(int gateIndex, int64_t val) { + uint32_t alsb = 0; + uint32_t amsb = 0; + switch (gateIndex) { + case 0: + alsb = ASIC_EXP_GATE_0_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; + break; + case 1: + alsb = ASIC_EXP_GATE_1_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; + break; + case 2: + alsb = ASIC_EXP_GATE_2_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; + break; + default: + LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); + return FAIL; + } + if (val < 0) { + LOG(logERROR, ("Invalid gate delay (index:%d): %lld ns\n", gateIndex, + (long long int)val)); + return FAIL; + } + LOG(logINFO, ("Setting gate delay %lld ns (index:%d)\n", (long long int)val, + gateIndex)); + val *= (1E-9 * getFrequency(SYSTEM_C2)); + set64BitReg(val, alsb, amsb); + + // validate for tolerance + int64_t retval = getGateDelay(gateIndex); + val /= (1E-9 * getFrequency(SYSTEM_C2)); + if (val != retval) { + return FAIL; + } + + updateGatePeriod(); + + return OK; +} + +int64_t getGateDelay(int gateIndex) { + switch (gateIndex) { + case 0: + alsb = ASIC_EXP_GATE_0_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; + break; + case 1: + alsb = ASIC_EXP_GATE_1_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; + break; + case 2: + alsb = ASIC_EXP_GATE_2_DELAY_LSB_REG; + blsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; + break; + default: + LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); + return -1; + } + return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C2)); } void setCounterMask(uint32_t arg) { @@ -852,6 +1013,8 @@ void setCounterMask(uint32_t arg) { bus_w(addr, bus_r(addr) & ~CONFIG_COUNTER_ENA_MSK); bus_w(addr, bus_r(addr) | val); LOG(logDEBUG, ("Config Reg: 0x%x\n", bus_r(addr))); + + updateGatePeriod(); } uint32_t getCounterMask() { @@ -897,12 +1060,12 @@ int setDelayAfterTrigger(int64_t val) { return FAIL; } LOG(logINFO, ("Setting delay after trigger %lld ns\n", (long long int)val)); - val *= (1E-9 * FIXED_PLL_FREQUENCY); + val *= (1E-9 * getFrequency(SYSTEM_C2)); set64BitReg(val, SET_TRIGGER_DELAY_LSB_REG, SET_TRIGGER_DELAY_MSB_REG); // validate for tolerance int64_t retval = getDelayAfterTrigger(); - val /= (1E-9 * FIXED_PLL_FREQUENCY); + val /= (1E-9 * getFrequency(SYSTEM_C2)); if (val != retval) { return FAIL; } @@ -911,7 +1074,7 @@ int setDelayAfterTrigger(int64_t val) { int64_t getDelayAfterTrigger() { return get64BitReg(SET_TRIGGER_DELAY_LSB_REG, SET_TRIGGER_DELAY_MSB_REG) / - (1E-9 * FIXED_PLL_FREQUENCY); + (1E-9 * getFrequency(SYSTEM_C2)); } int64_t getNumFramesLeft() { @@ -924,12 +1087,12 @@ int64_t getNumTriggersLeft() { int64_t getDelayAfterTriggerLeft() { return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG) / - (1E-9 * FIXED_PLL_FREQUENCY); + (1E-9 * getFrequency(SYSTEM_C2)); } int64_t getPeriodLeft() { return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG) / - (1E-9 * FIXED_PLL_FREQUENCY); + (1E-9 * getFrequency(SYSTEM_C2)); } int64_t getFramesFromStart() { @@ -1014,23 +1177,68 @@ void setTiming(enum timingMode arg) { if (arg != GET_TIMING_MODE) { switch (arg) { case AUTO_TIMING: - LOG(logINFO, ("Set Timing: Auto\n")); + LOG(logINFO, ("Set Timing: Auto (Int. Trigger, Int. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK); + bus_w(ASIC_EXP_STATUS_REG, + bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break; case TRIGGER_EXPOSURE: - LOG(logINFO, ("Set Timing: Trigger\n")); + LOG(logINFO, ("Set Timing: Trigger (Ext. Trigger, Int. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); + bus_w(ASIC_EXP_STATUS_REG, + bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK); + break; + case GATED: + LOG(logINFO, ("Set Timing: Gating (Int. Trigger, Ext. Gating)\n")); + bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK); + bus_w(ASIC_EXP_STATUS_REG, + bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); + break; + case TRIGGER_GATED: + LOG(logINFO, + ("Set Timing: Trigger_Gating (Ext. Trigger, Ext. Gating)\n")); + bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); + bus_w(ASIC_EXP_STATUS_REG, + bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break; default: LOG(logERROR, ("Unknown timing mode %d\n", arg)); + return; + } + // internal gating + if (arg == AUTO_TIMING || arg == TRIGGER_EXPOSURE) { + setNumGates(1); // should be in firmware + // TOOD: number of counters-> set appropriate gatewidth and + // gatedelay to 0 + setMaxGatePulseWidth(); + } + // external gating + else { } } } enum timingMode getTiming() { - if (bus_r(EXT_SIGNAL_REG) == EXT_SIGNAL_MSK) - return TRIGGER_EXPOSURE; - return AUTO_TIMING; + uint32_t extTrigger = (bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); + uint32_t extGate = + (bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); + if (extTrigger) { + if (extGate) { + // external trigger, external gating + return TRIGGER_GATED; + } else { + // external trigger, internal gating + return TRIGGER_EXPOSURE; + } + } else { + if (extGate) { + // internal trigger, external gating + return GATED; + } else { + // internal trigger, internal gating + return AUTO_TIMING; + } + } } int configureMAC() { diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index c99d35629..08e0fe224 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -23,19 +23,23 @@ #define TYPE_NO_MODULE_STARTING_VAL (800) /** Default Parameters */ -#define DEFAULT_DYNAMIC_RANGE (24) -#define DEFAULT_NUM_FRAMES (1) -#define DEFAULT_NUM_CYCLES (1) -#define DEFAULT_EXPTIME (100 * 1000 * 1000) // ns -#define DEFAULT_PERIOD (2 * 1000 * 1000) // ns -#define DEFAULT_DELAY_AFTER_TRIGGER (0) -#define DEFAULT_HIGH_VOLTAGE (0) -#define DEFAULT_TIMING_MODE (AUTO_TIMING) -#define DEFAULT_READOUT_C0 (10) //(125000000) // rdo_clk, 125 MHz -#define DEFAULT_READOUT_C1 (10) //(125000000) // rdo_x2_clk, 125 MHz -#define DEFAULT_SYSTEM_C0 (5) //(250000000) // run_clk, 250 MHz -#define DEFAULT_SYSTEM_C1 (10) //(125000000) // chip_clk, 125 MHz -#define DEFAULT_SYSTEM_C2 (10) //(125000000) // sync_clk, 125 MHz +#define DEFAULT_INTERNAL_GATES (1) +#define DEFAULT_EXTERNAL_GATES (1) +#define DEFAULT_DYNAMIC_RANGE (24) +#define DEFAULT_NUM_FRAMES (1) +#define DEFAULT_NUM_CYCLES (1) +#define DEFAULT_GATE_WIDTH (100 * 1000 * 1000) // ns +#define DEFAULT_GATE_DELAY (0) +#define DEFAULT_PERIOD (2 * 1000 * 1000) // ns +#define DEFAULT_DELAY_AFTER_TRIGGER (0) +#define DEFAULT_HIGH_VOLTAGE (0) +#define DEFAULT_TIMING_MODE (AUTO_TIMING) +#define DEFAULT_READOUT_C0 (10) //(125000000) // rdo_clk, 125 MHz +#define DEFAULT_READOUT_C1 (10) //(125000000) // rdo_x2_clk, 125 MHz +#define DEFAULT_SYSTEM_C0 (5) //(250000000) // run_clk, 250 MHz +#define DEFAULT_SYSTEM_C1 (10) //(125000000) // chip_clk, 125 MHz +#define DEFAULT_SYSTEM_C2 (10) //(125000000) // sync_clk, 125 MHz +#define DEFAULT_ASIC_LATCHING_NUM_PULSES (10) /* Firmware Definitions */ #define IP_HEADER_SIZE (20) diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index 25cfed686..b36ad13d6 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -115,6 +115,9 @@ void updateDataBytes(); defined(MOENCHD) int setDefaultDacs(); #endif +#ifdef MYTHEN3D +void setASICDefaults(); +#endif #if defined(GOTTHARD2D) || defined(EIGERD) int readConfigFile(); #endif @@ -201,10 +204,21 @@ void setNumFrames(int64_t val); int64_t getNumFrames(); void setNumTriggers(int64_t val); int64_t getNumTriggers(); +#ifndef MYTHEN3D int setExpTime(int64_t val); int64_t getExpTime(); +#endif int setPeriod(int64_t val); int64_t getPeriod(); +#ifdef MYTHEN3D +void setNumIntGates(int val); +void setNumGates(int val); +int getNumGates(); +int setExptime(int gateIndex, int64_t val); +int64_t getExptime(int gateIndex); +int setGateDelay(int gateIndex, int64_t val); +int64_t getGateDelay(int gateIndex); +#endif #ifdef GOTTHARD2D void setNumBursts(int64_t val); int64_t getNumBursts(); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index dd5cd16d7..0de5a83b2 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -218,3 +218,9 @@ int get_num_channels(int); int update_rate_correction(int); int get_receiver_parameters(int); int start_pattern(int); +int set_num_gates(int); +int get_num_gates(int); +int set_gate_delay(int); +int get_gate_delay(int); +int get_exptime_all_gates(int); +int get_gate_delay_all_gates(int); \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 8f0596109..2e92c912b 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -137,7 +137,6 @@ const char *getRunStateName(enum runStatus ind) { } } - void function_table() { flist[F_EXEC_COMMAND] = &exec_command; flist[F_GET_DETECTOR_TYPE] = &get_detector_type; @@ -330,6 +329,12 @@ void function_table() { flist[F_UPDATE_RATE_CORRECTION] = &update_rate_correction; flist[F_GET_RECEIVER_PARAMETERS] = &get_receiver_parameters; flist[F_START_PATTERN] = &start_pattern; + FLIST[F_SET_NUM_GATES] = &set_num_gates; + FLIST[F_GET_NUM_GATES] = &get_num_gates; + FLIST[F_SET_GATE_DELAY] = &set_gate_delay; + FLIST[F_GET_GATE_DELAY] = &get_gate_delay; + flist[F_GET_EXPTIME_ALL_GATES = &get_exptime_all_gates; + flist[F_GET_GATE_DELAY_ALL_GATES = &get_gate_delay_all_gates; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { @@ -510,6 +515,9 @@ int set_timing_mode(int file_des) { #ifdef EIGERD case GATED: case BURST_TRIGGER: +#elif MYTHEN3D + case GATED: + case TRIGGER_GATED: #endif setTiming(arg); break; @@ -2083,34 +2091,114 @@ int set_num_digital_samples(int file_des) { int get_exptime(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); + int gateIndex = -1; int64_t retval = -1; - // get only - retval = getExpTime(); - LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); + if (receiveData(file_des, &gateIndex, sizeof(gateIndex), INT32) < 0) + return printSocketReadError(); + + // get only +#ifdef MYTHEN3D + if (gateIndex < 0 || gateIndex > 2) { + ret = FAIL; + sprintf(mess, + "Could not get exposure time. Invalid gate index %d. " + "Options [0-2]\n", + gateIndex); + LOG(logERROR, (mess)); + } else { + retval = getExptime(gateIndex); + LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); + } +#else + if (gateIndex != -1) { + ret = FAIL; + sprintf(mess, "Could not get exposure time. Gate index not implemented " + "for this detector\n"); + LOG(logERROR, (mess)); + } else { + retval = getExpTime(); + LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); + } +#endif return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } int set_exptime(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - int64_t arg = -1; + int64_t args[2] = {-1, -1}; - if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0) + if (receiveData(file_des, args, sizeof(args), INT64) < 0) return printSocketReadError(); - LOG(logDEBUG1, ("Setting exptime %lld ns\n", (long long int)arg)); + int gateIndex = args[0]; + int64_t val = args[1]; + LOG(logDEBUG1, ("Setting exptime %lld ns (gateIndex:%d)\n", + (long long int)val, gateIndex)); // only set if (Server_VerifyLock() == OK) { - ret = setExpTime(arg); - int64_t retval = getExpTime(); - LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); - if (ret == FAIL) { +#ifdef MYTHEN3D + if (gateIndex < -1 || gateIndex > 2) { + ret = FAIL; sprintf(mess, - "Could not set exposure time. Set %lld ns, read %lld ns.\n", - (long long int)arg, (long long int)retval); + "Could not set exposure time. Invalid gate index %d. " + "Options [-1, 0-2]\n", + gateIndex); LOG(logERROR, (mess)); + } else { + // specific gate index + if (gateIndex != -1) { + ret = setExpTime(gateIndex, val); + int64_t retval = getExpTime(gateIndex); + LOG(logDEBUG1, + ("retval exptime %lld ns\n", (long long int)retval)); + if (ret == FAIL) { + sprintf(mess, + "Could not set exposure time. Set %lld ns, read " + "%lld ns.\n", + (long long int)val, (long long int)retval); + LOG(logERROR, (mess)); + } + } + // all gate indices + else { + for (int i = 0; i != 2; ++i) { + ret = setExpTime(i, val); + int64_t retval = getExpTime(i); + LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", + (long long int)retval, i)); + if (ret == FAIL) { + sprintf(mess, + "Could not set exptime. Set %lld ns, read %lld " + "ns.\n", + (long long int)val, (long long int)retval); + LOG(logERROR, (mess)); + break; + } + } + } } +#else + if (gateIndex != -1) { + ret = FAIL; + sprintf(mess, + "Could not get exposure time. Gate index not implemented " + "for this detector\n"); + LOG(logERROR, (mess)); + } else { + ret = setExpTime(val); + int64_t retval = getExpTime(); + LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); + if (ret == FAIL) { + sprintf( + mess, + "Could not set exposure time. Set %lld ns, read %lld ns.\n", + (long long int)val, (long long int)retval); + LOG(logERROR, (mess)); + } + } +#endif } return Server_SendResult(file_des, INT64, NULL, 0); } @@ -7026,4 +7114,167 @@ int start_pattern(int file_des) { } #endif return Server_SendResult(file_des, INT32, NULL, 0); -} \ No newline at end of file +} + +int set_num_gates(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int arg = -1; + + if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + return printSocketReadError(); + LOG(logDEBUG1, ("Setting number of gates %d\n", arg)); + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + setNumGates(arg); + int retval = getNumGates(); + LOG(logDEBUG1, ("retval num gates %d\n", retval)); + validate(arg, retval, "set number of gates", DEC); + } +#endif + return Server_SendResult(file_des, INT32, NULL, 0); +} + +int get_num_gates(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int retval = -1; + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + // get only + retval = getNumGates(); + LOG(logDEBUG1, ("retval num gates %d\n", retval)); +#endif + return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); +} + +int set_gate_delay(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int64_t args[2] = {-1, -1}; + + if (receiveData(file_des, args, sizeof(args), INT64) < 0) + return printSocketReadError(); + int gateIndex = args[0]; + int64_t val = args[1]; + LOG(logDEBUG1, ("Setting gate delay %lld ns (gateIndex:%d)\n", + (long long int)val, gateIndex)); + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + // only set + if (Server_VerifyLock() == OK) { + if (gateIndex < -1 || gateIndex > 2) { + ret = FAIL; + sprintf(mess, + "Could not set gate delay. Invalid gate index %d. " + "Options [-1, 0-2]\n", + gateIndex); + LOG(logERROR, (mess)); + } else { + // specific gate index + if (gateIndex != -1) { + ret = setGateDelay(gateIndex, val); + int64_t retval = getGateDelay(gateIndex); + LOG(logDEBUG1, + ("retval exptime %lld ns\n", (long long int)retval)); + if (ret == FAIL) { + sprintf(mess, + "Could not set gate delay. Set %lld ns, read %lld " + "ns.\n", + (long long int)val, (long long int)retval); + LOG(logERROR, (mess)); + } + } + // all gate indices + else { + for (int i = 0; i != 2; ++i) { + ret = setGateDelay(i, val); + int64_t retval = getGateDelay(i); + LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", + (long long int)retval, i)); + if (ret == FAIL) { + sprintf( + mess, + "Could not set gate delay. Set %lld ns, read %lld " + "ns.\n", + (long long int)val, (long long int)retval); + LOG(logERROR, (mess)); + break; + } + } + } + } +#endif + return Server_SendResult(file_des, INT64, NULL, 0); +} + +int get_gate_delay(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int gateIndex = -1; + int64_t retval = -1; + + if (receiveData(file_des, &gateIndex, sizeof(gateIndex), INT32) < 0) + return printSocketReadError(); + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + // get only + if (gateIndex < 0 || gateIndex > 2) { + ret = FAIL; + sprintf(mess, + "Could not set gate delay. Invalid gate index %d. " + "Options [0-2]\n", + gateIndex); + LOG(logERROR, (mess)); + } else { + retval = getGateDelay(gateIndex); + LOG(logDEBUG1, + ("retval gate delay %lld ns\n", (long long int)retval)); + } +#endif + return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); +} + +int get_exptime_all_gates(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int64_t retvals[3] = {-1, -1, -1}; + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + for (int i = 0; i != 2; ++i) { + retvals[i] = getExpTime(i); + LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", + (long long int)retvals[i], i)); + } +#endif + return Server_SendResult(file_des, INT64, retvals, sizeof(retvals)); +} + +int get_gate_delay_all_gates(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int64_t retvals[3] = {-1, -1, -1}; + +#if !defined(MYTHEN3D) + functionNotImplemented(); +#else + for (int i = 0; i != 2; ++i) { + retvals[i] = getGateDelay(i); + LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", + (long long int)retvals[i], i)); + } +#endif + return Server_SendResult(file_des, INT64, retvals, sizeof(retvals)); +} diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index 0f8b1fb3e..bff65b132 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -203,7 +203,9 @@ class Detector { Result getTimingMode(Positions pos = {}) const; /** - * [Gotthard][Jungfrau][CTB][Moench] Options: AUTO_TIMING, TRIGGER_EXPOSURE + * [Gotthard][Jungfrau][CTB][Moench][Mythen3] Options: + * AUTO_TIMING, TRIGGER_EXPOSURE + * [Gotthard2] Options: AUTO_TIMING, TRIGGER_EXPOSURE, GATED, TRIGGER_GATED * [Eiger] Options: AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER */ void setTimingMode(defs::timingMode value, Positions pos = {}); @@ -991,6 +993,36 @@ class Detector { /** [Mythen3] countermask bit set for each counter enabled */ void setCounterMask(uint32_t countermask, Positions pos = {}); + Result getNumberOfGates(Positions pos = {}) const; + + /** [Mythen3] external gates in gating or trigger_gating mode (external + * gating) */ + void setNumberOfGates(int value, Positions pos = {}); + + /** [Mythen3] exptime for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2 */ + Result getExptime(int gateIndex, Positions pos = {}) const; + + /** [Mythen3] exptime for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2, -1 for all */ + void setExptime(int gateIndex, ns t, Positions pos = {}); + + /** [Mythen3] exptime for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2, -1 for all */ + Result> getExptimeForAllGates(Positions pos = {}) const; + + /** [Mythen3] gate delay for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2 */ + Result getGateDelay(int gateIndex, Positions pos = {}) const; + + /** [Mythen3] gate delay for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2, -1 for all */ + void setGateDelay(int gateIndex, ns t, Positions pos = {}); + + /** [Mythen3] gate delay for each gate signal in auto or trigger timing mode + * (internal gating). Gate index: 0-2, -1 for all */ + Result> getGateDelayForAllGates(Positions pos = {}) const; + /************************************************** * * * CTB / Moench Specific * diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index c4bd6d5af..e0875d7fc 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -333,6 +333,109 @@ std::string CmdProxy::DetectorSize(int action) { /* acquisition parameters */ +std::string CmdProxy::Exptime(int action) { + int gateIndex = -1; + if (cmd == "exptime") { + gateIndex = -1; + } else if (cmd == "exptime1") { + gateIndex = 0; + } else if (cmd == "exptime2") { + gateIndex = 1; + } else if (cmd == "exptime3") { + gateIndex = 2; + } else { + throw sls::RuntimeError( + "Unknown command, use list to list all commands"); + } + + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + if (cmd == "exptime") { + os << "[duration] [(optional unit) " + "ns|us|ms|s]\n\t[Eiger][Jungfrau][Gotthard][Gotthard2][" + "Moench][Ctb] Exposure time" + "\n\t[Gotthard2] Uploaded to detector just before " + "acquisition starts" + "\n\t[Mythen3] Exposure time of all gate signals in auto and " + "trigger mode (internal gating)." + << '\n'; + } else if (cmd == "exptime1") { + os << "[n_value]\n\t[Mythen3] Exposure time of gate signal 1 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } else if (cmd == "exptime2") { + os << "[n_value]\n\t[Mythen3] Exposure time of gate signal 2 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } else { + os << "[n_value]\n\t[Mythen3] Exposure time of gate signal 3 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } + } else if (action == defs::GET_ACTION) { + if (args.size() > 1) { + WrongNumberOfParameters(1); + } + // vector of exptimes + if (gateIndex == -1 & + det->getDetectorType().squash() == defs::MYTHEN3) { + auto t = det->getExptimeForAllGates({det_id}); + if (args.size() == 0) { + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + os << OutString(t, args[0]) << '\n'; + } + } + // single exptime + else { + Result t; + if (gateIndex == -1) { + t = det->getExptime({det_id}); + } else { + t = det->getExptime(gateIndex, {det_id}); + } + if (args.size() == 0) { + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + os << OutString(t, args[0]) << '\n'; + } + } + } else if (action == defs::PUT_ACTION) { + defs::detectorType type = det->getDetectorType().squash(); + if (args.size() == 1) { + std::string time_str(args[0]); + std::string unit = RemoveUnit(time_str); + auto t = StringTo(time_str, unit); + if (type == MYTHEN3) { + det->setExptime(gateIndex, t, {det_id}); + } else { + det->setExptime(t, {det_id}); + } + } else if (args.size() == 2) { + auto t = StringTo(args[0], args[1]); + if (type == MYTHEN3) { + det->setExptime(gateIndex, t, {det_id}); + } else { + det->setExptime(t, {det_id}); + } + } else { + WrongNumberOfParameters(2); + } + /* TODO: os << args << '\n'; (doesnt work for vectors in .h)*/ + if (args.size() > 1) { + os << args[0] << args[1] << '\n'; + } else { + os << args[0] << '\n'; + } + } else { + throw sls::RuntimeError("Unknown action"); + } +} + std::string CmdProxy::Speed(int action) { std::ostringstream os; os << cmd << ' '; @@ -1591,6 +1694,91 @@ std::string CmdProxy::Counters(int action) { return os.str(); } +std::string CmdProxy::GateDelay(int action) { + int gateIndex = -1; + if (cmd == "gatedelay") { + gateIndex = -1; + } else if (cmd == "gatedelay1") { + gateIndex = 0; + } else if (cmd == "gatedelay2") { + gateIndex = 1; + } else if (cmd == "gatedelay3") { + gateIndex = 2; + } else { + throw sls::RuntimeError( + "Unknown command, use list to list all commands"); + } + + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + if (cmd == "gatedelay") { + os << "[duration] [(optional unit) " + "ns|us|ms|s]\n\t[Mythen3] Gate Delay of all gate signals in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } else if (cmd == "gatedelay1") { + os << "[n_value]\n\t[Mythen3] Gate Delay of gate signal 1 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } else if (cmd == "gatedelay2") { + os << "[n_value]\n\t[Mythen3] Gate Delay of gate signal 2 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } else { + os << "[n_value]\n\t[Mythen3] Gate Delay of gate signal 3 in " + "auto and " + "trigger mode (internal gating)." + << '\n'; + } + } else if (action == defs::GET_ACTION) { + if (args.size() > 1) { + WrongNumberOfParameters(1); + } + // vector of gate delays + if (gateIndex == -1) { + auto t = det->getGateDelayForAllGates({det_id}); + if (args.size() == 0) { + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + os << OutString(t, args[0]) << '\n'; + } + } + // single gate delay + else { + auto t = det->getGateDelay(gateIndex, {det_id}); + if (args.size() == 0) { + os << OutString(t) << '\n'; + } else if (args.size() == 1) { + os << OutString(t, args[0]) << '\n'; + } + } + } else if (action == defs::PUT_ACTION) { + if (args.size() == 1) { + std::string time_str(args[0]); + std::string unit = RemoveUnit(time_str); + auto t = StringTo(time_str, unit); + det->setGateDelay(gateIndex, t, {det_id}); + } else if (args.size() == 2) { + auto t = StringTo(args[0], args[1]); + det->setGateDelay(gateIndex, t, {det_id}); + } else { + WrongNumberOfParameters(2); + } + /* TODO: os << args << '\n'; (doesnt work for vectors in .h)*/ + if (args.size() > 1) { + os << args[0] << args[1] << '\n'; + } else { + os << args[0] << '\n'; + } + } else { + throw sls::RuntimeError("Unknown action"); + } +} + /* CTB / Moench Specific */ std::string CmdProxy::Samples(int action) { diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index cb71f1360..518deada8 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -570,7 +570,7 @@ class CmdProxy { {"acquire", &CmdProxy::acquire}, {"frames", &CmdProxy::frames}, {"triggers", &CmdProxy::triggers}, - {"exptime", &CmdProxy::exptime}, + {"exptime", &CmdProxy::Exptime}, {"period", &CmdProxy::period}, {"delay", &CmdProxy::delay}, {"framesl", &CmdProxy::framesl}, @@ -798,6 +798,14 @@ class CmdProxy { /* Mythen3 Specific */ {"counters", &CmdProxy::Counters}, + {"gates", &CmdProxy::gates}, + {"exptime1", &CmdProxy::Exptime}, + {"exptime2", &CmdProxy::Exptime}, + {"exptime3", &CmdProxy::Exptime}, + {"gatedelay", &CmdProxy::GateDelay}, + {"gatedelay1", &CmdProxy::GateDelay}, + {"gatedelay2", &CmdProxy::GateDelay}, + {"gatedelay3", &CmdProxy::GateDelay}, /* CTB/ Moench Specific */ {"samples", &CmdProxy::Samples}, @@ -916,6 +924,7 @@ class CmdProxy { std::string DetectorSize(int action); /* acquisition parameters */ std::string acquire(int action); + std::string Exptime(int action); std::string Speed(int action); std::string Adcphase(int action); std::string Dbitphase(int action); @@ -963,6 +972,7 @@ class CmdProxy { std::string BurstMode(int action); /* Mythen3 Specific */ std::string Counters(int action); + std::string GateDelay(int action); /* CTB/ Moench Specific */ std::string Samples(int action); /* CTB Specific */ @@ -1055,11 +1065,6 @@ class CmdProxy { "[n_triggers]\n\tNumber of triggers per aquire. Use " "timing command to set timing mode."); - TIME_COMMAND( - exptime, getExptime, setExptime, - "[duration] [(optional unit) ns|us|ms|s]\n\tExposure time" - "\n\t[Gotthard2] Uploaded to detector just before acquisition starts"); - TIME_COMMAND( period, getPeriod, setPeriod, "[duration] [(optional unit) ns|us|ms|s]\n\tPeriod between frames" @@ -1094,12 +1099,13 @@ class CmdProxy { " Period left for current frame." "\n\t[Gotthard2] only in continuous mode."); - INTEGER_COMMAND( - timing, getTimingMode, setTimingMode, - sls::StringTo, - "[auto|trigger|gating|burst_trigger]\n\tTiming Mode of " - "detector.\n\t[Jungfrau][Gotthard][Mythen3][Gotthard2][Ctb][Moench] " - "[auto|trigger]\n\t[Eiger] [auto|trigger|gating|burst_trigger]"); + INTEGER_COMMAND(timing, getTimingMode, setTimingMode, + sls::StringTo, + "[auto|trigger|gating|burst_trigger]\n\tTiming Mode of " + "detector.\n\t[Jungfrau][Gotthard][Mythen3][Ctb][Moench] " + "[auto|trigger]\n\t[Gotthard2] " + "[auto|trigger|gating|trigger_gating]\n\t[Eiger] " + "[auto|trigger|gating|burst_trigger]"); GET_COMMAND(maxadcphaseshift, getMaxADCPhaseShift, "\n\t[Jungfrau][CTB][Moench] Absolute maximum Phase shift of " @@ -1875,6 +1881,10 @@ class CmdProxy { /* Mythen3 Specific */ + INTEGER_COMMAND(gates, getNumberOfGates, setNumberOfGates, StringTo, + "[n_gates]\n\t[Mythen3] Number of external gates in gating " + "or trigger_gating mode (external gating)."); + /* CTB/ Moench Specific */ INTEGER_COMMAND( diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index d3648b0d2..8af4d6ac7 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -202,11 +202,11 @@ void Detector::setNumberOfTriggers(int64_t value) { } Result Detector::getExptime(Positions pos) const { - return pimpl->Parallel(&Module::getExptime, pos); + return pimpl->Parallel(&Module::getExptime, pos, -1); } void Detector::setExptime(ns t, Positions pos) { - pimpl->Parallel(&Module::setExptime, pos, t.count()); + pimpl->Parallel(&Module::setExptime, pos, -1, t.count()); } Result Detector::getPeriod(Positions pos) const { @@ -1258,6 +1258,39 @@ void Detector::setCounterMask(uint32_t countermask, Positions pos) { pimpl->Parallel(&Module::setCounterMask, pos, countermask); } +Result Detector::getNumberOfGates(Positions pos) const { + return pimpl->Parallel(&Module::getNumberOfGates, pos); +} + +void Detector::setNumberOfGates(int value, Positions pos) { + pimpl->Parallel(&Module::setNumberOfGates, pos, value); +} + +Result Detector::getExptime(int gateIndex, Positions pos) const { + return pimpl->Parallel(&Module::getExptime, pos, gateIndex); +} + +void Detector::setExptime(int gateIndex, ns t, Positions pos) { + pimpl->Parallel(&Module::setExptime, pos, gateIndex, t.count()); +} + +Result> Detector::getExptimeForAllGates(Positions pos) const { + return pimpl->Parallel(&Module::getExptimeForAllGates, pos); +} + +Result Detector::getGateDelay(int gateIndex, Positions pos) const { + return pimpl->Parallel(&Module::getGateDelay, pos, gateIndex); +} + +void Detector::setGateDelay(int gateIndex, ns t, Positions pos) { + pimpl->Parallel(&Module::setGateDelay, pos, gateIndex, t.count()); +} + +Result> +Detector::getGateDelayForAllGates(Positions pos) const { + return pimpl->Parallel(&Module::getGateDelayForAllGates, pos); +} + // CTB/ Moench Specific Result Detector::getNumberOfAnalogSamples(Positions pos) const { diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 43f74bd50..8131cbcaf 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1027,15 +1027,26 @@ void Module::setNumberOfDigitalSamples(int value) { } } -int64_t Module::getExptime() { return sendToDetector(F_GET_EXPTIME); } +int Module::getNumberOfGates() { return sendToDetector(F_GET_NUM_GATES); } -void Module::setExptime(int64_t value) { +void Module::setNumberOfGates(int value) { + LOG(logDEBUG1) << "Setting number of gates to " << value; + sendToDetector(F_SET_NUM_GATES, value, nullptr); +} + +int64_t Module::getExptime(int gateIndex) { + return sendToDetector(F_GET_EXPTIME, gateIndex); +} + +void Module::setExptime(int gateIndex, int64_t value) { int64_t prevVal = value; if (shm()->myDetectorType == EIGER) { prevVal = getExptime(); } - LOG(logDEBUG1) << "Setting exptime to " << value << "ns"; - sendToDetector(F_SET_EXPTIME, value, nullptr); + LOG(logDEBUG1) << "Setting exptime to " << value + << "ns (gateindex: " << gateIndex << ")"; + int64_t args[]{static_cast(gateIndex), value}; + sendToDetector(F_SET_EXPTIME, args, nullptr); if (shm()->useReceiverFlag) { LOG(logDEBUG1) << "Sending exptime to Receiver: " << value; sendToReceiver(F_RECEIVER_SET_EXPTIME, value, nullptr); @@ -1045,6 +1056,25 @@ void Module::setExptime(int64_t value) { } } +std::array Module::getExptimeForAllGates() { + return sendToDetector(F_GET_EXPTIME_ALL_GATES); +} + +int64_t Module::getGateDelay(int gateIndex) { + return sendToDetector(F_GET_GATE_DELAY, gateIndex); +} + +void Module::setGateDelay(int gateIndex, int64_t value) { + LOG(logDEBUG1) << "Setting gate delay to " << value + << "ns (gateindex: " << gateIndex << ")"; + int64_t args[]{static_cast(gateIndex), value}; + sendToDetector(F_SET_GATE_DELAY, args, nullptr); +} + +std::array Module::getGateDelayForAllGates() { + return sendToDetector(F_GET_GATE_DELAY_ALL_GATES); +} + int64_t Module::getPeriod() { return sendToDetector(F_GET_PERIOD); } void Module::setPeriod(int64_t value) { diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index bdd81d651..fb42dd31c 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -419,9 +419,29 @@ class Module : public virtual slsDetectorDefs { /** [CTB] */ void setNumberOfDigitalSamples(int value); - int64_t getExptime(); + /** [Mythen3] */ + int getNumberOfGates(); - void setExptime(int64_t value); + /** [Mythen3] */ + void setNumberOfGates(int value); + + /** [Mythen3] gatIndex: 0-2, [Others]: -1 always */ + int64_t getExptime(int gateIndex); + + /** [Mythen3] gatIndex: -1 for all, 0-2, [Others]: -1 always */ + void setExptime(int gateIndex, int64_t value); + + /** [Mythen3] for all gates */ + std::array getExptimeForAllGates(); + + /** [Mythen3] gatIndex: 0-2 */ + int64_t getGateDelay(int gateIndex); + + /** [Mythen3] gatIndex: -1 for all, 0-2 */ + void setGateDelay(int gateIndex, int64_t value); + + /** [Mythen3] for all gates */ + std::array getGateDelayForAllGates(); int64_t getPeriod(); diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 9a0571f8f..57cf109f8 100644 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -241,6 +241,7 @@ typedef struct { TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */ GATED, /**< gated */ BURST_TRIGGER, /**< trigger a burst of frames */ + TRIGGER_GATED, /**< trigger and gating */ NUM_TIMING_MODES }; @@ -483,9 +484,9 @@ typedef struct { protected: #endif -// #ifndef MYROOT -// #include "sls_detector_funcs.h" -// #endif + // #ifndef MYROOT + // #include "sls_detector_funcs.h" + // #endif #ifdef __cplusplus }; diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index 4df1aab5c..0299b2a51 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -198,6 +198,12 @@ enum detFuncs { F_UPDATE_RATE_CORRECTION, F_GET_RECEIVER_PARAMETERS, F_START_PATTERN, + F_SET_NUM_GATES, + F_GET_NUM_GATES, + F_SET_GATE_DELAY, + F_GET_GATE_DELAY, + F_GET_EXPTIME_ALL_GATES, + F_GET_GATE_DELAY_ALL_GATES, NUM_DET_FUNCTIONS, RECEIVER_ENUM_START = 256, /**< detector function should not exceed this @@ -492,6 +498,13 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { case F_UPDATE_RATE_CORRECTION: return "F_UPDATE_RATE_CORRECTION"; case F_GET_RECEIVER_PARAMETERS: return "F_GET_RECEIVER_PARAMETERS"; case F_START_PATTERN: return "F_START_PATTERN"; + case F_SET_NUM_GATES: return "F_SET_NUM_GATES"; + case F_GET_NUM_GATES: return "F_GET_NUM_GATES"; + case F_SET_GATE_DELAY: return "F_SET_GATE_DELAY"; + case F_GET_GATE_DELAY: return "F_GET_GATE_DELAY"; + case F_GET_EXPTIME_ALL_GATES: return "F_GET_EXPTIME_ALL_GATES"; + case F_GET_GATE_DELAY_ALL_GATES: return "F_GET_GATE_DELAY_ALL_GATES"; + case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS"; case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START"; diff --git a/slsSupportLib/src/ToString.cpp b/slsSupportLib/src/ToString.cpp index 934ecc944..d101b4cca 100644 --- a/slsSupportLib/src/ToString.cpp +++ b/slsSupportLib/src/ToString.cpp @@ -128,6 +128,8 @@ std::string ToString(const defs::timingMode s) { return std::string("gating"); case defs::BURST_TRIGGER: return std::string("burst_trigger"); + case defs::TRIGGER_GATED: + return std::string("trigger_gating"); default: return std::string("Unknown"); } @@ -318,6 +320,8 @@ template <> defs::timingMode StringTo(const std::string &s) { return defs::GATED; if (s == "burst_trigger") return defs::BURST_TRIGGER; + if (s == "trigger_gating") + return defs::TRIGGER_GATED; throw sls::RuntimeError("Unknown timing mode " + s); } From e208d3ebe88a536463ff59482d8bb555833e5389 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 19 May 2020 18:59:07 +0200 Subject: [PATCH 06/30] WIP --- .../slsDetectorFunctionList.c | 52 +++++++-------- .../include/slsDetectorFunctionList.h | 6 +- .../src/slsDetectorServer_funcs.c | 66 ++++++++++--------- slsDetectorSoftware/src/CmdProxy.cpp | 8 ++- slsDetectorSoftware/src/Detector.cpp | 18 ++++- slsDetectorSoftware/src/Module.cpp | 14 ++-- slsDetectorSoftware/src/Module.h | 4 +- 7 files changed, 97 insertions(+), 71 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index e541b5d01..97944f504 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -846,7 +846,7 @@ void setNumGates(int val) { } } -int getNumExtGates() { return bus_r(ASIC_EXP_EXT_GATE_NUMBER_REG); } +int getNumGates() { return bus_r(ASIC_EXP_EXT_GATE_NUMBER_REG); } void updateGatePeriod() { uint64_t max = 0; @@ -863,21 +863,27 @@ void updateGatePeriod() { ASIC_EXP_GATE_PERIOD_MSB_REG); } -int setExptime(int gateIndex, int64_t val) { +int64_t getGatePeriod() { + return get64BitReg(ASIC_EXP_GATE_PERIOD_LSB_REG, + ASIC_EXP_GATE_PERIOD_MSB_REG) / + (1E-9 * getFrequency(SYSTEM_C2)); +} + +int setExpTime(int gateIndex, int64_t val) { uint32_t alsb = 0; uint32_t amsb = 0; switch (gateIndex) { case 0: alsb = ASIC_EXP_GATE_0_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; break; case 1: alsb = ASIC_EXP_GATE_1_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; break; case 2: alsb = ASIC_EXP_GATE_2_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; break; default: LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); @@ -905,19 +911,21 @@ int setExptime(int gateIndex, int64_t val) { return OK; } -int64_t getExptime(int gateIndex) { +int64_t getExpTime(int gateIndex) { + uint32_t alsb = 0; + uint32_t amsb = 0; switch (gateIndex) { case 0: alsb = ASIC_EXP_GATE_0_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_0_WIDTH_MSB_REG; break; case 1: alsb = ASIC_EXP_GATE_1_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_1_WIDTH_MSB_REG; break; case 2: alsb = ASIC_EXP_GATE_2_WIDTH_LSB_REG; - blsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; + amsb = ASIC_EXP_GATE_2_WIDTH_MSB_REG; break; default: LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); @@ -932,15 +940,15 @@ int setGateDelay(int gateIndex, int64_t val) { switch (gateIndex) { case 0: alsb = ASIC_EXP_GATE_0_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; break; case 1: alsb = ASIC_EXP_GATE_1_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; break; case 2: alsb = ASIC_EXP_GATE_2_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; break; default: LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); @@ -969,18 +977,20 @@ int setGateDelay(int gateIndex, int64_t val) { } int64_t getGateDelay(int gateIndex) { + uint32_t alsb = 0; + uint32_t amsb = 0; switch (gateIndex) { case 0: alsb = ASIC_EXP_GATE_0_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_0_DELAY_MSB_REG; break; case 1: alsb = ASIC_EXP_GATE_1_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_1_DELAY_MSB_REG; break; case 2: alsb = ASIC_EXP_GATE_2_DELAY_LSB_REG; - blsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; + amsb = ASIC_EXP_GATE_2_DELAY_MSB_REG; break; default: LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); @@ -1205,16 +1215,6 @@ void setTiming(enum timingMode arg) { LOG(logERROR, ("Unknown timing mode %d\n", arg)); return; } - // internal gating - if (arg == AUTO_TIMING || arg == TRIGGER_EXPOSURE) { - setNumGates(1); // should be in firmware - // TOOD: number of counters-> set appropriate gatewidth and - // gatedelay to 0 - setMaxGatePulseWidth(); - } - // external gating - else { - } } } @@ -1942,7 +1942,7 @@ void *start_timer(void *arg) { int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers()); - int64_t expUs = getExpTime() / 1000; + int64_t expUs = getGatePeriod() / 1000; // int dr = setDynamicRange(-1); int imagesize = calculateDataBytes(); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index b36ad13d6..1cdbf2241 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -214,8 +214,10 @@ int64_t getPeriod(); void setNumIntGates(int val); void setNumGates(int val); int getNumGates(); -int setExptime(int gateIndex, int64_t val); -int64_t getExptime(int gateIndex); +void updateGatePeriod(); +int64_t getGatePeriod(); +int setExpTime(int gateIndex, int64_t val); +int64_t getExpTime(int gateIndex); int setGateDelay(int gateIndex, int64_t val); int64_t getGateDelay(int gateIndex); #endif diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 2e92c912b..9fecc7caf 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -329,12 +329,12 @@ void function_table() { flist[F_UPDATE_RATE_CORRECTION] = &update_rate_correction; flist[F_GET_RECEIVER_PARAMETERS] = &get_receiver_parameters; flist[F_START_PATTERN] = &start_pattern; - FLIST[F_SET_NUM_GATES] = &set_num_gates; - FLIST[F_GET_NUM_GATES] = &get_num_gates; - FLIST[F_SET_GATE_DELAY] = &set_gate_delay; - FLIST[F_GET_GATE_DELAY] = &get_gate_delay; - flist[F_GET_EXPTIME_ALL_GATES = &get_exptime_all_gates; - flist[F_GET_GATE_DELAY_ALL_GATES = &get_gate_delay_all_gates; + flist[F_SET_NUM_GATES] = &set_num_gates; + flist[F_GET_NUM_GATES] = &get_num_gates; + flist[F_SET_GATE_DELAY] = &set_gate_delay; + flist[F_GET_GATE_DELAY] = &get_gate_delay; + flist[F_GET_EXPTIME_ALL_GATES] = &get_exptime_all_gates; + flist[F_GET_GATE_DELAY_ALL_GATES] = &get_gate_delay_all_gates; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { @@ -2107,7 +2107,7 @@ int get_exptime(int file_des) { gateIndex); LOG(logERROR, (mess)); } else { - retval = getExptime(gateIndex); + retval = getExpTime(gateIndex); LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); } #else @@ -6953,8 +6953,12 @@ int get_receiver_parameters(int file_des) { if (n < 0) return printSocketReadError(); - // exptime + // exptime +#ifdef MYTHEN3D + i64 = getExpTime(0); +#else i64 = getExpTime(); +#endif n += sendData(file_des, &i64, sizeof(i64), INT64); if (n < 0) return printSocketReadError(); @@ -7212,6 +7216,7 @@ int set_gate_delay(int file_des) { } } } + } #endif return Server_SendResult(file_des, INT64, NULL, 0); } @@ -7228,19 +7233,18 @@ int get_gate_delay(int file_des) { #if !defined(MYTHEN3D) functionNotImplemented(); #else - // get only - if (gateIndex < 0 || gateIndex > 2) { - ret = FAIL; - sprintf(mess, - "Could not set gate delay. Invalid gate index %d. " - "Options [0-2]\n", - gateIndex); - LOG(logERROR, (mess)); - } else { - retval = getGateDelay(gateIndex); - LOG(logDEBUG1, - ("retval gate delay %lld ns\n", (long long int)retval)); - } + // get only + if (gateIndex < 0 || gateIndex > 2) { + ret = FAIL; + sprintf(mess, + "Could not set gate delay. Invalid gate index %d. " + "Options [0-2]\n", + gateIndex); + LOG(logERROR, (mess)); + } else { + retval = getGateDelay(gateIndex); + LOG(logDEBUG1, ("retval gate delay %lld ns\n", (long long int)retval)); + } #endif return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } @@ -7253,11 +7257,11 @@ int get_exptime_all_gates(int file_des) { #if !defined(MYTHEN3D) functionNotImplemented(); #else - for (int i = 0; i != 2; ++i) { - retvals[i] = getExpTime(i); - LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", - (long long int)retvals[i], i)); - } + for (int i = 0; i != 2; ++i) { + retvals[i] = getExpTime(i); + LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", + (long long int)retvals[i], i)); + } #endif return Server_SendResult(file_des, INT64, retvals, sizeof(retvals)); } @@ -7270,11 +7274,11 @@ int get_gate_delay_all_gates(int file_des) { #if !defined(MYTHEN3D) functionNotImplemented(); #else - for (int i = 0; i != 2; ++i) { - retvals[i] = getGateDelay(i); - LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", - (long long int)retvals[i], i)); - } + for (int i = 0; i != 2; ++i) { + retvals[i] = getGateDelay(i); + LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", + (long long int)retvals[i], i)); + } #endif return Server_SendResult(file_des, INT64, retvals, sizeof(retvals)); } diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index e0875d7fc..5bca7fd7b 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -381,7 +381,7 @@ std::string CmdProxy::Exptime(int action) { WrongNumberOfParameters(1); } // vector of exptimes - if (gateIndex == -1 & + if (gateIndex == -1 && det->getDetectorType().squash() == defs::MYTHEN3) { auto t = det->getExptimeForAllGates({det_id}); if (args.size() == 0) { @@ -410,14 +410,14 @@ std::string CmdProxy::Exptime(int action) { std::string time_str(args[0]); std::string unit = RemoveUnit(time_str); auto t = StringTo(time_str, unit); - if (type == MYTHEN3) { + if (type == defs::MYTHEN3) { det->setExptime(gateIndex, t, {det_id}); } else { det->setExptime(t, {det_id}); } } else if (args.size() == 2) { auto t = StringTo(args[0], args[1]); - if (type == MYTHEN3) { + if (type == defs::MYTHEN3) { det->setExptime(gateIndex, t, {det_id}); } else { det->setExptime(t, {det_id}); @@ -434,6 +434,7 @@ std::string CmdProxy::Exptime(int action) { } else { throw sls::RuntimeError("Unknown action"); } + return os.str(); } std::string CmdProxy::Speed(int action) { @@ -1777,6 +1778,7 @@ std::string CmdProxy::GateDelay(int action) { } else { throw sls::RuntimeError("Unknown action"); } + return os.str(); } /* CTB / Moench Specific */ diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 8af4d6ac7..76c2bbc9a 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1275,7 +1275,14 @@ void Detector::setExptime(int gateIndex, ns t, Positions pos) { } Result> Detector::getExptimeForAllGates(Positions pos) const { - return pimpl->Parallel(&Module::getExptimeForAllGates, pos); + auto t = pimpl->Parallel(&Module::getExptimeForAllGates, pos); + Result> res(t.size()); + for (unsigned int i = 0; i < t.size(); ++i) { + for (unsigned int j = 0; j != 3; ++j) { + res[i][j] = static_cast(t[i][j]); + } + } + return res; } Result Detector::getGateDelay(int gateIndex, Positions pos) const { @@ -1288,7 +1295,14 @@ void Detector::setGateDelay(int gateIndex, ns t, Positions pos) { Result> Detector::getGateDelayForAllGates(Positions pos) const { - return pimpl->Parallel(&Module::getGateDelayForAllGates, pos); + auto t = pimpl->Parallel(&Module::getGateDelayForAllGates, pos); + Result> res(t.size()); + for (unsigned int i = 0; i < t.size(); ++i) { + for (unsigned int j = 0; j != 3; ++j) { + res[i][j] = static_cast(t[i][j]); + } + } + return res; } // CTB/ Moench Specific diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 8131cbcaf..6a2e06e51 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1041,7 +1041,7 @@ int64_t Module::getExptime(int gateIndex) { void Module::setExptime(int gateIndex, int64_t value) { int64_t prevVal = value; if (shm()->myDetectorType == EIGER) { - prevVal = getExptime(); + prevVal = getExptime(-1); } LOG(logDEBUG1) << "Setting exptime to " << value << "ns (gateindex: " << gateIndex << ")"; @@ -1056,8 +1056,10 @@ void Module::setExptime(int gateIndex, int64_t value) { } } -std::array Module::getExptimeForAllGates() { - return sendToDetector(F_GET_EXPTIME_ALL_GATES); +std::array Module::getExptimeForAllGates() { + std::array retval; + sendToDetector(F_GET_EXPTIME_ALL_GATES, nullptr, retval); + return retval; } int64_t Module::getGateDelay(int gateIndex) { @@ -1071,8 +1073,10 @@ void Module::setGateDelay(int gateIndex, int64_t value) { sendToDetector(F_SET_GATE_DELAY, args, nullptr); } -std::array Module::getGateDelayForAllGates() { - return sendToDetector(F_GET_GATE_DELAY_ALL_GATES); +std::array Module::getGateDelayForAllGates() { + std::array retval; + sendToDetector(F_GET_GATE_DELAY_ALL_GATES, nullptr, retval); + return retval; } int64_t Module::getPeriod() { return sendToDetector(F_GET_PERIOD); } diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index fb42dd31c..03ba3a3d6 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -432,7 +432,7 @@ class Module : public virtual slsDetectorDefs { void setExptime(int gateIndex, int64_t value); /** [Mythen3] for all gates */ - std::array getExptimeForAllGates(); + std::array getExptimeForAllGates(); /** [Mythen3] gatIndex: 0-2 */ int64_t getGateDelay(int gateIndex); @@ -441,7 +441,7 @@ class Module : public virtual slsDetectorDefs { void setGateDelay(int gateIndex, int64_t value); /** [Mythen3] for all gates */ - std::array getGateDelayForAllGates(); + std::array getGateDelayForAllGates(); int64_t getPeriod(); From 6d71d6cf9f05b4c25210dce00088fae203c087c5 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 19 May 2020 19:11:05 +0200 Subject: [PATCH 07/30] fix with virtual server --- .../mythen3DetectorServer/slsDetectorFunctionList.c | 8 ++++---- .../slsDetectorServer/src/slsDetectorServer_funcs.c | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 97944f504..321c8cbd8 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -430,7 +430,7 @@ void setupDetector() { setTiming(DEFAULT_TIMING_MODE); setNumIntGates(DEFAULT_INTERNAL_GATES); setNumGates(DEFAULT_EXTERNAL_GATES); - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { setExpTime(i, DEFAULT_GATE_WIDTH); setGateDelay(i, DEFAULT_GATE_DELAY); } @@ -850,7 +850,7 @@ int getNumGates() { return bus_r(ASIC_EXP_EXT_GATE_NUMBER_REG); } void updateGatePeriod() { uint64_t max = 0; - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { // TODO: only those counters enabled (when updated to mask in firmware) uint64_t sum = getExpTime(i) + getGateDelay(i); if (sum > max) { @@ -1219,9 +1219,9 @@ void setTiming(enum timingMode arg) { } enum timingMode getTiming() { - uint32_t extTrigger = (bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); + uint32_t extTrigger = (bus_r(EXT_SIGNAL_REG) & EXT_SIGNAL_MSK); uint32_t extGate = - (bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); + (bus_r(ASIC_EXP_STATUS_REG) & ASIC_EXP_STAT_GATE_SRC_EXT_MSK); if (extTrigger) { if (extGate) { // external trigger, external gating diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 9fecc7caf..4ee393f92 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -2163,7 +2163,7 @@ int set_exptime(int file_des) { } // all gate indices else { - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { ret = setExpTime(i, val); int64_t retval = getExpTime(i); LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", @@ -7199,7 +7199,7 @@ int set_gate_delay(int file_des) { } // all gate indices else { - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { ret = setGateDelay(i, val); int64_t retval = getGateDelay(i); LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", @@ -7257,10 +7257,10 @@ int get_exptime_all_gates(int file_des) { #if !defined(MYTHEN3D) functionNotImplemented(); #else - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { retvals[i] = getExpTime(i); - LOG(logDEBUG1, ("retval exptime %lld ns (index:%d)\n", - (long long int)retvals[i], i)); + LOG(logINFO, ("retval exptime %lld ns (index:%d)\n", + (long long int)retvals[i], i)); } #endif return Server_SendResult(file_des, INT64, retvals, sizeof(retvals)); @@ -7274,7 +7274,7 @@ int get_gate_delay_all_gates(int file_des) { #if !defined(MYTHEN3D) functionNotImplemented(); #else - for (int i = 0; i != 2; ++i) { + for (int i = 0; i != 3; ++i) { retvals[i] = getGateDelay(i); LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", (long long int)retvals[i], i)); From 761f93d75332447a0744206e7a41b60778d351b1 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 20 May 2020 09:36:43 +0200 Subject: [PATCH 08/30] exptime of gates --- slsDetectorSoftware/src/Detector.cpp | 6 +++--- slsDetectorSoftware/src/Module.cpp | 9 ++++----- slsSupportLib/include/ToString.h | 4 +--- slsSupportLib/tests/test-ToString.cpp | 6 ++++++ 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 76c2bbc9a..520034748 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1277,9 +1277,9 @@ void Detector::setExptime(int gateIndex, ns t, Positions pos) { Result> Detector::getExptimeForAllGates(Positions pos) const { auto t = pimpl->Parallel(&Module::getExptimeForAllGates, pos); Result> res(t.size()); - for (unsigned int i = 0; i < t.size(); ++i) { - for (unsigned int j = 0; j != 3; ++j) { - res[i][j] = static_cast(t[i][j]); + for (size_t i = 0; i < t.size(); ++i) { + for (size_t j = 0; j != 3; ++j) { + res[i][j] = ns(t[i][j]); } } return res; diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 6a2e06e51..20a812f63 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -151,7 +151,7 @@ template Ret Module::sendToDetector(int fnum) { << sizeof(Ret) << "]"; Ret retval{}; sendToDetector(fnum, nullptr, 0, &retval, sizeof(retval)); - LOG(logDEBUG1) << "Got back: " << retval; + LOG(logDEBUG1) << "Got back: " << ToString(retval); return retval; } @@ -163,7 +163,7 @@ Ret Module::sendToDetector(int fnum, const Arg &args) { << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; Ret retval{}; sendToDetector(fnum, &args, sizeof(args), &retval, sizeof(retval)); - LOG(logDEBUG1) << "Got back: " << retval; + LOG(logDEBUG1) << "Got back: " << ToString(retval); return retval; } @@ -1057,9 +1057,8 @@ void Module::setExptime(int gateIndex, int64_t value) { } std::array Module::getExptimeForAllGates() { - std::array retval; - sendToDetector(F_GET_EXPTIME_ALL_GATES, nullptr, retval); - return retval; + return sendToDetector>(F_GET_EXPTIME_ALL_GATES); + } int64_t Module::getGateDelay(int gateIndex) { diff --git a/slsSupportLib/include/ToString.h b/slsSupportLib/include/ToString.h index 6e20f69dc..267221516 100644 --- a/slsSupportLib/include/ToString.h +++ b/slsSupportLib/include/ToString.h @@ -12,6 +12,7 @@ #include "sls_detector_defs.h" #include "sls_detector_exceptions.h" #include "string_utils.h" +#include #include #include #include @@ -38,9 +39,6 @@ std::string ToString(const defs::timingSourceType s); std::string ToString(const slsDetectorDefs::ROI &roi); std::ostream &operator<<(std::ostream &os, const slsDetectorDefs::ROI &roi); - - - const std::string &ToString(const std::string &s); /** Convert std::chrono::duration with specified output unit */ diff --git a/slsSupportLib/tests/test-ToString.cpp b/slsSupportLib/tests/test-ToString.cpp index 70151bf73..952f71182 100644 --- a/slsSupportLib/tests/test-ToString.cpp +++ b/slsSupportLib/tests/test-ToString.cpp @@ -232,3 +232,9 @@ TEST_CASE("Streaming of slsDetectorDefs::ROI") { REQUIRE(oss.str() == "[-10, 1]"); } +TEST_CASE("std::array"){ + std::array arr{4,6,7}; + REQUIRE(ToString(arr) == "[4, 6, 7]"); +} + + From 30fc346e22d03317c770289265906f8a46a5991f Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 20 May 2020 09:47:41 +0200 Subject: [PATCH 09/30] directly writing exptime --- slsDetectorSoftware/src/Detector.cpp | 9 +-------- slsDetectorSoftware/src/Module.cpp | 5 +++-- slsDetectorSoftware/src/Module.h | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 520034748..bb627f285 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1275,14 +1275,7 @@ void Detector::setExptime(int gateIndex, ns t, Positions pos) { } Result> Detector::getExptimeForAllGates(Positions pos) const { - auto t = pimpl->Parallel(&Module::getExptimeForAllGates, pos); - Result> res(t.size()); - for (size_t i = 0; i < t.size(); ++i) { - for (size_t j = 0; j != 3; ++j) { - res[i][j] = ns(t[i][j]); - } - } - return res; + return pimpl->Parallel(&Module::getExptimeForAllGates, pos); } Result Detector::getGateDelay(int gateIndex, Positions pos) const { diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 20a812f63..5e7c0329b 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1056,8 +1056,9 @@ void Module::setExptime(int gateIndex, int64_t value) { } } -std::array Module::getExptimeForAllGates() { - return sendToDetector>(F_GET_EXPTIME_ALL_GATES); +std::array Module::getExptimeForAllGates() { + static_assert(sizeof(time::ns) == 8, "ns needs to be 64bit"); + return sendToDetector>(F_GET_EXPTIME_ALL_GATES); } diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 03ba3a3d6..81ced7b4a 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -432,7 +432,7 @@ class Module : public virtual slsDetectorDefs { void setExptime(int gateIndex, int64_t value); /** [Mythen3] for all gates */ - std::array getExptimeForAllGates(); + std::array getExptimeForAllGates(); /** [Mythen3] gatIndex: 0-2 */ int64_t getGateDelay(int gateIndex); From fa768e584e093fd5e4a637ba6a0647f1bc720504 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 10:14:57 +0200 Subject: [PATCH 10/30] rxr --- .../src/slsDetectorServer_funcs.c | 72 +++++++++++- slsDetectorSoftware/src/Module.cpp | 19 +++- slsReceiverSoftware/src/BinaryFile.cpp | 15 ++- slsReceiverSoftware/src/ClientInterface.cpp | 107 +++++++++++++++++- slsReceiverSoftware/src/ClientInterface.h | 4 +- slsReceiverSoftware/src/HDF5File.cpp | 92 +++++++++++++++ slsReceiverSoftware/src/Implementation.cpp | 77 +++++++++++++ slsReceiverSoftware/src/Implementation.h | 26 +++++ slsReceiverSoftware/src/receiver_defs.h | 11 +- slsSupportLib/include/sls_detector_defs.h | 7 ++ slsSupportLib/include/sls_detector_funcs.h | 4 + 11 files changed, 421 insertions(+), 13 deletions(-) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 4ee393f92..2c0ca344f 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -6955,7 +6955,7 @@ int get_receiver_parameters(int file_des) { // exptime #ifdef MYTHEN3D - i64 = getExpTime(0); + i64 = 0; #else i64 = getExpTime(); #endif @@ -7099,6 +7099,76 @@ int get_receiver_parameters(int file_des) { if (n < 0) return printSocketReadError(); + // exptime1 +#ifdef MYTHEN3D + i64 = getExpTime(0); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // exptime2 +#ifdef MYTHEN3D + i64 = getExpTime(1); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // exptime3 +#ifdef MYTHEN3D + i64 = getExpTime(2); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // gatedelay1 +#ifdef MYTHEN3D + i64 = getGateDelay(0); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // gatedelay2 +#ifdef MYTHEN3D + i64 = getGateDelay(1); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // gatedelay3 +#ifdef MYTHEN3D + i64 = getGateDelay(2); +#else + i64 = 0; +#endif + n += sendData(file_des, &i64, sizeof(i64), INT64); + if (n < 0) + return printSocketReadError(); + + // gates +#ifdef MYTHEN3D + i32 = getNumGates(); +#else + i32 = 0; +#endif + n += sendData(file_des, &i32, sizeof(i32), INT32); + if (n < 0) + return printSocketReadError(); + LOG(logINFO, ("Sent %d bytes for receiver parameters\n", n)); return OK; diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 6a2e06e51..d1b696f81 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1032,6 +1032,10 @@ int Module::getNumberOfGates() { return sendToDetector(F_GET_NUM_GATES); } void Module::setNumberOfGates(int value) { LOG(logDEBUG1) << "Setting number of gates to " << value; sendToDetector(F_SET_NUM_GATES, value, nullptr); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending number of gates to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_NUM_GATES, value, nullptr); + } } int64_t Module::getExptime(int gateIndex) { @@ -1049,7 +1053,7 @@ void Module::setExptime(int gateIndex, int64_t value) { sendToDetector(F_SET_EXPTIME, args, nullptr); if (shm()->useReceiverFlag) { LOG(logDEBUG1) << "Sending exptime to Receiver: " << value; - sendToReceiver(F_RECEIVER_SET_EXPTIME, value, nullptr); + sendToReceiver(F_RECEIVER_SET_EXPTIME, args, nullptr); } if (prevVal != value) { updateRateCorrection(); @@ -1071,6 +1075,10 @@ void Module::setGateDelay(int gateIndex, int64_t value) { << "ns (gateindex: " << gateIndex << ")"; int64_t args[]{static_cast(gateIndex), value}; sendToDetector(F_SET_GATE_DELAY, args, nullptr); + if (shm()->useReceiverFlag) { + LOG(logDEBUG1) << "Sending gate delay to Receiver: " << value; + sendToReceiver(F_SET_RECEIVER_GATE_DELAY, args, nullptr); + } } std::array Module::getGateDelayForAllGates() { @@ -1473,7 +1481,14 @@ void Module::setReceiverHostname(const std::string &receiverIP) { << "roi.xmin:" << retval.roi.xmin << std::endl << "roi.xmax:" << retval.roi.xmax << std::endl << "countermask:" << retval.countermask << std::endl - << "burstType:" << retval.burstType << std::endl; + << "burstType:" << retval.burstType << std::endl + << "exptime1:" << retval.expTime1Ns << std::endl + << "exptime2:" << retval.expTime2Ns << std::endl + << "exptime3:" << retval.expTime3Ns << std::endl + << "gateDelay1:" << retval.gateDelay1Ns << std::endl + << "gateDelay2:" << retval.gateDelay2Ns << std::endl + << "gateDelay3:" << retval.gateDelay3Ns << std::endl + << "gates:" << retval.gates << std::endl; sls::MacAddr retvals[2]; sendToReceiver(F_SETUP_RECEIVER, retval, retvals); diff --git a/slsReceiverSoftware/src/BinaryFile.cpp b/slsReceiverSoftware/src/BinaryFile.cpp index 36fdfde52..b94b4ec4a 100644 --- a/slsReceiverSoftware/src/BinaryFile.cpp +++ b/slsReceiverSoftware/src/BinaryFile.cpp @@ -191,6 +191,13 @@ void BinaryFile::CreateMasterFile(bool masterFileWriteEnable, "Dbit Offset : %d\n" "Dbit Bitset : %lld\n" "Roi (xmin, xmax) : %d %d\n" + "Exptime1 (ns) : %lld\n" + "Exptime2 (ns) : %lld\n" + "Exptime3 (ns) : %lld\n" + "GateDelay1 (ns) : %lld\n" + "GateDelay2 (ns) : %lld\n" + "GateDelay3 (ns) : %lld\n" + "Gates : %d\n" "Timestamp : %s\n\n" "#Frame Header\n" @@ -224,7 +231,13 @@ void BinaryFile::CreateMasterFile(bool masterFileWriteEnable, masterFileAttributes.dbitoffset, (long long int)masterFileAttributes.dbitlist, masterFileAttributes.roiXmin, masterFileAttributes.roiXmax, - ctime(&t)); + (long long int)masterFileAttributes.exptime1Ns, + (long long int)masterFileAttributes.exptime2Ns, + (long long int)masterFileAttributes.exptime3Ns, + (long long int)masterFileAttributes.gateDelay1Ns, + (long long int)masterFileAttributes.gateDelay2Ns, + (long long int)masterFileAttributes.gateDelay3Ns, + masterFileAttributes.gates, ctime(&t)); if (strlen(message) > maxMasterFileSize) { throw sls::RuntimeError("Master File Size " + std::to_string(strlen(message)) + diff --git a/slsReceiverSoftware/src/ClientInterface.cpp b/slsReceiverSoftware/src/ClientInterface.cpp index f0d092727..af33f4cec 100644 --- a/slsReceiverSoftware/src/ClientInterface.cpp +++ b/slsReceiverSoftware/src/ClientInterface.cpp @@ -197,7 +197,9 @@ int ClientInterface::functionTable(){ flist[F_SET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::set_additional_json_parameter; flist[F_GET_ADDITIONAL_JSON_PARAMETER] = &ClientInterface::get_additional_json_parameter; flist[F_GET_RECEIVER_PROGRESS] = &ClientInterface::get_progress; - + flist[F_SET_RECEIVER_NUM_GATES] = &ClientInterface::set_num_gates; + flist[F_SET_RECEIVER_GATE_DELAY] = &ClientInterface::set_gate_delay; + for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) { LOG(logDEBUG1) << "function fnum: " << i << " (" << getFunctionNameFromEnum((enum detFuncs)i) << ") located at " << flist[i]; @@ -368,7 +370,14 @@ int ClientInterface::setup_receiver(Interface &socket) { << "roi.xmin:" << arg.roi.xmin << std::endl << "roi.xmax:" << arg.roi.xmax << std::endl << "countermask:" << arg.countermask << std::endl - << "burstType:" << arg.burstType << std::endl; + << "burstType:" << arg.burstType << std::endl + << "exptime1:" << arg.expTime1Ns << std::endl + << "exptime2:" << arg.expTime2Ns << std::endl + << "exptime3:" << arg.expTime3Ns << std::endl + << "gateDelay1:" << arg.gateDelay1Ns << std::endl + << "gateDelay2:" << arg.gateDelay2Ns << std::endl + << "gateDelay3:" << arg.gateDelay3Ns << std::endl + << "gates:" << arg.gates << std::endl; // if object exists, verify unlocked and idle, else only verify lock // (connecting first time) @@ -438,7 +447,9 @@ int ClientInterface::setup_receiver(Interface &socket) { " due to fifo structure memory allocation."); } } - impl()->setAcquisitionTime(arg.expTimeNs); + if (myDetectorType != MYTHEN3) { + impl()->setAcquisitionTime(arg.expTimeNs); + } impl()->setAcquisitionPeriod(arg.periodNs); if (myDetectorType == EIGER) { impl()->setSubExpTime(arg.subExpTimeNs); @@ -502,6 +513,13 @@ int ClientInterface::setup_receiver(Interface &socket) { if (myDetectorType == MYTHEN3) { int ncounters = __builtin_popcount(arg.countermask); impl()->setNumberofCounters(ncounters); + impl()->setAcquisitionTime1(arg.expTime1Ns); + impl()->setAcquisitionTime2(arg.expTime2Ns); + impl()->setAcquisitionTime3(arg.expTime3Ns); + impl()->setGateDelay1(arg.gateDelay1Ns); + impl()->setGateDelay2(arg.gateDelay2Ns); + impl()->setGateDelay3(arg.gateDelay3Ns); + impl()->setNumberOfGates(arg.gates); } if (myDetectorType == GOTTHARD) { impl()->setBurstMode(arg.burstType); @@ -679,9 +697,44 @@ int ClientInterface::set_num_digital_samples(Interface &socket) { } int ClientInterface::set_exptime(Interface &socket) { - auto value = socket.Receive(); - LOG(logDEBUG1) << "Setting exptime to " << value << "ns"; - impl()->setAcquisitionTime(value); + int64_t args[2]{-1, -1}; + socket.Receive(args); + int gateIndex = static_cast(args[0]); + int64_t value = args[1]; + LOG(logDEBUG1) << "Setting exptime to " << value + << "ns (gateIndex: " << gateIndex << ")"; + switch (gateIndex) { + case -1: + if (myDetectorType == MYTHEN3) { + impl()->setAcquisitionTime1(value); + impl()->setAcquisitionTime2(value); + impl()->setAcquisitionTime3(value); + } else { + impl()->setAcquisitionTime(value); + } + break; + case 0: + if (myDetectorType != MYTHEN3) { + functionNotImplemented(); + } + impl()->setAcquisitionTime1(value); + break; + case 1: + if (myDetectorType != MYTHEN3) { + functionNotImplemented(); + } + impl()->setAcquisitionTime2(value); + break; + case 2: + if (myDetectorType != MYTHEN3) { + functionNotImplemented(); + } + impl()->setAcquisitionTime3(value); + break; + default: + throw RuntimeError("Unknown gate index for exptime " + + std::to_string(gateIndex)); + } return socket.Send(OK); } @@ -1651,4 +1704,46 @@ int ClientInterface::get_progress(Interface &socket) { int retval = impl()->getProgress(); LOG(logDEBUG1) << "progress retval: " << retval; return socket.sendResult(retval); +} + +int ClientInterface::set_num_gates(Interface &socket) { + auto value = socket.Receive(); + LOG(logDEBUG1) << "Setting num gates to " << value; + if (myDetectorType != MYTHEN3) { + functionNotImplemented(); + } + impl()->setNumberOfGates(value); + return socket.Send(OK); +} + +int ClientInterface::set_gate_delay(Interface &socket) { + int64_t args[2]{-1, -1}; + socket.Receive(args); + int gateIndex = static_cast(args[0]); + int64_t value = args[1]; + LOG(logDEBUG1) << "Setting gate delay to " << value + << "ns (gateIndex: " << gateIndex << ")"; + if (myDetectorType != MYTHEN3) { + functionNotImplemented(); + } + switch (gateIndex) { + case -1: + impl()->setGateDelay1(value); + impl()->setGateDelay2(value); + impl()->setGateDelay3(value); + break; + case 0: + impl()->setGateDelay1(value); + break; + case 1: + impl()->setGateDelay2(value); + break; + case 2: + impl()->setGateDelay3(value); + break; + default: + throw RuntimeError("Unknown gate index for gate delay " + + std::to_string(gateIndex)); + } + return socket.Send(OK); } \ No newline at end of file diff --git a/slsReceiverSoftware/src/ClientInterface.h b/slsReceiverSoftware/src/ClientInterface.h index ae80592ce..76eb3aa2f 100644 --- a/slsReceiverSoftware/src/ClientInterface.h +++ b/slsReceiverSoftware/src/ClientInterface.h @@ -2,8 +2,8 @@ #include "Implementation.h" #include "ServerSocket.h" #include "receiver_defs.h" -#include "sls_detector_funcs.h" #include "sls_detector_defs.h" +#include "sls_detector_funcs.h" class ServerInterface; #include @@ -153,6 +153,8 @@ class ClientInterface : private virtual slsDetectorDefs { int set_additional_json_parameter(sls::ServerInterface &socket); int get_additional_json_parameter(sls::ServerInterface &socket); int get_progress(sls::ServerInterface &socket); + int set_num_gates(sls::ServerInterface &socket); + int set_gate_delay(sls::ServerInterface &socket); Implementation *impl() { if (receiver != nullptr) { diff --git a/slsReceiverSoftware/src/HDF5File.cpp b/slsReceiverSoftware/src/HDF5File.cpp index 550d3fd50..136bbf2c3 100644 --- a/slsReceiverSoftware/src/HDF5File.cpp +++ b/slsReceiverSoftware/src/HDF5File.cpp @@ -725,6 +725,98 @@ void HDF5File::CreateMasterDataFile(masterAttributes &masterFileAttributes) { PredType::NATIVE_INT); } + // Exptime1 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "exposure time1", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.exptime1Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // Exptime2 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "exposure time2", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.exptime2Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // Exptime3 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "exposure time3", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.exptime3Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // GateDelay1 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "gate delay1", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.gateDelay1Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // GateDelay2 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "gate delay2", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.gateDelay2Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // GateDelay3 + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = group5.createDataSet( + "gate delay3", PredType::STD_U64LE, dataspace); + dataset.write(&(masterFileAttributes.gateDelay3Ns), + PredType::STD_U64LE); + DataSpace dataspaceAttr = DataSpace(H5S_SCALAR); + StrType strdatatype(PredType::C_S1, 256); + Attribute attribute = + dataset.createAttribute("unit", strdatatype, dataspaceAttr); + attribute.write(strdatatype, std::string("ns")); + } + + // Dbit Offset + { + DataSpace dataspace = DataSpace(H5S_SCALAR); + DataSet dataset = + group5.createDataSet("gates", PredType::NATIVE_INT, dataspace); + dataset.write(&(masterFileAttributes.gates), PredType::NATIVE_INT); + } + // Timestamp { time_t t = time(0); diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 8534471ef..9c3a01913 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -100,10 +100,17 @@ void Implementation::InitializeMembers() { numberOfTriggers = 1; numberOfBursts = 1; numberOfAdditionalStorageCells = 0; + numberOfGates = 0; timingMode = AUTO_TIMING; burstMode = BURST_OFF; acquisitionPeriod = SAMPLE_TIME_IN_NS; acquisitionTime = 0; + acquisitionTime1 = 0; + acquisitionTime2 = 0; + acquisitionTime3 = 0; + gateDelay1 = 0; + gateDelay2 = 0; + gateDelay3 = 0; subExpTime = 0; subPeriod = 0; numberOfAnalogSamples = 0; @@ -889,6 +896,13 @@ void Implementation::SetupWriter() { for (auto &i : ctbDbitList) { attr.dbitlist |= (1 << i); } + attr.exptime1Ns = acquisitionTime1; + attr.exptime2Ns = acquisitionTime2; + attr.exptime3Ns = acquisitionTime3; + attr.gateDelay1Ns = gateDelay1; + attr.gateDelay2Ns = gateDelay2; + attr.gateDelay3Ns = gateDelay3; + attr.gates = numberOfGates; try { for (unsigned int i = 0; i < dataProcessor.size(); ++i) { @@ -1343,6 +1357,12 @@ void Implementation::setNumberOfAdditionalStorageCells(const int i) { updateTotalNumberOfFrames(); } +void Implementation::setNumberOfGates(const int i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + numberOfGates = i; + LOG(logINFO) << "Number of Gates: " << numberOfGates; +} + slsDetectorDefs::timingMode Implementation::getTimingMode() const { LOG(logDEBUG3) << __SHORT_AT__ << " called"; return timingMode; @@ -1385,6 +1405,15 @@ uint64_t Implementation::getAcquisitionTime() const { return acquisitionTime; } +void Implementation::updateAcquisitionTime() { + if (acquisitionTime1 == acquisitionTime2 && + acquisitionTime2 == acquisitionTime3) { + acquisitionTime = acquisitionTime1; + } else { + acquisitionTime = -1; + } +} + void Implementation::setAcquisitionTime(const uint64_t i) { LOG(logDEBUG3) << __SHORT_AT__ << " called"; @@ -1393,6 +1422,54 @@ void Implementation::setAcquisitionTime(const uint64_t i) { << "s"; } +void Implementation::setAcquisitionTime1(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + acquisitionTime1 = i; + LOG(logINFO) << "Acquisition Time1: " << (double)acquisitionTime1 / (1E9) + << "s"; + updateAcquisitionTime(); +} + +void Implementation::setAcquisitionTime2(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + acquisitionTime2 = i; + LOG(logINFO) << "Acquisition Time2: " << (double)acquisitionTime2 / (1E9) + << "s"; + updateAcquisitionTime(); +} + +void Implementation::setAcquisitionTime3(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + acquisitionTime3 = i; + LOG(logINFO) << "Acquisition Time3: " << (double)acquisitionTime3 / (1E9) + << "s"; + updateAcquisitionTime(); +} + +void Implementation::setGateDelay1(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + gateDelay1 = i; + LOG(logINFO) << "Gate Delay1: " << (double)gateDelay1 / (1E9) << "s"; +} + +void Implementation::setGateDelay2(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + gateDelay2 = i; + LOG(logINFO) << "Gate Delay2: " << (double)gateDelay2 / (1E9) << "s"; +} + +void Implementation::setGateDelay3(const uint64_t i) { + LOG(logDEBUG3) << __SHORT_AT__ << " called"; + + gateDelay3 = i; + LOG(logINFO) << "Gate Delay3: " << (double)gateDelay3 / (1E9) << "s"; +} + uint64_t Implementation::getSubExpTime() const { LOG(logDEBUG3) << __SHORT_AT__ << " called"; return subExpTime; diff --git a/slsReceiverSoftware/src/Implementation.h b/slsReceiverSoftware/src/Implementation.h index 727929ff8..0a91fd3c7 100644 --- a/slsReceiverSoftware/src/Implementation.h +++ b/slsReceiverSoftware/src/Implementation.h @@ -140,15 +140,34 @@ class Implementation : private virtual slsDetectorDefs { uint64_t getNumberOfTriggers() const; void setNumberOfTriggers(const uint64_t i); uint64_t getNumberOfBursts() const; + /** [Gottthard2] */ void setNumberOfBursts(const uint64_t i); int getNumberOfAdditionalStorageCells() const; + /** [Jungfrau] */ void setNumberOfAdditionalStorageCells(const int i); + /** [Mythen3] */ + void setNumberOfGates(const int i); timingMode getTimingMode() const; void setTimingMode(const timingMode i); burstMode getBurstMode() const; + /** [Gottthard2] */ void setBurstMode(const burstMode i); uint64_t getAcquisitionTime() const; void setAcquisitionTime(const uint64_t i); + /** [Mythen3] */ + void updateAcquisitionTime(); + /** [Mythen3] */ + void setAcquisitionTime1(const uint64_t i); + /** [Mythen3] */ + void setAcquisitionTime2(const uint64_t i); + /** [Mythen3] */ + void setAcquisitionTime3(const uint64_t i); + /** [Mythen3] */ + void setGateDelay1(const uint64_t i); + /** [Mythen3] */ + void setGateDelay2(const uint64_t i); + /** [Mythen3] */ + void setGateDelay3(const uint64_t i); uint64_t getAcquisitionPeriod() const; void setAcquisitionPeriod(const uint64_t i); uint64_t getSubExpTime() const; @@ -286,10 +305,17 @@ class Implementation : private virtual slsDetectorDefs { uint64_t numberOfTriggers; uint64_t numberOfBursts; int numberOfAdditionalStorageCells; + int numberOfGates; timingMode timingMode; burstMode burstMode; uint64_t acquisitionPeriod; uint64_t acquisitionTime; + uint64_t acquisitionTime1; + uint64_t acquisitionTime2; + uint64_t acquisitionTime3; + uint64_t gateDelay1; + uint64_t gateDelay2; + uint64_t gateDelay3; uint64_t subExpTime; uint64_t subPeriod; uint64_t numberOfAnalogSamples; diff --git a/slsReceiverSoftware/src/receiver_defs.h b/slsReceiverSoftware/src/receiver_defs.h index bef2314d7..7a5e91c1e 100755 --- a/slsReceiverSoftware/src/receiver_defs.h +++ b/slsReceiverSoftware/src/receiver_defs.h @@ -40,8 +40,8 @@ #define MAX_CHUNKED_IMAGES (1) // versions -#define HDF5_WRITER_VERSION (5.0) // 1 decimal places -#define BINARY_WRITER_VERSION (5.0) // 1 decimal places +#define HDF5_WRITER_VERSION (6.0) // 1 decimal places +#define BINARY_WRITER_VERSION (6.0) // 1 decimal places // parameters to calculate fifo depth #define SAMPLE_TIME_IN_NS (100000000) // 100ms @@ -79,4 +79,11 @@ struct masterAttributes { uint64_t dbitlist; uint32_t roiXmin; uint32_t roiXmax; + uint64_t exptime1Ns; + uint64_t exptime2Ns; + uint64_t exptime3Ns; + uint64_t gateDelay1Ns; + uint64_t gateDelay2Ns; + uint64_t gateDelay3Ns; + uint32_t gates; }; diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 57cf109f8..489c9bc5c 100644 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -477,6 +477,13 @@ typedef struct { ROI roi; uint32_t countermask{0}; burstMode burstType{BURST_OFF}; + int64_t expTime1Ns{0}; + int64_t expTime2Ns{0}; + int64_t expTime3Ns{0}; + int64_t gateDelay1Ns{0}; + int64_t gateDelay2Ns{0}; + int64_t gateDelay3Ns{0}; + int gates{0}; } __attribute__((packed)); #endif diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index 0299b2a51..3a778f627 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -298,6 +298,8 @@ enum detFuncs { F_GET_ADDITIONAL_JSON_PARAMETER, F_GET_RECEIVER_PROGRESS, F_SETUP_RECEIVER, + F_SET_RECEIVER_NUM_GATES, + F_SET_RECEIVER_GATE_DELAY, NUM_REC_FUNCTIONS }; @@ -598,6 +600,8 @@ const char* getFunctionNameFromEnum(enum detFuncs func) { case F_GET_ADDITIONAL_JSON_PARAMETER: return "F_GET_ADDITIONAL_JSON_PARAMETER"; case F_GET_RECEIVER_PROGRESS: return "F_GET_RECEIVER_PROGRESS"; case F_SETUP_RECEIVER: return "F_SETUP_RECEIVER"; + case F_SET_RECEIVER_NUM_GATES: return "F_SET_RECEIVER_NUM_GATES" ; + case F_SET_RECEIVER_GATE_DELAY: return "F_SET_RECEIVER_GATE_DELAY" ; case NUM_REC_FUNCTIONS: return "NUM_REC_FUNCTIONS"; default: return "Unknown Function"; From 8973ef1aaae16a52c770cc65c21324c1287f0240 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 10:18:51 +0200 Subject: [PATCH 11/30] from timetest merge --- slsDetectorSoftware/src/Detector.cpp | 9 +-------- slsDetectorSoftware/src/Module.cpp | 8 +++----- slsDetectorSoftware/src/Module.h | 2 +- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index bb627f285..8af4d6ac7 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1288,14 +1288,7 @@ void Detector::setGateDelay(int gateIndex, ns t, Positions pos) { Result> Detector::getGateDelayForAllGates(Positions pos) const { - auto t = pimpl->Parallel(&Module::getGateDelayForAllGates, pos); - Result> res(t.size()); - for (unsigned int i = 0; i < t.size(); ++i) { - for (unsigned int j = 0; j != 3; ++j) { - res[i][j] = static_cast(t[i][j]); - } - } - return res; + return pimpl->Parallel(&Module::getGateDelayForAllGates, pos); } // CTB/ Moench Specific diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 49b865097..4953762ad 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1063,7 +1063,6 @@ void Module::setExptime(int gateIndex, int64_t value) { std::array Module::getExptimeForAllGates() { static_assert(sizeof(time::ns) == 8, "ns needs to be 64bit"); return sendToDetector>(F_GET_EXPTIME_ALL_GATES); - } int64_t Module::getGateDelay(int gateIndex) { @@ -1081,10 +1080,9 @@ void Module::setGateDelay(int gateIndex, int64_t value) { } } -std::array Module::getGateDelayForAllGates() { - std::array retval; - sendToDetector(F_GET_GATE_DELAY_ALL_GATES, nullptr, retval); - return retval; +std::array Module::getGateDelayForAllGates() { + static_assert(sizeof(time::ns) == 8, "ns needs to be 64bit"); + return sendToDetector>(F_GET_GATE_DELAY_ALL_GATES); } int64_t Module::getPeriod() { return sendToDetector(F_GET_PERIOD); } diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 81ced7b4a..923feee78 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -441,7 +441,7 @@ class Module : public virtual slsDetectorDefs { void setGateDelay(int gateIndex, int64_t value); /** [Mythen3] for all gates */ - std::array getGateDelayForAllGates(); + std::array getGateDelayForAllGates(); int64_t getPeriod(); From 3ebb1fca028120548fc8ef1a9a4969bb417a3d30 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 11:51:18 +0200 Subject: [PATCH 12/30] gui WIP --- slsDetectorGui/CMakeLists.txt | 1 + slsDetectorGui/forms/form_tab_measurement.ui | 425 +++++++++++++------ slsDetectorGui/include/qTabMeasurement.h | 5 +- slsDetectorGui/src/qTabMeasurement.cpp | 120 +++++- slsReceiverSoftware/src/Implementation.cpp | 4 + 5 files changed, 409 insertions(+), 146 deletions(-) diff --git a/slsDetectorGui/CMakeLists.txt b/slsDetectorGui/CMakeLists.txt index 47aeacb56..21ee29110 100755 --- a/slsDetectorGui/CMakeLists.txt +++ b/slsDetectorGui/CMakeLists.txt @@ -89,6 +89,7 @@ target_include_directories(slsDetectorGui PUBLIC target_link_libraries(slsDetectorGui PUBLIC slsDetectorShared + slsSupportLib ${QT_QTCORE_LIBRARIES} ${QT_QTGUI_LIBRARIES} ${QWT_LIBRARIES} diff --git a/slsDetectorGui/forms/form_tab_measurement.ui b/slsDetectorGui/forms/form_tab_measurement.ui index 263ae3562..ba9da5c72 100755 --- a/slsDetectorGui/forms/form_tab_measurement.ui +++ b/slsDetectorGui/forms/form_tab_measurement.ui @@ -409,7 +409,7 @@ - 400 + 410 0 @@ -432,6 +432,77 @@ 4 + + + + + 0 + 0 + + + + + 171 + 32 + + + + + 171 + 32 + + + + 0 + + + + + 0 + + + 0 + + + + + false + + + <html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html> + + + Number of Triggers: + + + + + + + + + 0 + + + 0 + + + + + false + + + <html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html> + + + Number of Bursts: + + + + + + + @@ -501,53 +572,6 @@ Frame period between exposures. - - - - false - - - - 0 - 0 - - - - - 0 - 25 - - - - Number of Triggers to be expected. - #triggers# - - - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - - - - -1 - - - 2000000000 - - - 1 - - - @@ -594,25 +618,17 @@ Frame period between exposures. + + + 175 + 0 + + Number of Measurements: - - - - false - - - Number of Triggers to be expected. - #triggers# - - - Number of Samples: - - - @@ -651,6 +667,11 @@ Frame period between exposures. Burst Trigger + + + Trigger Gated + + @@ -910,77 +931,6 @@ Frame period between exposures. - - - - - 0 - 0 - - - - - 171 - 32 - - - - - 171 - 32 - - - - 0 - - - - - 0 - - - 0 - - - - - false - - - <html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html> - - - Number of Triggers: - - - - - - - - - 0 - - - 0 - - - - - false - - - <html><head/><body><p>Number of Triggers to be expected.</p><p> #triggers#</p></body></html> - - - Number of Bursts: - - - - - - - @@ -1481,6 +1431,214 @@ Frame period between exposures. + + + + + 0 + 0 + + + + + 171 + 32 + + + + + 171 + 32 + + + + 0 + + + + + 0 + + + 0 + + + + + false + + + <html><head/><body><p>Number of analog samples.</p><p>#asamples#</p></body></html> + + + Number of Samples: + + + + + + + + + 0 + + + 0 + + + + + false + + + <html><head/><body><p>Number of external gates.</p><p>#gates#</p></body></html> + + + Number of Gates: + + + + + + + + + + + + 0 + 0 + + + + + 208 + 32 + + + + + 208 + 32 + + + + 0 + + + + + 0 + + + 0 + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Number of analog samples.</p><p>#asamples#</p><p><br/></p></body></html> + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + + -1 + + + 2000000000 + + + 1 + + + + + + + + + 0 + + + 0 + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Number of external gates.</p><p>#gates#</p></body></html> + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + + -1 + + + 2000000000 + + + 1 + + + + + + + @@ -1513,7 +1671,6 @@ Frame period between exposures. comboExpUnit spinPeriod comboPeriodUnit - spinNumSamples diff --git a/slsDetectorGui/include/qTabMeasurement.h b/slsDetectorGui/include/qTabMeasurement.h index f5c1bb70f..1d19860dd 100644 --- a/slsDetectorGui/include/qTabMeasurement.h +++ b/slsDetectorGui/include/qTabMeasurement.h @@ -45,6 +45,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject { * show bursts and burst period */ void ShowTriggerDelay(); + void ShowGates(); void SetupTimingMode(); void EnableWidgetsforTimingMode(); @@ -53,6 +54,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject { void GetNumTriggers(); void GetNumBursts(); void GetNumSamples(); + void GetNumGates(); void GetExposureTime(); void GetAcquisitionPeriod(); void CheckAcqPeriodGreaterThanExp(); @@ -76,7 +78,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject { sls::Detector *det; qDrawPlot *plot; // enum for the timing mode - enum { AUTO, TRIGGER, GATED, BURST_TRIGGER, NUMTIMINGMODES }; + enum { AUTO, TRIGGER, GATED, BURST_TRIGGER, TRIGGER_GATED, NUMTIMINGMODES }; QTimer *progressTimer; // tool tip variables QString acqPeriodTip; @@ -84,6 +86,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject { QPalette red; bool delayImplemented; bool sampleImplemented; + bool gateImplemented; bool startingFnumImplemented; bool isAcquisitionStopped{false}; int numMeasurements{1}; diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 2f7a09c3e..e61efe63f 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -31,6 +31,7 @@ void qTabMeasurement::SetupWidgetWindow() { progressTimer = new QTimer(this); sampleImplemented = false; + gateImplemented = false; delayImplemented = true; startingFnumImplemented = false; // by default, delay and starting fnum is disabled in form @@ -41,6 +42,8 @@ void qTabMeasurement::SetupWidgetWindow() { // default is triggers and delay (not #bursts and burst period for gotthard2 // in auto mode) ShowTriggerDelay(); + // default is to show samples, mythen3, show gates + ShowGates(); // enabling according to det type switch (det->getDetectorType().squash()) { @@ -67,6 +70,9 @@ void qTabMeasurement::SetupWidgetWindow() { spinBurstPeriod->setEnabled(true); comboBurstPeriodUnit->setEnabled(true); break; + case slsDetectorDefs::MYTHEN3: + gateImplemented = true; + break; default: break; } @@ -97,6 +103,10 @@ void qTabMeasurement::Initialization() { connect(spinNumSamples, SIGNAL(valueChanged(int)), this, SLOT(SetNumSamples(int))); } + if (gateImplemented) { + connect(spinNumGates, SIGNAL(valueChanged(int)), this, + SLOT(SetNumGates(int))); + } connect(spinExpTime, SIGNAL(valueChanged(double)), this, SLOT(SetExposureTime())); connect(comboExpUnit, SIGNAL(currentIndexChanged(int)), this, @@ -161,6 +171,16 @@ void qTabMeasurement::ShowTriggerDelay() { } } +void qTabMeasurement::ShowGates() { + if (det->getDetectorType().squash() == slsDetectorDefs::MYTHEN3) { + stackedLblSamplesGates->setCurrentWidget(pageLblGates); + stackedSpinSamplesGates->setCurrentWidget(pageSpinGates); + } else { + stackedLblSamplesGates->setCurrentWidget(pageLblSamples); + stackedSpinSamplesGates->setCurrentWidget(pageSpinSamples); + } +} + void qTabMeasurement::SetupTimingMode() { QStandardItemModel *model = qobject_cast(comboTimingMode->model()); @@ -173,9 +193,18 @@ void qTabMeasurement::SetupTimingMode() { item[i] = model->itemFromIndex(index[i]); } - if (det->getDetectorType().squash() != slsDetectorDefs::EIGER) { - item[(int)GATED]->setEnabled(false); - item[(int)BURST_TRIGGER]->setEnabled(false); + item[(int)GATED]->setEnabled(false); + item[(int)BURST_TRIGGER]->setEnabled(false); + item[(int)TRIGGER_GATED]->setEnabled(false); + switch (det->getDetectorType().squash()) { + case EIGER: + item[(int)GATED]->setEnabled(true); + item[(int)BURST_TRIGGER]->setEnabled(true); + break; + case MYTHEN3: + item[(int)GATED]->setEnabled(true); + item[(int)TRIGGER_GATED]->setEnabled(true); + break; } } } @@ -197,6 +226,8 @@ void qTabMeasurement::EnableWidgetsforTimingMode() { lblDelay->setEnabled(false); spinDelay->setEnabled(false); comboDelayUnit->setEnabled(false); + lblNumGates->setEnabled(false); + spinNumGates->setEnabled(false); switch (comboTimingMode->currentIndex()) { case AUTO: @@ -223,6 +254,7 @@ void qTabMeasurement::EnableWidgetsforTimingMode() { lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true); + // not implemented in FW to have multiple frames for eiger if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) { spinNumFrames->setValue(1); } else { @@ -241,10 +273,17 @@ void qTabMeasurement::EnableWidgetsforTimingMode() { } break; case GATED: - // #frames + // #frames, #gates(mythen3) spinNumTriggers->setValue(1); + if (det->getDetectorType().squash() == slsDetectorDefs::MYTHEN3) { + lblNumGates->setEnabled(true); + spinNumGates->setEnabled(true); + } lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); + if (det->getDetectorType().squash() == slsDetectorDefs::GOTTHARD2) { + ShowTriggerDelay(); + } break; case BURST_TRIGGER: // #frames, exptime, period @@ -258,6 +297,18 @@ void qTabMeasurement::EnableWidgetsforTimingMode() { spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true); break; + case TRIGGER_GATED: + // #triggers, delay, #frames, #gates + lblNumTriggers->setEnabled(true); + spinNumTriggers->setEnabled(true); + lblDelay->setEnabled(true); + spinDelay->setEnabled(true); + comboDelayUnit->setEnabled(true); + lblNumFrames->setEnabled(true); + spinNumFrames->setEnabled(true); + lblNumGates->setEnabled(true); + spinNumGates->setEnabled(true); + break; default: break; } @@ -278,6 +329,7 @@ void qTabMeasurement::GetTimingMode() { case slsDetectorDefs::TRIGGER_EXPOSURE: case slsDetectorDefs::GATED: case slsDetectorDefs::BURST_TRIGGER: + case slsDetectorDefs::TRIGGER_GATED: comboTimingMode->setCurrentIndex((int)retval); // update widget enable only if different if (oldMode != comboTimingMode->currentIndex()) { @@ -402,7 +454,7 @@ void qTabMeasurement::GetNumSamples() { } void qTabMeasurement::SetNumSamples(int val) { - LOG(logINFO) << "Setting number of samples to " << val; + LOG(logINFO) << "Getting number of external gates to " << val; try { det->setNumberOfAnalogSamples(val); } @@ -411,6 +463,31 @@ void qTabMeasurement::SetNumSamples(int val) { &qTabMeasurement::GetNumSamples) } +void qTabMeasurement::GetNumGates() { + LOG(logDEBUG) << "Getting number of gates"; + disconnect(spinNumGates, SIGNAL(valueChanged(int)), this, + SLOT(SetNumGates(int))); + try { + auto retval = det->getNumberOfGates().tsquash( + "Inconsistent number of gates for all detectors."); + spinNumGates->setValue(retval); + } + CATCH_DISPLAY("Could not get number of gates.", + "qTabMeasurement::GetNumGates") + connect(spinNumGates, SIGNAL(valueChanged(int)), this, + SLOT(SetNumGates(int))); +} + +void qTabMeasurement::SetNumGates(int val) { + LOG(logINFO) << "Setting number of gates to " << val; + try { + det->setNumberOfGates(val); + } + CATCH_HANDLE("Could not set number of gates.", + "qTabMeasurement::SetNumGates", this, + &qTabMeasurement::GetNumGates) +} + void qTabMeasurement::GetExposureTime() { LOG(logDEBUG) << "Getting exposure time"; disconnect(spinExpTime, SIGNAL(valueChanged(double)), this, @@ -419,12 +496,30 @@ void qTabMeasurement::GetExposureTime() { SLOT(SetExposureTime())); try { spinExpTime->setValue(-1); - auto retval = det->getExptime().tsquash( - "Inconsistent exposure time for all detectors."); - auto time = qDefs::getUserFriendlyTime(retval); - spinExpTime->setValue(time.first); - comboExpUnit->setCurrentIndex(static_cast(time.second)); - CheckAcqPeriodGreaterThanExp(); + + bool inconsistentGateValues = false; + Result retval; + if (det->getDetectorType().squash() == MYTHEN3) { + auto retvals = det->getExptimeForAllGates().tsquash( + "Inconsistent exposure time for all detectors."); + // all gates have same value + if (retvals[0] == retvals[1] && retvals[1] == retvals[2]) { + retval = retvals[0]; + } else { + // dont throw, just leave it as -1 + inconsistentGateValues = true; + } + } else { + retval = det->getExptime().tsquash( + "Inconsistent exposure time for all detectors."); + } + + if (!inconsistentGateValues) { + auto time = qDefs::getUserFriendlyTime(retval); + spinExpTime->setValue(time.first); + comboExpUnit->setCurrentIndex(static_cast(time.second)); + CheckAcqPeriodGreaterThanExp(); + } } CATCH_DISPLAY("Could not get exposure time.", "qTabMeasurement::GetExposureTime") @@ -826,6 +921,9 @@ void qTabMeasurement::Refresh() { if (sampleImplemented) { GetNumSamples(); } + if (gateImplemented) { + GetNumGates(); + } GetFileWrite(); GetFileName(); GetRunIndex(); diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 9c3a01913..6ae6be313 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -1300,6 +1300,10 @@ void Implementation::updateTotalNumberOfFrames() { repeats = 1; } } + if (myDetectorType == MYTHEN3 && + (timingMode == AUTO_TIMING || timingMode == GATED)) { + repeats = 1; + } numberOfTotalFrames = numberOfFrames * repeats * (int64_t)(numberOfAdditionalStorageCells + 1); if (numberOfTotalFrames == 0) { From dc8f67cd7b7f689cfacfd20075da2c9b157ad1b3 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 12:04:48 +0200 Subject: [PATCH 13/30] gui fix --- slsDetectorGui/include/qDefs.h | 1 + slsDetectorGui/include/qTabMeasurement.h | 1 + slsDetectorGui/src/qTabMeasurement.cpp | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/slsDetectorGui/include/qDefs.h b/slsDetectorGui/include/qDefs.h index c0b7ab766..20a468b8b 100644 --- a/slsDetectorGui/include/qDefs.h +++ b/slsDetectorGui/include/qDefs.h @@ -1,5 +1,6 @@ #pragma once +#include "logger.h" #include "sls_detector_defs.h" #include diff --git a/slsDetectorGui/include/qTabMeasurement.h b/slsDetectorGui/include/qTabMeasurement.h index 1d19860dd..b38148188 100644 --- a/slsDetectorGui/include/qTabMeasurement.h +++ b/slsDetectorGui/include/qTabMeasurement.h @@ -25,6 +25,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject { void SetNumTriggers(int val); void SetNumBursts(int val); void SetNumSamples(int val); + void SetNumGates(int val); void SetExposureTime(); void SetAcquisitionPeriod(); void SetDelay(); diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index e61efe63f..46f48136a 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -197,11 +197,11 @@ void qTabMeasurement::SetupTimingMode() { item[(int)BURST_TRIGGER]->setEnabled(false); item[(int)TRIGGER_GATED]->setEnabled(false); switch (det->getDetectorType().squash()) { - case EIGER: + case slsDetectorDefs::EIGER: item[(int)GATED]->setEnabled(true); item[(int)BURST_TRIGGER]->setEnabled(true); break; - case MYTHEN3: + case slsDetectorDefs::MYTHEN3: item[(int)GATED]->setEnabled(true); item[(int)TRIGGER_GATED]->setEnabled(true); break; @@ -498,8 +498,8 @@ void qTabMeasurement::GetExposureTime() { spinExpTime->setValue(-1); bool inconsistentGateValues = false; - Result retval; - if (det->getDetectorType().squash() == MYTHEN3) { + std::chrono::nanoseconds retval; + if (det->getDetectorType().squash() == slsDetectorDefs::MYTHEN3) { auto retvals = det->getExptimeForAllGates().tsquash( "Inconsistent exposure time for all detectors."); // all gates have same value From 9475e010627b2d3b0927858fac70d22dd496ba44 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 12:41:14 +0200 Subject: [PATCH 14/30] gui done --- slsDetectorGui/forms/form_tab_advanced.ui | 747 +++++++++++++++------- slsDetectorGui/include/qTabAdvanced.h | 5 + slsDetectorGui/src/qTabAdvanced.cpp | 129 ++++ 3 files changed, 648 insertions(+), 233 deletions(-) diff --git a/slsDetectorGui/forms/form_tab_advanced.ui b/slsDetectorGui/forms/form_tab_advanced.ui index df356bf81..ea19dab8a 100755 --- a/slsDetectorGui/forms/form_tab_advanced.ui +++ b/slsDetectorGui/forms/form_tab_advanced.ui @@ -1066,239 +1066,6 @@ Acquisition - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 20 - 20 - - - - - - - - false - - - <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> - - - Number of Storage cells: - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 10 - 20 - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 20 - - - - - - - - false - - - - 0 - 0 - - - - - 0 - 25 - - - - <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> - - - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - - - - -1 - - - 15 - - - 0 - - - - - - - false - - - - 0 - 0 - - - - - 0 - 25 - - - - <nobr> -Exposure Time of a sub frame. Only for Eiger in 32 bit mode -</nobr><br><nobr> - #subexptime# -</nobr> - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - 9 - - - -1.000000000000000 - - - 2000000000.000000000000000 - - - 1.000000000000000 - - - - - - - false - - - <nobr> -Dead time between sub frames. Only for Eiger in 32 bit mode. -</nobr><br><nobr> -Default value is 0. A value less than the required minimum is ignored. -</nobr><br><nobr> - #subdeadtime# -</nobr> - - - Sub Frame Dead Time: - - - - - - - false - - - - 0 - 0 - - - - - 0 - 25 - - - - <nobr> -Period between sub frames. Only for Eiger in 32 bit mode. -</nobr><br><nobr> -Default value is 0. A value less than the required minimum is ignored. -</nobr><br><nobr> - #subperiod# -</nobr> - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - 9 - - - -1.000000000000000 - - - 2000000000.000000000000000 - - - 1.000000000000000 - - - - - - - false - - - <nobr> -Exposure Time of a sub frame. Only for Eiger in 32 bit mode -</nobr><br><nobr> - #subexptime# -</nobr> - - - Sub Frame Exposure Time: - - - @@ -1425,6 +1192,98 @@ Exposure Time of a sub frame. Only for Eiger in 32 bit mode + + + + false + + + <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> + + + Number of Storage cells: + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <nobr> +Period between sub frames. Only for Eiger in 32 bit mode. +</nobr><br><nobr> +Default value is 0. A value less than the required minimum is ignored. +</nobr><br><nobr> + #subperiod# +</nobr> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + 9 + + + -1.000000000000000 + + + 2000000000.000000000000000 + + + 1.000000000000000 + + + + + + + false + + + <nobr> +Exposure Time of a sub frame. Only for Eiger in 32 bit mode +</nobr><br><nobr> + #subexptime# +</nobr> + + + Sub Frame Exposure Time: + + + @@ -1490,6 +1349,428 @@ Default value is 0. A value less than the required minimum is ignored. + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + + -1 + + + 15 + + + 0 + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <nobr> +Exposure Time of a sub frame. Only for Eiger in 32 bit mode +</nobr><br><nobr> + #subexptime# +</nobr> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + 9 + + + -1.000000000000000 + + + 2000000000.000000000000000 + + + 1.000000000000000 + + + + + + + false + + + <nobr> +Dead time between sub frames. Only for Eiger in 32 bit mode. +</nobr><br><nobr> +Default value is 0. A value less than the required minimum is ignored. +</nobr><br><nobr> + #subdeadtime# +</nobr> + + + Sub Frame Dead Time: + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Exposure Time of a corresonding gate signal index. <br/>#exptime1# </p><p>#exptime2#</p><p>#exptime3#  </p></body></html> + + + Qt::LeftToRight + + + 2 + + + + hr + + + + + min + + + + + s + + + + + ms + + + + + us + + + + + ns + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Exposure Time of a corresonding gate signal index. <br/>#exptime1# </p><p>#exptime2#</p><p>#exptime3# </p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + 9 + + + -1.000000000000000 + + + 2000000000.000000000000000 + + + 1.000000000000000 + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Gate index. It will get exposure time and gate delay for corresponding gate signal.</p></body></html> + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + + + + 0 + + + 3 + + + 0 + + + + + + + false + + + <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> + + + Gate Delay: + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Gate Delay of a corresonding gate signal index. <br/>#gatedelay1# </p><p>#gatedelay2#</p><p>#gatedelay3#  </p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + 9 + + + -1.000000000000000 + + + 2000000000.000000000000000 + + + 1.000000000000000 + + + + + + + false + + + + 0 + 0 + + + + + 0 + 25 + + + + <html><head/><body><p>Gate Delay of a corresonding gate signal index. <br/>#gatedelay1# </p><p>#gatedelay2#</p><p>#gatedelay3#  </p></body></html> + + + Qt::LeftToRight + + + 2 + + + + hr + + + + + min + + + + + s + + + + + ms + + + + + us + + + + + ns + + + + + + + + false + + + <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> + + + Expososure Time: + + + + + + + false + + + <html><head/><body><p>Number of additional storage cells. For Jungfrau only. </p><p>Default: 0. </p><p>Number of Images received: #frames * #triggers * (#storagecells+1) </p><p> #storagecells#</p><p><br/></p></body></html> + + + Gate Index: + + + diff --git a/slsDetectorGui/include/qTabAdvanced.h b/slsDetectorGui/include/qTabAdvanced.h index 942dc63da..7165eeb2f 100644 --- a/slsDetectorGui/include/qTabAdvanced.h +++ b/slsDetectorGui/include/qTabAdvanced.h @@ -36,6 +36,9 @@ class qTabAdvanced : public QWidget, private Ui::TabAdvancedObject { void SetNumStoragecells(int value); void SetSubExposureTime(); void SetSubDeadTime(); + void SetGateIndex(int value); + void SetExposureTime(); + void SetGateDelay(); private: void SetupWidgetWindow(); @@ -59,6 +62,8 @@ class qTabAdvanced : public QWidget, private Ui::TabAdvancedObject { void GetNumStoragecells(); void GetSubExposureTime(); void GetSubDeadTime(); + void GetExposureTime(); + void GetGateDelay(); sls::Detector *det; qDrawPlot *plot; diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index a8ba59401..5974e6141 100644 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -29,9 +29,21 @@ void qTabAdvanced::SetupWidgetWindow() { tab_roi->setEnabled(true); break; case slsDetectorDefs::MYTHEN3: + lblDiscardBits->setEnabled(true); + spinDiscardBits->setEnabled(true); + lblGateIndex->setEnabled(true); + spinGateIndex->setEnabled(true); + lblExpTime->setEnabled(true); + spinExpTime->setEnabled(true); + comboExpTimeUnit->setEnabled(true); + lblGateDelay->setEnabled(true); + spinGateDelay->setEnabled(true); + comboGateDelayUnit->setEnabled(true); + break; case slsDetectorDefs::GOTTHARD2: lblDiscardBits->setEnabled(true); spinDiscardBits->setEnabled(true); + break; default: break; } @@ -116,6 +128,28 @@ void qTabAdvanced::Initialization() { connect(spinDiscardBits, SIGNAL(valueChanged(int)), plot, SLOT(SetNumDiscardBits(int))); } + + // gate index + if (lblGateIndex->isEnabled()) { + connect(spinGateIndex, SIGNAL(valueChanged(int)), this, + SLOT(SetGateIndex(int))); + } + + // exptime1, exptime2, exptme3 + if (lblExpTime->isEnabled()) { + connect(spinExpTime, SIGNAL(valueChanged(double)), this, + SLOT(SetExposureTime())); + connect(comboExpTimeUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetExposureTime())); + } + + // gatedelay1, gatedelay2, gatedelay3 + if (lblGateDelay->isEnabled()) { + connect(spinGateDelay, SIGNAL(valueChanged(double)), this, + SLOT(SetGateDelay())); + connect(comboGateDelayUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetGateDelay())); + } } void qTabAdvanced::PopulateDetectors() { @@ -671,6 +705,92 @@ void qTabAdvanced::SetSubDeadTime() { GetSubDeadTime(); } +void qTabAdvanced::SetGateIndex(int value) { + LOG(logINFO) << "Getting exptime and gate delay for gate index: " << value; + GetExposureTime(); + GetGateDelay(); +} + +void qTabAdvanced::GetExposureTime() { + int gateIndex = spinGateIndex->value(); + LOG(logDEBUG) << "Getting exposure time" << gateIndex; + disconnect(spinExpTime, SIGNAL(valueChanged(double)), this, + SLOT(SetExposureTime())); + disconnect(comboExpTimeUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetExposureTime())); + try { + auto retval = det->getExptime(gateIndex).tsquash( + "Exptime is inconsistent for all detectors."); + auto time = qDefs::getUserFriendlyTime(retval); + spinExpTime->setValue(time.first); + comboExpTimeUnit->setCurrentIndex(static_cast(time.second)); + } + CATCH_DISPLAY("Could not get exposure time.", + "qTabSettings::GetExposureTime") + connect(spinExpTime, SIGNAL(valueChanged(double)), this, + SLOT(SetExposureTime())); + connect(comboExpTimeUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetExposureTime())); +} + +void qTabAdvanced::SetExposureTime() { + int gateIndex = spinGateIndex->value(); + auto timeNS = qDefs::getNSTime(std::make_pair( + spinExpTime->value(), + static_cast(comboExpTimeUnit->currentIndex()))); + LOG(logINFO) << "Setting exptime" << gateIndex << " to " << timeNS.count() + << " ns" + << "/" << spinExpTime->value() + << qDefs::getUnitString( + (qDefs::timeUnit)comboExpTimeUnit->currentIndex()); + try { + det->setExptime(gateIndex, timeNS); + } + CATCH_DISPLAY("Could not set exposure time.", + "qTabAdvanced::SetExposureTime") + + GetExposureTime(); +} + +void qTabAdvanced::GetGateDelay() { + int gateIndex = spinGateIndex->value(); + LOG(logDEBUG) << "Getting gate delay" << gateIndex; + disconnect(spinGateDelay, SIGNAL(valueChanged(double)), this, + SLOT(SetGateDelay())); + disconnect(comboGateDelayUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetGateDelay())); + try { + auto retval = det->getGateDelay(gateIndex).tsquash( + "GateDelay is inconsistent for all detectors."); + auto time = qDefs::getUserFriendlyTime(retval); + spinGateDelay->setValue(time.first); + comboGateDelayUnit->setCurrentIndex(static_cast(time.second)); + } + CATCH_DISPLAY("Could not get gate delay.", "qTabSettings::GetGateDelay") + connect(spinGateDelay, SIGNAL(valueChanged(double)), this, + SLOT(SetGateDelay())); + connect(comboGateDelayUnit, SIGNAL(currentIndexChanged(int)), this, + SLOT(SetGateDelay())); +} + +void qTabAdvanced::SetGateDelay() { + int gateIndex = spinGateIndex->value(); + auto timeNS = qDefs::getNSTime(std::make_pair( + spinGateDelay->value(), + static_cast(comboGateDelayUnit->currentIndex()))); + LOG(logINFO) << "Setting gatedelay" << gateIndex << " to " << timeNS.count() + << " ns" + << "/" << spinGateDelay->value() + << qDefs::getUnitString( + (qDefs::timeUnit)comboGateDelayUnit->currentIndex()); + try { + det->setGateDelay(gateIndex, timeNS); + } + CATCH_DISPLAY("Could not set gate delay.", "qTabAdvanced::SetGateDelay") + + GetGateDelay(); +} + void qTabAdvanced::Refresh() { LOG(logDEBUG) << "**Updating Advanced Tab"; @@ -698,5 +818,14 @@ void qTabAdvanced::Refresh() { GetSubDeadTime(); } + // exptime1, exptime2, exptme3 + if (lblExpTime->isEnabled()) { + GetExposureTime(); + } + + // gatedelay1, gatedelay2, gatedelay3 + if (lblGateDelay->isEnabled()) { + GetGateDelay(); + } LOG(logDEBUG) << "**Updated Advanced Tab"; } From d71e40729a1748220a7d89d8ba4a411a3de8dde1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:05:42 +0200 Subject: [PATCH 15/30] external signals --- .../slsDetectorFunctionList.c | 10 +- .../slsDetectorServer_defs.h | 1 + .../mythen3DetectorServer/RegisterDefs.h | 63 ++++++- .../slsDetectorFunctionList.c | 96 ++++++++++ .../slsDetectorServer_defs.h | 1 + .../include/slsDetectorFunctionList.h | 9 +- .../include/slsDetectorServer_funcs.h | 1 + .../slsDetectorServer/src/programFpgaNios.c | 2 +- .../src/slsDetectorServer_funcs.c | 178 ++++++++++++------ slsDetectorSoftware/include/Detector.h | 13 +- slsDetectorSoftware/src/CmdProxy.cpp | 33 ++++ slsDetectorSoftware/src/CmdProxy.h | 8 +- slsDetectorSoftware/src/Detector.cpp | 10 +- slsDetectorSoftware/src/Module.cpp | 11 +- slsDetectorSoftware/src/Module.h | 10 +- slsSupportLib/include/sls_detector_defs.h | 27 +-- slsSupportLib/include/sls_detector_funcs.h | 2 + slsSupportLib/src/ToString.cpp | 8 + 18 files changed, 370 insertions(+), 113 deletions(-) diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c index ec905848c..5faa48834 100644 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c @@ -424,7 +424,7 @@ void setupDetector() { LOG(logINFOBLUE, ("Setting Default parameters\n")); setSettings(DEFAULT_SETTINGS); - setExtSignal(DEFAULT_TRIGGER_MODE); + setExtSignal(0, DEFAULT_TRIGGER_MODE); setTiming(DEFAULT_TIMING_MODE); setNumFrames(DEFAULT_NUM_FRAMES); setNumTriggers(DEFAULT_NUM_CYCLES); @@ -1259,7 +1259,8 @@ enum timingMode getTiming() { } } -void setExtSignal(enum externalSignalFlag mode) { +void setExtSignal(int signalIndex, enum externalSignalFlag mode) { + LOG(logDEBUG1, ("Setting signal flag[%d] to %d\n", signalIndex, mode)); switch (mode) { case TRIGGER_IN_RISING_EDGE: LOG(logINFO, @@ -1278,7 +1279,10 @@ void setExtSignal(enum externalSignalFlag mode) { setTiming(getTiming()); } -int getExtSignal() { return signalMode; } +int getExtSignal(int signalIndex) { + LOG(logDEBUG1, ("Getting signal flag[%d]\n", signalIndex)); + return signalMode; +} /* configure mac */ diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h index 190d05634..a7e588eff 100644 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h @@ -42,6 +42,7 @@ enum CLKINDEX { ADC_CLK, NUM_CLOCKS }; #define NUM_BITS_PER_PIXEL (DYNAMIC_RANGE / 8) #define DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL) #define CLK_FREQ (32007729) /* Hz */ +#define MAX_EXT_SIGNALS (1) /** Firmware Definitions */ #define IP_PACKET_SIZE_NO_ROI \ diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index 1c1d526ae..f8ac34e15 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -21,7 +21,7 @@ /* ASIC Digital Interface. Data recovery core */ #define BASE_ADIF (0x0110) // 0x1806_0110 - 0x1806_011F -// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/adif/adif_ctrl.vhd +// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/xxx/adif/adif_ctrl.vhd /* Formatting of data core */ #define BASE_FMT (0x0120) // 0x1806_0120 - 0x1806_012F @@ -30,12 +30,16 @@ #define BASE_PKT (0x0130) // 0x1806_0130 - 0x1806_013F // https://git.psi.ch/sls_detectors_firmware/mythen_III_mcb/blob/master/code/hdl/pkt/pkt_ctrl.vhd +/** Pipeline (Timing Rec) */ +#define BASE_PIPELINE (0x0140) // 0x1806_0140 - 0x1806_014F +// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/xxx/MythenIIITriggerBoard/timingReceier.vhd + /* ASIC Exposure Control */ #define BASE_ASIC_EXP (0x0180) // 0x1806_0180 - 0x1806_01BF /* Pattern control and status */ #define BASE_PATTERN_CONTROL (0x00200) // 0x1806_0200 - 0x1806_02FF -// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/2e81ccbdbc5cb81813ba190fbdba43e8d6884eb9/pattern_flow/pattern_flow_ctrl.vhd +// https://git.psi.ch/sls_detectors_firmware/vhdl_library/blob/xxx/pattern_flow/pattern_flow_ctrl.vhd /* Flow control and status */ #define BASE_FLOW_CONTROL (0x00400) // 0x1806_0400 - 0x1806_04FF @@ -161,6 +165,61 @@ #define COORD_ID_OFST (16) // Not connected in firmware TODO #define COORD_ID_MSK (0x0000FFFF << COORD_ID_OFST) // Not connected in firmware TODO +/* Pipeline -------------------------------------------------------------*/ + +/** DINF1 Master Input Register */ +#define DINF1_REG (0x00 * REG_OFFSET + BASE_PIPELINE) + +#define DINF1_TRIGGER_BYPASS_OFST (0) +#define DINF1_TRIGGER_BYPASS_MSK (0x00000001 << DINF1_TRIGGER_BYPASS_OFST) +#define DINF1_BYPASS_GATE_OFST (1) +#define DINF1_BYPASS_GATE_MSK (0x00000007 << DINF1_BYPASS_GATE_OFST) +#define DINF1_INVERSION_OFST (4) +#define DINF1_INVERSION_MSK (0x0000000F << DINF1_INVERSION_OFST) +#define DINF1_RISING_TRIGGER_OFST (8) +#define DINF1_RISING_TRIGGER_MSK (0x00000001 << DINF1_RISING_TRIGGER_OFST) +#define DINF1_RISING_GATE_OFST (9) +#define DINF1_RISING_GATE_MSK (0x00000007 << DINF1_RISING_GATE_OFST) +#define DINF1_FALLING_OFST (12) +#define DINF1_FALLING_MSK (0x0000000F << DINF1_FALLING_OFST) + +/** DOUTIF1 Master Ouput Register */ +#define DOUTIF1_REG (0x01 * REG_OFFSET + BASE_PIPELINE) + +#define DOUTIF1_BYPASS_OFST (0) +#define DOUTIF1_BYPASS_MSK (0x0000000F << DOUTIF1_BYPASS_OFST) +#define DOUTIF1_INVERSION_OFST (4) +#define DOUTIF1_INVERSION_MSK (0x0000000F << DOUTIF1_INVERSION_OFST) +#define DOUTIF1_RISING_OFST (8) +#define DOUTIF1_RISING_MSK (0x0000000F << DOUTIF1_RISING_OFST) +#define DOUTIF1_FALLING_OFST (12) +#define DOUTIF1_FALLING_MSK (0x0000000F << DOUTIF1_FALLING_OFST) + +/** DINF2 Slave Input Register */ +#define DINF2_REG (0x02 * REG_OFFSET + BASE_PIPELINE) + +#define DINF2_BYPASS_OFST (0) +#define DINF2_BYPASS_MSK (0x0000000F << DINF2_BYPASS_OFST) +#define DINF2_INVERSION_OFST (4) +#define DINF2_INVERSION_MSK (0x0000000F << DINF2_INVERSION_OFST) +#define DINF2_RISING_OFST (8) +#define DINF2_RISING_MSK (0x0000000F << DINF2_RISING_OFST) +#define DINF2_FALLING_OFST (12) +#define DINF2_FALLING_MSK (0x0000000F << DINF2_FALLING_OFST) + +/* Pulse length after rising edge TODO (maybe fix a value for port 1 later )*/ +#define DOUTIF_RISING_LNGTH_REG (0x03 * REG_OFFSET + BASE_PIPELINE) + +#define DOUTIF_RISING_LNGTH_PORT_1_OFST (0) +#define DOUTIF_RISING_LNGTH_PORT_1_MSK (0x0000000F << DOUTIF_RISING_LNGTH_PORT_1_OFST) +#define DOUTIF_RISING_LNGTH_PORT_2_OFST (0) +#define DOUTIF_RISING_LNGTH_PORT_2_MSK (0x0000000F << DOUTIF_RISING_LNGTH_PORT_2_OFST) +#define DOUTIF_RISING_LNGTH_PORT_3_OFST (0) +#define DOUTIF_RISING_LNGTH_PORT_3_MSK (0x0000000F << DOUTIF_RISING_LNGTH_PORT_3_OFST) +#define DOUTIF_RISING_LNGTH_PORT_4_OFST (0) +#define DOUTIF_RISING_LNGTH_PORT_4_MSK (0x0000000F << DOUTIF_RISING_LNGTH_PORT_4_OFST) + + /* ASIC Exposure Control registers * --------------------------------------------------*/ diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 321c8cbd8..7314d1149 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -434,6 +434,7 @@ void setupDetector() { setExpTime(i, DEFAULT_GATE_WIDTH); setGateDelay(i, DEFAULT_GATE_DELAY); } + setInitialExtSignals(); } int setDefaultDacs() { @@ -1241,6 +1242,101 @@ enum timingMode getTiming() { } } +void setInitialExtSignals() { + LOG(logINFOBLUE, ("Setting Initial External Signals\n")); + // default, everything is 0 + // bypass everything + // (except master input can edge detect) + bus_w(DINF1_REG, DINF1_BYPASS_GATE_MSK); + bus_w(DOUTIF1_REG, DOUTIF1_BYPASS_MSK); + bus_w(DINF2_REG, DINF2_BYPASS_MSK); + + // master input can edge detect, so rising is 1 + bus_w(DINF1_REG, bus_r(DINF1_REG) | DINF1_RISING_TRIGGER_MSK); +} + +void setExtSignal(int signalIndex, enum externalSignalFlag mode) { + LOG(logDEBUG1, ("Setting signal flag[%d] to %d\n", signalIndex, mode)); + + if (signalIndex == 0 && mode != TRIGGER_IN_RISING_EDGE && + mode != TRIGGER_IN_FALLING_EDGE) { + return; + } + + // getting addr and mask for each signal + uint32_t addr = 0; + uint32_t mask = 0; + if (signalIndex <= 3) { + addr = DINF1_REG; + int offset = DINF1_INVERSION_OFST + signalIndex; + mask = (1 << offset); + } else { + addr = DOUTIF1_REG; + int offset = DOUTIF1_INVERSION_OFST + signalIndex - 4; + mask = (1 << offset); + } + LOG(logINFO, ("addr: 0x%x mask:0x%x\n", addr, mask)); + + switch (mode) { + case TRIGGER_IN_RISING_EDGE: + LOG(logINFO, ("Setting External Master Input Signal flag: Trigger in " + "Rising Edge\n")); + bus_w(addr, bus_r(addr) & ~mask); + break; + case TRIGGER_IN_FALLING_EDGE: + LOG(logINFO, ("Setting External Master Input Signal flag: Trigger in " + "Falling Edge\n")); + bus_w(addr, bus_r(addr) | mask); + break; + case INVERSION_ON: + LOG(logINFO, ("Setting External Master %s Signal flag: Inversion on\n", + (signalIndex <= 3 ? "Input" : "Output"))); + bus_w(addr, bus_r(addr) | mask); + break; + case INVERSION_OFF: + LOG(logINFO, ("Setting External Master %s Signal flag: Inversion offn", + (signalIndex <= 3 ? "Input" : "Output"))); + bus_w(addr, bus_r(addr) & ~mask); + break; + default: + LOG(logERROR, + ("Extsig (signal mode) %d not defined for this detector\n", mode)); + return; + } +} + +int getExtSignal(int signalIndex) { + // getting addr and mask for each signal + uint32_t addr = 0; + uint32_t mask = 0; + if (signalIndex <= 3) { + addr = DINF1_REG; + int offset = DINF1_INVERSION_OFST + signalIndex; + mask = (1 << offset); + } else { + addr = DOUTIF1_REG; + int offset = DOUTIF1_INVERSION_OFST + signalIndex - 4; + mask = (1 << offset); + } + LOG(logINFO, ("addr: 0x%x mask:0x%x\n", addr, mask)); + + int val = bus_r(addr) & mask; + // master input trigger signal + if (signalIndex == 0) { + if (val) { + return TRIGGER_IN_FALLING_EDGE; + } else { + return TRIGGER_IN_RISING_EDGE; + } + } else { + if (val) { + return INVERSION_ON; + } else { + return INVERSION_OFF; + } + } +} + int configureMAC() { uint32_t srcip = udpDetails.srcip; diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 08e0fe224..4a244b8a2 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -21,6 +21,7 @@ #define TYPE_MYTHEN3_MODULE_VAL (93) #define TYPE_TOLERANCE (10) #define TYPE_NO_MODULE_STARTING_VAL (800) +#define MAX_EXT_SIGNALS (8) /** Default Parameters */ #define DEFAULT_INTERNAL_GATES (1) diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index 1cdbf2241..9c14c6460 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -337,9 +337,12 @@ int setHighVoltage(int val); // parameters - timing, extsig void setTiming(enum timingMode arg); enum timingMode getTiming(); -#ifdef GOTTHARDD -void setExtSignal(enum externalSignalFlag mode); -int getExtSignal(); +#ifdef MYTHEN3D +void setInitialExtSignals(); +#endif +#if defined(GOTTHARDD) || defined(MYTHEN3D) +void setExtSignal(int signalIndex, enum externalSignalFlag mode); +int getExtSignal(int signalIndex); #endif // configure mac diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index 0de5a83b2..78d62c088 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -26,6 +26,7 @@ void rebootNiosControllerAndFPGA(); // functions called by client int exec_command(int); int get_detector_type(int); +int get_external_signal_flag(int); int set_external_signal_flag(int); int set_timing_mode(int); int get_firmware_version(int); diff --git a/slsDetectorServers/slsDetectorServer/src/programFpgaNios.c b/slsDetectorServers/slsDetectorServer/src/programFpgaNios.c index 92ceada2f..a00fb3468 100644 --- a/slsDetectorServers/slsDetectorServer/src/programFpgaNios.c +++ b/slsDetectorServers/slsDetectorServer/src/programFpgaNios.c @@ -44,7 +44,7 @@ int findFlash(char *mess) { if (fp == NULL) { strcpy(mess, "popen returned NULL. Need that to get mtd drive.\n"); LOG(logERROR, (mess)); - return RO_TRIGGER_IN_FALLING_EDGE; + return FAIL; } if (fgets(output, sizeof(output), fp) == NULL) { strcpy(mess, "fgets returned NULL. Need that to get mtd drive.\n"); diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 2c0ca344f..7fac645a1 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -140,6 +140,7 @@ const char *getRunStateName(enum runStatus ind) { void function_table() { flist[F_EXEC_COMMAND] = &exec_command; flist[F_GET_DETECTOR_TYPE] = &get_detector_type; + flist[F_GET_EXTERNAL_SIGNAL_FLAG] = &get_external_signal_flag; flist[F_SET_EXTERNAL_SIGNAL_FLAG] = &set_external_signal_flag; flist[F_SET_TIMING_MODE] = &set_timing_mode; flist[F_GET_FIRMWARE_VERSION] = &get_firmware_version; @@ -470,29 +471,98 @@ int get_detector_type(int file_des) { return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } -int set_external_signal_flag(int file_des) { +int get_external_signal_flag(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); int arg = -1; - enum externalSignalFlag retval = GET_EXTERNAL_SIGNAL_FLAG; + enum externalSignalFlag retval = -1; if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) return printSocketReadError(); - enum externalSignalFlag flag = arg; - LOG(logDEBUG1, ("Setting external signal flag to %d\n", flag)); + LOG(logDEBUG1, ("Getting external signal flag (%d)\n", arg)); -#ifndef GOTTHARDD +#if !defined(GOTTHARDD) && !defined(MYTHEN3D) functionNotImplemented(); #else - // set - if ((flag != GET_EXTERNAL_SIGNAL_FLAG) && (Server_VerifyLock() == OK)) { - setExtSignal(flag); - } // get - retval = getExtSignal(); - validate((int)flag, (int)retval, "set external signal flag", DEC); - LOG(logDEBUG1, ("External Signal Flag: %d\n", retval)); + if (arg < 0 || arg >= MAX_EXT_SIGNALS) { + ret = FAIL; + sprintf(mess, "Signal index %d can only be between 0 and %d\n", arg, + MAX_EXT_SIGNALS - 1); + LOG(logERROR, (mess)); + } else { + retval = getExtSignal(arg); + LOG(logDEBUG1, ("External Signal Flag: %d\n", retval)); + } +#endif + return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); +} + +int set_external_signal_flag(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int args[2] = {-1, -1}; + enum externalSignalFlag retval = -1; + + if (receiveData(file_des, args, sizeof(args), INT32) < 0) + return printSocketReadError(); + + int signalIndex = args[0]; + enum externalSignalFlag flag = args[1]; + LOG(logDEBUG1, + ("Setting external signal flag [%d] to %d\n", signalIndex, flag)); + +#if !defined(GOTTHARDD) && !defined(MYTHEN3D) + functionNotImplemented(); +#else + if (Server_VerifyLock() == OK) { + if (signalIndex < 0 || signalIndex >= MAX_EXT_SIGNALS) { + ret = FAIL; + sprintf(mess, "Signal index %d can only be between 0 and %d\n", + signalIndex, MAX_EXT_SIGNALS - 1); + LOG(logERROR, (mess)); + } else { + switch (flag) { + case TRIGGER_IN_RISING_EDGE: + case TRIGGER_IN_FALLING_EDGE: +#ifdef MYTHEN3D + if (signalIndex > 0) { + ret = FAIL; + sprintf(mess, + "Only Master input trigger signal can edge detect. " + "Not signal %d\n", + signalIndex); + LOG(logERROR, (mess)); + } +#endif + break; +#ifdef MYTHEN3D + case INVERSION_ON: + case INVERSION_OFF: + if (signalIndex == 0) { + ret = FAIL; + sprintf( + mess, + "Master input trigger signal cannot invert. Use " + "trigger_in_rising_edge or trigger_in_falling_edge\n"); + LOG(logERROR, (mess)); + } + break; +#endif + default: + ret = FAIL; + sprintf(mess, "Unknown flag %d for this detector\n", flag); + LOG(logERROR, (mess)); + } + } + if (ret == OK) { + setExtSignal(signalIndex, flag); + retval = getExtSignal(signalIndex); + validate((int)flag, (int)retval, "set external signal flag", DEC); + LOG(logDEBUG1, ("External Signal Flag: %d\n", retval)); + } + } #endif return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } @@ -2191,10 +2261,10 @@ int set_exptime(int file_des) { int64_t retval = getExpTime(); LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); if (ret == FAIL) { - sprintf( - mess, - "Could not set exposure time. Set %lld ns, read %lld ns.\n", - (long long int)val, (long long int)retval); + sprintf(mess, + "Could not set exposure time. Set %lld ns, read " + "%lld ns.\n", + (long long int)val, (long long int)retval); LOG(logERROR, (mess)); } } @@ -3355,8 +3425,8 @@ int set_rate_correct(int file_des) { // only set if (Server_VerifyLock() == OK) { ret = validateAndSetRateCorrection(tau_ns, mess); - int64_t retval = getCurrentTau(); // to update eiger_tau_ns (for update - // rate correction) + int64_t retval = getCurrentTau(); // to update eiger_tau_ns (for + // update rate correction) if (ret == FAIL) { strcpy(mess, "Rate correction failed\n"); LOG(logERROR, (mess)); @@ -3779,14 +3849,13 @@ int power_chip(int file_des) { LOG(logERROR, (mess)); } else if (type_ret == FAIL) { ret = FAIL; - sprintf( - mess, - "Could not power on chip. Wrong module attached!\n"); + sprintf(mess, "Could not power on chip. Wrong module " + "attached!\n"); LOG(logERROR, (mess)); } } else { - LOG(logINFOBLUE, - ("In No-Module mode: Ignoring module type. Continuing.\n")); + LOG(logINFOBLUE, ("In No-Module mode: Ignoring module " + "type. Continuing.\n")); } } #endif @@ -4313,10 +4382,10 @@ int set_adc_enable_mask_10g(int file_des) { uint32_t retval = getADCEnableMask_10G(); if (arg != retval) { ret = FAIL; - sprintf( - mess, - "Could not set 10Gb ADC Enable mask. Set 0x%x, but read 0x%x\n", - arg, retval); + sprintf(mess, + "Could not set 10Gb ADC Enable mask. Set 0x%x, but " + "read 0x%x\n", + arg, retval); LOG(logERROR, (mess)); } } @@ -4359,10 +4428,10 @@ int set_adc_invert(int file_des) { uint32_t retval = getADCInvertRegister(); if (arg != retval) { ret = FAIL; - sprintf( - mess, - "Could not set ADC Invert register. Set 0x%x, but read 0x%x\n", - arg, retval); + sprintf(mess, + "Could not set ADC Invert register. Set 0x%x, but read " + "0x%x\n", + arg, retval); LOG(logERROR, (mess)); } } @@ -4535,9 +4604,8 @@ int get_starting_frame_number(int file_des) { // get ret = getStartingFrameNumber(&retval); if (ret == FAIL) { - sprintf( - mess, - "Could not get starting frame number. Failed to map address.\n"); + sprintf(mess, "Could not get starting frame number. Failed to map " + "address.\n"); LOG(logERROR, (mess)); } else if (ret == -2) { sprintf(mess, "Inconsistent starting frame number from left and right " @@ -4621,10 +4689,10 @@ int set_interrupt_subframe(int file_des) { int retval = getInterruptSubframe(); if (arg != retval) { ret = FAIL; - sprintf( - mess, - "Could not set Intertupt Subframe. Set %d, but read %d\n", - retval, arg); + sprintf(mess, + "Could not set Intertupt Subframe. Set %d, but " + "read %d\n", + retval, arg); LOG(logERROR, (mess)); } } @@ -4702,10 +4770,10 @@ int set_read_n_lines(int file_des) { int retval = getReadNLines(); if (arg != retval) { ret = FAIL; - sprintf( - mess, - "Could not set read n lines. Set %d, but read %d\n", - retval, arg); + sprintf(mess, + "Could not set read n lines. Set %d, but " + "read %d\n", + retval, arg); LOG(logERROR, (mess)); } } @@ -6268,10 +6336,10 @@ int get_on_chip_dac(int file_des) { (int)dacIndex, chipIndex); if (chipIndex < -1 || chipIndex >= NCHIP) { ret = FAIL; - sprintf( - mess, - "Could not get %s. Invalid Chip Index. Options[-1, 0 - %d]\n", - modeName, NCHIP - 1); + sprintf(mess, + "Could not get %s. Invalid Chip Index. Options[-1, 0 - " + "%d]\n", + modeName, NCHIP - 1); LOG(logERROR, (mess)); } else { retval = getOnChipDAC(dacIndex, chipIndex); @@ -6300,10 +6368,10 @@ int set_inject_channel(int file_des) { int increment = args[1]; if (offset < 0 || increment < 1) { ret = FAIL; - sprintf( - mess, - "Could not inject channel. Invalid offset %d or increment %d\n", - offset, increment); + sprintf(mess, + "Could not inject channel. Invalid offset %d or " + "increment %d\n", + offset, increment); LOG(logERROR, (mess)); } else { ret = setInjectChannel(offset, increment); @@ -7275,11 +7343,11 @@ int set_gate_delay(int file_des) { LOG(logDEBUG1, ("retval gate delay %lld ns (index:%d)\n", (long long int)retval, i)); if (ret == FAIL) { - sprintf( - mess, - "Could not set gate delay. Set %lld ns, read %lld " - "ns.\n", - (long long int)val, (long long int)retval); + sprintf(mess, + "Could not set gate delay. Set %lld ns, " + "read %lld " + "ns.\n", + (long long int)val, (long long int)retval); LOG(logERROR, (mess)); break; } diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index bff65b132..cd4b1d913 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -916,12 +916,17 @@ class Detector { /** [Gotthard] */ Result getExptimeLeft(Positions pos = {}) const; - /** [Gotthard] */ + /** [Gotthard] signal index is 0 + * [Mythen3] signal index 0-3 for master input, 4-7 master output signals */ Result - getExternalSignalFlags(Positions pos = {}) const; + getExternalSignalFlags(int signalIndex, Positions pos = {}) const; - /** [Gotthard] Options: TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE */ - void setExternalSignalFlags(defs::externalSignalFlag value, + /** [Gotthard] signal index is 0 + * Options: TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE + * [Mythen3] signal index 0-3 for master input, 4-7 master output signals + * Options: TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE (for master + * input trigger only), INVERSION_ON, INVERSION_OFF */ + void setExternalSignalFlags(int signalIndex, defs::externalSignalFlag value, Positions pos = {}); /************************************************** diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 5bca7fd7b..d4e2e86ff 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -756,6 +756,39 @@ std::string CmdProxy::ClockDivider(int action) { return os.str(); } +std::string CmdProxy::ExternalSignal(int action) { + std::ostringstream os; + os << cmd << ' '; + if (action == defs::HELP_ACTION) { + os << "[n_signal] [signal_type] External signal mode for trigger " + "timing mode." + "\n\t[Gotthard] [0] " + "[trigger_in_rising_edge|trigger_in_falling_edge]" + "\n\t[Mythen3] [0-7] " + "[trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|" + "inversion_off]\n\t where 0-3 is master input signals and 4-7 is " + "master output signals" + << '\n'; + } else if (action == defs::GET_ACTION) { + if (args.size() != 1) { + WrongNumberOfParameters(1); + } + auto t = det->getExternalSignalFlags(StringTo(args[0]), {det_id}); + os << OutString(t) << '\n'; + } else if (action == defs::PUT_ACTION) { + if (args.size() != 2) { + WrongNumberOfParameters(2); + } + det->setExternalSignalFlags( + StringTo(args[0]), + StringTo(args[1]), {det_id}); + os << args[1] << '\n'; + } else { + throw sls::RuntimeError("Unknown action"); + } + return os.str(); +} + /** temperature */ /* dacs */ std::string CmdProxy::Dac(int action) { diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index 518deada8..1fd577ff0 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -590,6 +590,7 @@ class CmdProxy { {"vhighvoltage", &CmdProxy::vhighvoltage}, {"powerchip", &CmdProxy::powerchip}, {"imagetest", &CmdProxy::imagetest}, + {"extsig", &CmdProxy::ExternalSignal}, /** temperature */ {"temp_adc", &CmdProxy::temp_adc}, @@ -784,7 +785,6 @@ class CmdProxy { {"roi", &CmdProxy::ROI}, {"clearroi", &CmdProxy::ClearROI}, {"exptimel", &CmdProxy::exptimel}, - {"extsig", &CmdProxy::extsig}, /* Gotthard2 Specific */ {"bursts", &CmdProxy::bursts}, @@ -932,6 +932,7 @@ class CmdProxy { std::string ClockPhase(int action); std::string MaxClockPhaseShift(int action); std::string ClockDivider(int action); + std::string ExternalSignal(int action); /** temperature */ /* dacs */ std::string Dac(int action); @@ -1856,11 +1857,6 @@ class CmdProxy { "[(optional unit) ns|us|ms|s]\n\t[Gotthard] Exposure time " "left for current frame. "); - INTEGER_COMMAND(extsig, getExternalSignalFlags, setExternalSignalFlags, - sls::StringTo, - "[trigger_in_rising_edge|trigger_in_falling_edge]\n\t[" - "Gotthard] External signal mode for trigger timing mode."); - /* Gotthard2 Specific */ INTEGER_COMMAND_NOID( bursts, getNumberOfBursts, setNumberOfBursts, StringTo, diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 8af4d6ac7..a7309a3f5 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1169,14 +1169,14 @@ Result Detector::getExptimeLeft(Positions pos) const { } Result -Detector::getExternalSignalFlags(Positions pos) const { - return pimpl->Parallel(&Module::setExternalSignalFlags, pos, - defs::GET_EXTERNAL_SIGNAL_FLAG); +Detector::getExternalSignalFlags(int signalIndex, Positions pos) const { + return pimpl->Parallel(&Module::getExternalSignalFlags, pos, signalIndex); } -void Detector::setExternalSignalFlags(defs::externalSignalFlag value, +void Detector::setExternalSignalFlags(int signalIndex, + defs::externalSignalFlag value, Positions pos) { - pimpl->Parallel(&Module::setExternalSignalFlags, pos, value); + pimpl->Parallel(&Module::setExternalSignalFlags, pos, signalIndex, value); } // Gotthard2 Specific diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 4953762ad..669bac4eb 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1312,10 +1312,15 @@ int Module::getADC(dacIndex index) { } slsDetectorDefs::externalSignalFlag -Module::setExternalSignalFlags(externalSignalFlag pol) { - LOG(logDEBUG1) << "Setting signal flag to " << pol; +Module::getExternalSignalFlags(int signalIndex) { return sendToDetector( - F_SET_EXTERNAL_SIGNAL_FLAG, pol); + F_GET_EXTERNAL_SIGNAL_FLAG, signalIndex); +} + +void Module::setExternalSignalFlags(int signalIndex, externalSignalFlag type) { + LOG(logDEBUG1) << "Setting signal flag (" << signalIndex << ") to " << type; + int args[2] = {signalIndex, static_cast(type)}; + sendToDetector(F_SET_EXTERNAL_SIGNAL_FLAG, args, nullptr); } void Module::setParallelMode(const bool enable) { diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 923feee78..838621403 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -549,14 +549,8 @@ class Module : public virtual slsDetectorDefs { */ int getADC(dacIndex index); - /** - * Set/get external signal flags (to specify triggerinrising edge etc) - * (Gotthard, Mythen) - * @param pol external signal flag (-1 gets) - * @returns current timing mode - */ - externalSignalFlag - setExternalSignalFlags(externalSignalFlag pol = GET_EXTERNAL_SIGNAL_FLAG); + externalSignalFlag getExternalSignalFlags(int signalIndex); + void setExternalSignalFlags(int signalIndex, externalSignalFlag type); /** * Set Parallel readout mode (Only for Eiger) diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index 489c9bc5c..f63a6e888 100644 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -207,29 +207,10 @@ typedef struct { use of the external signals */ enum externalSignalFlag { - GET_EXTERNAL_SIGNAL_FLAG = -1, /** defs::externalSignalFlag StringTo(const std::string &s) { return defs::TRIGGER_IN_RISING_EDGE; if (s == "trigger_in_falling_edge") return defs::TRIGGER_IN_FALLING_EDGE; + if (s == "inversion_on") + return defs::INVERSION_ON; + if (s == "inversion_off") + return defs::INVERSION_OFF; throw sls::RuntimeError("Unknown external signal flag " + s); } From 8f0ef68029c9a46c44572d6188ab82b5d044d3a3 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:07:41 +0200 Subject: [PATCH 16/30] binaries in --- .../bin/ctbDetectorServer_developer | Bin 195932 -> 198344 bytes .../bin/eigerDetectorServer_developer | Bin 361367 -> 364759 bytes .../bin/gotthard2DetectorServer_developer | Bin 174524 -> 174796 bytes .../bin/gotthardDetectorServer_developer | Bin 147168 -> 150028 bytes .../bin/jungfrauDetectorServer_developer | Bin 163368 -> 165780 bytes .../bin/moenchDetectorServer_developer | Bin 191304 -> 193716 bytes .../bin/mythen3DetectorServer_developer | Bin 159932 -> 168744 bytes slsSupportLib/include/versionAPI.h | 12 ++++++------ 8 files changed, 6 insertions(+), 6 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 6ad157896cce2e80d1d6132bc7bbc0c47ec45855..dd83c6028cb150450102e23e743d752edaccf87d 100755 GIT binary patch delta 97481 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 delta 95079 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 J^rp-#{$CjWN%a5# delta 91112 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 E4@_ny_5c6? diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 404d7742b0862f50af6eff624ef2e1cae42755c7..eb7f51761b32bc6d8769db052ad083e0bc0db859 100755 GIT binary patch delta 44488 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 z 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%0AyY7nM|0kC*mAZ@7Lp8OPrGvaY|48 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

#p)VRDA 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 literal 147168 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

vt}JnKf-r*JEGkKbzYnxi)+ZqX{$ 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 delta 81028 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 z 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 diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index c7b3d34f11468cc4aef53e5ddff66d389a7749ab..a0b431c8cb3a0ce95ecc766858f490c7add94305 100755 GIT binary patch delta 93740 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 A^8f$< delta 91362 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 Wg;=E4v9)=yuQrK(*!PP7ng0ujrV&2? diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index ff78cd86a77760ab37aaf857e55b9a525dadd7eb..f8b2f12ff2bedb2af759e751838126de7e7b070d 100755 GIT binary patch literal 168744 zcmeF44V+a~)&I|(Idho-1}@6sTok845wXnBP;pY{T4SPFXWreHqJn@TZ}#TF;+%xyi3`6Li*Rp|4{8)s+8n?Clmahg_r$cKxYu) zvOOG)SALfijpO%m{4TVddm%}e#33}ENXCy2sF8c2@V5^=)jA~}{wjVG3e)$F8Pm^s z$BZd&pD}&r#h1K&=JX3^AAI2K3lBsh!80U5^Kk43J}fMKZ#PAbvoF{8KyQVHLwiH= zHy&zG6ue8)^lv}@mvVCzq%Ix^`OqlnQ0Ndy{-oYDLI*%vfLxD+l7IUm zv@wsQtSkpRb=+Sff$}H$yCvl~ZL#|=a6dnG-^%@svHNSezd3dvmtiB}eH2<0`~4)I zFU0P*^7{j^`zQE)dF=jXeqR~8{}1j@_+cQ6-JHSBemuV>_WPH)-x9k&hx=L)9)FU* z_i{fxcK=;?jj{Xtxj!IwKaA%m#_mt!z9n}5Iqpx4-M8}o8L|6m+)s<$pUr)1?7o`! z^RfGh++Q8Le~RaCh}}QO{Y|m^Wjwzyc7FxGFOJ>c!0$_A_tFl-zr6wL`Mo3d`(yA{ z$L_z({l?h+!#wXwBj-=#nWFw=V)ut|KZS=1`ukw#+dMxi_WL64$Hne%=eY^7`-iyC z#qOu`{0Xu9JGnnCc7G$!Pl?_Cko#G&`xkjW4|5U?OX|yo{C-*N_xt&MUhKY&->-|^ zf1TeK#O{B_{VlQk9QU`!?uU^7_SpT`32#~K{y%wsMeP1}{Jtu7-^}mpWB1?ZK5Wn; zZ)x-4Un5{GG}s!v{JuBOXJhvV$@?Fv()Kse<7kCuIq z;LZ(#n|L8vPUpM}XHA{y%$j=9MHgNKcRB$ce)w6lXP3JafwQDd&+ZvM|$`J$1&^b6cIW&$;lTR%e!mM?zXJ zJm0zCg0p8i=Y3*oD-pL|G=pa^n0mo%(tFlfL^$)pvu0d)?%A!=FP!O|GkxY1=hL%i zTJmPMPPy>nR(V?TbKbc#E}T7;cv>a97tZ2`vuE(CBuDZ%d%EWQ?AG8id+NCtkmAph zxC?|clQ^7NK^Pa$o-uVQY5L4X(_5!H=Up`Q>?zLKtrt!ws43GwtpbT8biu_lgkgEs z9G`vexl@V$tg~ice2)A^=%M7KOswcGID7icAZ-`VoUKJb$+k{8?_h~gidls?TSR#5 z3CF$rJ!c(!;K2vM)*#NEeKEP3DJhEXxfKTF>?5uB-o6H69f~x{GBM+jE_?Ui?PAqX@bQ-;O`8<)|pNgEJgr-Qv?qQ z@HD|g13W{pWptL{VFABYuqX!pE)gsS6n~cq7Q>CdykIk4+60>cGf%J>8~j}@SPU2b z<_i{sgTLzpi;=_M4T8n!;qOMlVx;i5K(HA+HwiWa@n*qh7~LYcQ6F~}3bwLXBzW(D zf4g8aj1~(PgOR_2U@Nn)miwy;R}x2~OT|kIrYB=FRndC!e7nXOg_8RYzrV2Ua`z|Jcj% zd57m7b*l=GHH~vNrb%m>w5Q2Sn!KgSYnr^LkwqHWq>)t`*`;Y)Y2=wkzG>v0M*eBa zBTf0FDX%o;m!>VIDbqA%oTkjv)PXd0B267hH$v2*G<7OX9ZOT^($v8;buvvIO;cyn z)ZsLBI!zrfrFYYe|Fh7XA0x5w~-G5n4g9v{O8#qhx~{LUDj5W|PW@S!n$ zSPV~$;lpFNDTdz_!$-vMkuiK!3^&JcE{2be;djUIdt$gHhL4Hi_r~zCF+3@Tj|=d6 zC!cm}Z~I5nyqe|iR&+*Hez})&9uD*ddg7P!&=WsfNYk!zk8;o<*B(QYdpFJPkqJ&A z<-WUcc+*Au)(pF2SxsisLjy&xjk|Q&AbEFOxp&>o zom7n|Ff=Ixt7H{NjQKxcSiRJGGW+G_~UCp@3Ld!xAD;b5pSvS(EkzdkH$m)N4&op zZ+MLNknzy}(Q_+|hyIUvoyJ4|N4%#4Ueml3eJ6D>f4!73a;wYaUa4|~-!$*A4qy94 zk$X@^?kki<4Q1iNgS;YTQI+fTs`H)HuTFOprt|75$J?@`!>!79c$ABjP1C%g8NaxM z-*YK{OLM35BF}8)H)upP<;OL%iL!L1PUceXbD!Ryv^a%#R69Olm88Y$SWt(Y$7y@Z z{nHjK(`OvgW%WtzgOuC{>GX@m4#{iVHP=hs%=)L6dFLPGZ-4SPj(7IUJ?f2h9`*L6 z&5WVV?2}vJ?M)q*-%f2@=AG8K%-xhvHO(6&_D8Di8gF!Nw`#@i=0iv4CsjM%6XfxU zIh}3%u6cQ)xikN-DyJ}KPvj8JtJ{_25B`$RS(USVg!w z;`s3XS~tDJg79A<{8#35MzVS(2w&Q$NB+`};=hveogS2L!)PZ{_+GU$S>jGRnf#9o zQwGj2s>`Rz57Oig>tmXpBu!7o()45^O}At7{Jc3-Df?)7hFv7HgJt z3|d+2@LwQ~+Wd0=MXq&R;d=wPuI5_9^?9youFrC<=K360m+LC7DX!0OrT_5%#ns{Z zbg|QaY61;_^U3n>ZN8k+k~H2lovl67}axL0Premn*BFj%vMpnJ`|CmC?(IGWsC80@;Y}Z<@EC zBXSwx=5LT|!>Gb=NyCAA&2DicDVRDzaL=q?2@_OKH#F`i$0FX(Rcf z)a6)OHjtJLv9xSRqy?KgNXux_vX3KWFv86ZmutfwT#?U#S!a0g%>F#{Ht}UYO8@sL zzjY$JAPsl+kcRc7VSOwO>l10frq=RZVP&lEY3Fgj zhIF{jquu(-TGOeC{tbPV%D-<n6pr|}j$ zCLH!trzJfv(=Zsl3Xk?6wnfU_U}0%L5DSYwT*8vEi#*T!Dc(OQdar2j(J%O0WBJd5^)mUYBVV=X>H+9%u9}`969c`uiFY@}(zD6(wvoJzL0=H=`fBv%{P`K_ z%cOqG7)|Q-n32*?4$AnOn>!2d-P3r~KklX6#tzHpgXg+v-ZZe9FQk%^GFvm8PJHG__U90LR;%@m!>U`y~SB&ZEt7B zDSisC6XwG1x zb;$FQHVyCKAiUfQ#3k*cSmd`d^)G3c{tq%Z2^pM-3?T1T^7ad85p)~$OXye7?a;5G zJD}e{iy`DykDRI@~P{RSrA?zGs5$shUbvktvs(`+4CF1NC0w2*x_mm^VwC*RiSU zajDOe7RIbT^?t;Q&cgR35}#a*s^H`<7H7ukc=fPV= zbX+%|Qr>x&?C&~Nslv&loWcy(ab~+t{ybOT&o>Tma>uw%?qjawrkzyovl0{GU7pr( zCBDLpng~0W);Q}2&?Xv3kCxwZUld!c4&u4*rh_oY4bbOvzY5;VEvZrcEdJa@mmi&S zbJCvc(TUg?>*f7HP;g(Em{wg${v%s)Ik;hMbH+JI`tJ($<5_g3N4p)4&V;<@MgNh` z^R13BR`OqnjbRv1iOr^EclqrZca4-?UB=CHA8UB4DQA4<{_0|fj1|HX`ea4MaMmlDHG03;Xp)%$wI71#9?rYA-n5e9NP3T2;a;eSST3BNCOdEQD zFrh_Nl%Zm5>Rf2=bp1Xdf2I9Cr&Gcc`_nx-rQ?P0J^BWxX;#-e*F|CS4$sOv73)MI z%~~I>=~-vEql0`6cNQSeK^eKPDy*!`q!|#$_nO~yK=-5Z* zmt4jGG7ge4nmgDq`bhe1try=nd2XTZGX99#i;WYp)pgFyZ47Pd0h#u7LEY3cgs=5C z_PdVf7PiqBP{xVh2M?xgSf9{HztS+s$xf3i%MY2G&dB^%BYk|s04LkXvs^PW|3#bC zIWw0&NaoBWkD4d)C+|of)ASct%UtvIBg>cc*Nn5He2MNw|4F{ew)YL_)7V%Ve>Hwl ze4{SD(V9Xav;QfTS=9f=#?~^g=npK|*tW}-5dUlkoldb)^(y{M>T!9y4OuepDPgLPb#CqRlawY$~TgM$yeq){XuzjDz-8fU63x<$!M6&sa6a-^qp(i z^tG`$j23*qYBS!@hTnvKi@G1k*!q;XKf9Oro5r`%HVGr9`?a3N!+4rHI+8v=OFAIQ zpO(pAtxU`h*5=SQ#rJN0F#NC`GM6pBHguQhFKB?-tM_PMKB5j8_3(QpLz^7l^E2YF z6B%oo9%)6$ zUnk|#*Y~z35Ak#+-cwtaH5%e?mhyPr(v+|_=TpZU9&65sou0mz^e{IuW-|7z%mt_q zOxol<(l#5*w^5$ecXH+487FP1{CoM#9oI_#_@&04-f!#S{ibio`*RyT{EyxXq> z0?%oG5Y`zuBc%6!i< z%0k+NjKMU2Tm@$u;U5Oy%E%YJoUCI#y36 zNuT66-dbdp#xGhtHsv!9=WAFoi~UgBBSaN^MfZ77W0N07FWS4lNSjKUyJyrTTm{c(%-E1SD&wsqJ*+YFneXbZ8}7^aAH|L=`E4$CWC6cdAtQVZlWWv3ucKdH zy(HUWGSYs2oypVYB%}V><|NT=PFZ`q-1y6UV_j*j%Y^F@bc`duHkD({hGG07dQ)sC zO*g-5y17Q_M*iY!^TkeYH=A?_bt4=LZMHmA7&GX5j2#F!7;}X0xrYbyQIw6pH8vk* z_GYTkKZ%tpOk0)t;LS9)p>l4OLR?! z>Mru3GLZa){zmaxzJLr!rst2IZ_#q&*^kN)`Pzz;RAQ~!`C(zf652t9q~&^ zTa!7jy7A#WQ`x$>qj?(DOP=;6Pho=wV{Kq#@Qy3K)zRWF#nv7ya|6RD zm)*1L>+VRk{OGoWTHF4dYQORitkJ8>QD&3!Rq{+YXEeHzH3Q?M9Z9{-*TjFT=eMC! zwt3#0SNdK!*BOLU*dS}70vzVw-JdcUN10gIQqKxEFEygO`RmYLz(vs z@>{5n=c)H}`&)`Sx7X7fC@qyfR{YG}j@MUTUXK*8?ixNg*IVFjHcboI*Ue`^9bsK+!vxMq z)YlEo>c5YrHAO6F>7*Jeof%vHsGV;4w#yc6$h z&$Ra{*xEa#ZodY7tuKDb4bo0U=hq{TX6?_VZu^v-=oF9fn745k?{`UK)bFBuqJEeC zIL_~7oKxfU*iJW6e_2aR=v70h@+eU+Q3x73-6^_Kdk^%mVG`--&Q3Qy{- z@MPXc>aFmk-U?6WND}o{bS?ENs&|w}FgMbiYA?=7>0AI|Q2#`?NBjq{@kEE5Z@d}C+nGA#yngDCS^t0P5V1qv)FJeJ zJ?Rjsx1t-Q-iA6v>aFmk-iA6v>aFmk-oB|rx{smC`K}lju#Z;f)W+j~W8bY}?<{;e zkmyk7Q+w&&8qvLKM_g)cQEcL^v9SjIf#_o`OLVpN2i0Q7;Ma5Uso;+k8$-(m+!o?$ ze2<1@jfmUGGdhkTJXw=2>lkJJn>j|Ynf-0H2AXU5yH9z`JZAiN>D$7!@n!udv30qw zto@aEHBUjf4~S2TbTIa2Ow~hv$gAW{^CLLS4_NY3B1h!y7mM^`$X({WxmJ`D@)y6D z%0{pY79XZy9W#evmsw|7X>3HF=}~5C<0btlUpPGQ3nELg`J#SSY@JGelxyrA8PjZx z)rDQ%kMd6ZCpi~q0sQQnCk<>3F1{3uC3!T|D@PUf!yJLh99QgJ z!k}L->bzdqPnVT%5A!#&j!?rTePNn3Tx=3qpB>JdReHvykJs_a!WX~FrdayTXBdVby`PXz#1F%j zx$vTmBT`L)y=nC$vNy%9$KI^CUOZ7B!!*bm8L`)0D;vF+dI@iAI;ba{Kb3K@p~bFl zK|jd(G*Xv@FZO$n`&JX{G*vzWEDsV7`D$}0e_6vw9hE$^RpZM(F{l&mf=`O!4+U6$ zm%21OXLZ1yubBUsFG&5!$jc*c$!9~2*)*d9-_@JuI0?Qv^Yd+f14lXE(1>5~W0Cqo`>Ae@JjaxbZOl4f{X?-y-$cE8HBs*>=yP9W64n>O*Y(PjsiZ;9q);7!4p5zd zZV;ci>IR;P>joK%m+hl|Pu>q9?-R)PI}0nkgYzrAgYcD)$5#$d>q+W5)|1oD{w#Yp zsY7xo=Bb%n{+>DQ`njUP-HZ5!%uDl2Lri~8B z`@Ey;t^USyvX-3tYuI1tBkQK+V|Zpi;ueI#x!x_Lm zWm)n}$P1sL9DT|w3PbLZS9pJo?8hWN*ZG}uO?80Z!}WpcLUwqjkUb{iiCtPm=iS?Q zN~(+hl^UKc-j^NjEX!U4*03@K=NQ8+Zo#QhjJ$q3K=&8QUPGM&>dRjCGPanD9v8o> z`u(I$S5pU7Z!hU+!~XKN6gvh{Paj|(Nia7vH!JO#_S=C?!rFE)&$mfk=Bj&B^}dhq z^8QlZZFq^f^;kF({*d~-BfN6)i_cE{h7S~rq)W=JhO)J^*?j}+BZFs1r|K5+H-L1S zp3!#pMXSf6PZ)zldf4ok!2S;QEnGvLso1Z_e0H*TR`jP^#km{kXZOs;zsPw!?gx-H zI?>zItny|azQaG0eFP#y({ZaMKirGFBcCY0NuL-#Bfn`GY%Xd!jIGBPxtTVPji-6K z#`1*h{4LtX?OddwZMLAlbgje3OXJou-c+OwrfGZaD%(IrglJEfHcjAJ~Ipzcy@Y4)&$oV&T)i%GsF}>r|OOS^7LZ|B9=wH)hNx zYmFm2U}0%qB0IqH(vA+6J>qhvq|Y9fo5>UF6tFj~?%ZwfOW)1!(npK_R=Zg0D0Z== zfjBdp=DR`r=YA7sskKtC#3qQ^q10>YsPq{UMlhe7SeqktbgMiQ&Z~y&waScTlk&i} z@nU|1<+KadUa0M?xCYEKxh-91lB791RN8cOhM26`4rRF2WblB=phEkRb(Ao`c`zxnQok zY`c-Yhy$^K>ahPHkNTqHlCYl9PD|?9bCxI4DfuM+K*u0&sUuR)(#Jc@kD}|)b7D)1 zd~~c|XX|6?Ss$|-;XZ*rV%#Fn={k1mp6uy!|5b)B>kU?y;mbTXbwS&+^R8fQTCw~{ zo78{uHX=*8g=IKc>keZv3&*o?q#jFKK);HdwJq2fTFToOUBsA6?Eumqjb%7nP4za{ z$bQw|ugdB>%NeIhUn>1oIp0mPOk(vtl&jQbm1%O#QAZ#nx05UB)3qB<8SiQ1i7cNr z-gCy2F-2H!_wHSes!MF#BeEE=r<0B3*;AW1#KJ}%D%)~;Camko&)-;~u2XOPjnd}I z=ore#qm4*^8t9=u=$JLMgQ2v8A+!UC`9qy^!#6>DDC*pstbwl;z2RD$=U#R39^6wN z>}Lpc0esh4nhNxR+092=zO~$A?Pjy-R^E@!@F4#YrmluKeXHYm>u6IiLF*ybo_Q}r zv^BAp#^To;QJr_x$M#mn<%c+q){&t$pF0xXc*=eyWxfu*^CVaHfk;@|{uq^@`9uj<3|<9PlBd;a-8JkL4CZXtMHbVsl0kv%5ZHrn1#GnrD)gL-1R zXk(X5JtrtDy&_A!BC8P%@VS>V9l_anQQf6a2>DWeQCy$wL%p@|)P7>mjp_idkq*%K z3szT%mogIFsADv2-i;scci3pUK2>BnOl;1H$TUa#=_7mDx6xbL?jddM z{Y=|Eq^*4i(zbOQXBGdJbCpt@g_a7=ubXT2qj(pxyP|7+Q#?xhY2CLUp5=A*yGA># zFZLX%i-B#fzhC{i;H zWsH$p(%ItYQmQY0ZsAq)Om!^0>L9!}v0bFD^M3oPC7B^9C)2cauComPOt-KWTUb?u zRTT@XDhNx)Iz9TOlk-SL`a1N3>h3Y58$6aAX}W)JaY;MCMoErU!*R+4X94w^`3M`Q z$Qn(3|IhZm=mYxr=zX)e6NW>1a&}&@E+-5td}h-_Zbrs9W!qd&^LxZSOU4{x zYlU{kgO)Dzga2|&hOsk7)88|H?PI@DU$^?;I>G3C#Vf(s5{mx?MjtAE7A$=&@rHA8 z?(;>#S^Q6&Lr_o|H&mN%`1#*-`G#NMUGaTw(|#Y@&-(B+mR|P7`Y*UzamtX%~TgF8xp#?j*t`Jn`FTI%OPa;p)7poXIM`2lJ=s z$$F>#bZxs%eh71u*hVVjGUswhUq+j04EIMz`5kKMqVMoG#Ok1(t)RZ!y=|?T?9F9= z^$^J~S80P1p6q9r^1PWi^t@AS7`b1_y_BP1+HgkNonW0O;apk5(76uj!*YM`IsMoN z!z3+b>vz(R7LJvWRaCdbF@$gV?P)BcXL(b;j9nvnZj(CNbYTNI($DxoeRNV*(w6Z1 zMr9&v61uf1-qB~tBWuc|XUmqKrln4eDGp zu9vYk@8{kc?6Is|uF^knuF%)yEXXqcoC#(g=zS0KJnTn+i&{ry!Hh_JtSlWP$fhfDEuX|3~8hu?|p1#fr^o6v+ zZu*5bi2OobPZ*T_phoRW&a`~#SqU+n{d|xwJ^N-T`C`tfg>#_91}ki+4e|xAD=p20 z$yt6fZzlb&J`d(9_(ZV_UchHh`lE70-^+cZ+rg1;2Yb>77t!nV!#?K?=AK5cQ#Vx} zW%4O{y?^qNy398T;&Pd8a-q-k*Tm$qCXkD!fxc13ni0m9)bn8`A}>9!rAuC(*Z}a# z$xHOVzqZ&hc0c<1l4s)Oi%d&?>yo#;ueQuu`a#ZFk8GKXEDvTUL^h$>3Ej?P84W;RF zQ_MfedKJ^nVVbUctGzOu4xSOi%yd7Ohow=A1L`1KZA@L zbgu$pd^%mHy-!GL_BzKcl8-1IuYhj&L)$L(orygmGWW&TQ?3uMU<=Efn0t9JKjz$4=QL~y^t$N6!XLW!ZwLBgDD7bG z=%)NIZ0`FwxAy)VePW~7f8OSz`o~A$kMxnF%+>htMNT3YctO2eX8Ex4kMa?gf1Qni z|7p)znYV{++seG+TwG%PSXlR^E{E$U%gQG?XGOgU=T$_1>R3*6gY<{epV?K;YnE}p z^vQa5GyOH+*2xYTln>6RTWR^Qx)s%3t6NfT=}%BM)k1Ux7it=b>E%Wg5%{)y*Eoq=$ zb)_LVZ#7sGOP;#@ZfUF~jiv83M&}v9*EDj~IHVjlk;W(G4DJeJ%Y;qrd^Kn*x{r&x zEpv}@ezcBtxF3^~^KHX(PJ;Ojk@qCZK=z(1M#t(}XZYG5Ge(y9Cv5z)e(z858gNap zc4~sNOy{(f?=GWlM&}GjUzhFa+>_jT{D)E=P}%knYe(pU6)tDM=hli1JUWwmp6kT9 zdAASWn`o=DaZY@0KR)-5zR>t9{XV(O?}79`TMb9`z{V9Ut&Suc~dft9>`@ zgO|(qD4g87I{aCQIvajBELLZwzIxarGRAOv`tHCJ_~Q4%7e5MLJQS}>I`;Euo3s)7 zaXkxF{oQA2S~3L=<`O@%_phTm{D0j=9bsPJoXZ0r{CP)?b_Nf0yjA$~R|WojP5Y|A zpYN{vJo9#Ub*QXQzaIO%fIq(wj6e9MS2Py+aMy1#W^0k}^9%{T)#t6et0R2_WyrNl z9|mJoJ@*W~t7)29nqIBTpR)9AAblHR>Dv&_H_&cKm!ulKAL;6mK zwRz%$3GVO7xV5aaq+E`nj#iGVV9(pS1HM}$&uV|q)ql$J#+kw{S8_WU!!^ZDhh$>n)ngDCQOF{|>?GMXm!-So*vgKq?$hHPaok=D%*;O-qXIMDU9 zb1lzsjCPyFyP9}c$KqXW=?v|*#rE8DJojAex#xoCyr-!L^)}WgJrak?b<9Y|d!Bco zAvJlvL3dQA^VA@|6DU0Je~xr~aO0ntW0ZLUaP~&<^RiBl`Vb2%|3AUA`a5=%wuj$Y zx?Ui>7p~}}FG#7JUkK8rVI=xDXJ&n1i{4}JzR0^T#@fY;!Mhdh!R@t4s(w;plT5tX zaZZ3HL#@y}=tgKE)DA6&RzuEz^KES?>bI9#UoPX?u+RUK@!~eg-;EcyNggrYxY)ao z8!v8?tTbNSCV9qqahv1?;|-66x6XKRn`EQ$;x@@vYwx7dgvx-A+#7;3OxvQK&zpR zkh>7&2aSTpK@*@HbOLl5GzFRkT?WmAu7egpw?MZ;?a(r41+)rU4>|wKw{xK^GzJ(PJt#vGoVYLHfTO{BXl#g2r57iK+B<(&>Cn9RC_CR7ixqKfF?pM(239)&@`wO z%0pK}H$XQ*3!%l(Qs_ab16mDjgxp_{e`pjm4w?YvpcA0epefKS=rU*?bRDz+x&^u& zYKN9VE1*@-dPo$(U`Ph=W1#WS5zr*)6lgLu1G)rigXTjwLN`N;paS#&v>aLqt%0^c zwYQOfs1Z5ra-fx%b^bLT5nJpjIdkT@Bp;-2^R!7DHq1 z{J%p>$?tgQh^Upv$0n&~?xP=oaX9s2y4ct$mlb3${NZ-W1#WS5zr*)6lgLu1G)rigXTjwLN`N;paS#&v>aLqt%0^cwZEaPp+@Kc zXd=`Cod}%)O@msYJajd519TI#5Lyf^g&u@Dpw-Yu$X!hSp;6E{XabajPJm8>ra-fx z%bm7fsZ%*e(M zH~d}jaKj70!wmlj%-B`a@DuPL!@mI68eR_a@B@Yq0N-zT0{C9TP2jr?9}O-TJ{EkZ;S<1j82%9W zSB6goFEad5@c$Y<6Z}7h&j$b0@Ko^4hR+B8$nZ??e;A$({(<33z&9G61OB$*tH9qh z{1xyw41WVW-|%<9*BD*^{<7g8gTH9_r{Ffj3&Ec^{7di^h8KfBXSe{q#PB`fiw)lo zzR2*O!513-8+eA{<>2Xt9|fOhcqRB;!_R>y8(s%K)9_~SM-AgMPM>Oc5cm|syMs?M zyeIerhTj5ypW%JLlML?%KF07{!S6Oa9^7pB5bzO(4+kG^_(<@fhTjc-r{PK9@rF+T zzuoXj;I|q+8N8q2)4*d4p9vmq_#7|;NNr!!z0BE_&LM( zf>#-S0Q{8Uzkr`G{15QshF5@B7=8l$u;G7!|6zDF_-}^Sf|nV78T?1Xo58;~?0i0x zzRz$CxZUtT@NW$d1>a?OIQTb)_W<8+xDkAt;j!Rb4Icphx#5Grw-`PY{NIM(1^%&N z<}1?wY4{lM0>j6Hzi0SF@OKP<1pF<-9|K=!cry4}!{>p&YIp|tD~3M>4*kxb2G2GA z<=`s~UkRRL_>17n41WduS;Jogf7p}{v-IqhW`rwkl}~GA2hrIe1hRl@NtHp2EW(vbKv(FUJK3{ zeg%A_;Vs}M!>KDX>B9`C!4nMEgAX!19DJbREck7PM}fx~ZUpaZcwg||hTjT)i{bI$ zQHBo#k2HJ)c!c4j!Mhti7MwBsK5)I^4}u38J{3H`@EKqR%&G^@0jCUq0=&)aw3*<| zhA#$hG<+F&gW;>dFB!fD{G#FOz^e^^5B!YbAA_GZd<*zV!?%Jv4F4MZsNn+m5yMNt z4;lUo_(8*ufd68+1NKlo>c$Af=j_%QH)8P0)kGJG8PhlWoCf8X$_;O`p#IQRy` zQ^D68{v`P8hCc=Vn&C^pR~w!K{*vLVz*iZ*2K)uX*MakfZvH~Yw}9Ve_%hL@?|_FJ{txgl!#@EJ zF}x7WIYk=&ZQxqNi^2E+m47$5%J9-Q{H3f-jn5M&=KFB5q})HcqjT3Y@1}Fx!8#fB z&)M1}{QmgJ%dBxttTWa4L%%pa=se@PT#c)HL<)8GE$tJ&m2pP~a}X_iasC7T_Le;h z&Ro0RBi9CgXT62YRUE@rf0rxo-NUtg6u(ym*JHT0WO-li<#)N4@LA7s3~A6beKMHG zs<{3ou`WU8K=nQ50K$1Tt|{g-Q^DNehxeB`(tPb6b{;JAJXLu|!>gEQZrF!8kGOBReqqU6!HETYD9|*h70N?b zLpMO0wr7bqY=5i4Vf%Xl9JaqT;IRFz2Z!x%BRFh-o4{fF>m~gfFXhzg6dd>N4f>t1 z65b|w)b|qJ?k{IO>Uat7RCv_)65dvLtV=549sNqyt4Z+Ag_ln7=ECEAn38w@8y@R~ zN_h9ct4r`Y;SEgisyAl6K?&Yo@CGM%lU~j8J&MveX22Vg;N1alXo9x}UM9i&-KMNJ zEWtZ|bJp7}!MhON?g`$P;0;gk9*5^8c;1#Q=RKCD`R(xh1aA_&Y=ZY=cq0?Mc6fUv zcq`%Unc$7yn)OB{ct^wAE5W-IUPFR+9lWodoZQ1n)9ze7Q;I&!TSfi(-XYv`?KCh z6TH3PeJsH{9^M%V-V}IeCU|S%eLTUd`+e3sE5Z9QyvYgPAK;yx;5`ZNoCL4-4_WWr z1n=$erX+YDf;Tn6`wYDE61*GXeImg-`GKrAEx|h<-t+`-KDcxv))As-XZX2CwNogwI+CEg7+l68xp+CLs{?J z3Eo@beJ8;?72bCfyidWqF~PeY-uDu`N8x=x!Fzgn*84$%cgn+AZ$W~0BfK9bc$Ykq z_5LHlE5Q5D1aBq0n-aXbe`dWOC3x?E_u~ZbBk=w!!J7x~<^=C1c>kT?`75&CPZGRS z;Qchg`!9I6BzRZB`&oi_F*@vj61;E1`+0&_;N67@-Vu*xz5h+{PK9@Cf;Su9FA}_O z!CREz{Q}-?37-2{*863G_YlwhD#2^!x!V)G26(?t@J@qwM}pT1?>7nF)$kT~@fOJ# z_PoxlcV~i^hj&+kw-DZv1n&><3JKl?Ph`E{CV02O`(1)pgm-s=y-Lj;Lh_v(@dfC5 zRrP5t=}^B5XBI|2pdNi<%xA}ZKRV_$|BbGx{r*6FF!k8$xs<{oN<)fo%1Sz_>|3%)Ka}mK()eTPVPCwQsU57HuREr4{1yC272{9tcVjP+w{;HZ z5C-Rih3ODKQN#ZDTi8>eXSs|8Z!NOVkiBdB$R4gz`AJ#mI@*Eqoa_VR?2Rq4Jb0yf zkUdUipL=5?I*0WD!F#DV28j~BcU(Q~qMmOiAIB$*fNSZs@(>0oXnTng{ z`HfBUMmm>1RD0T{`I*U03p0Cfnm^<;d5&*b^P4BXP1-a+ePYwXdmA}}bCP`PvYq;N z$1+#^c>yi`74g&v=~)4?N0jFXV-W2!Sc4v((d6Sh)$^B;@y#jft<*vG!>SyPtO?qw z?dSDn->a-k4fpesw{ZP@uz#j&{e0Wtz<1p?H1J)w)!}<~@IAv9-}N!n4K4e`nrYP; zEywIH<(J#UezJ{Af_-|VGmNYKRs8Ks?+Nz*k$<1Pe+SC>-r>uA%%lnZKL(n0KhWXD+EP@oy*FTUZaGde3=X zntt*ae8UXCKIeI9xtwrnmtUXXMGhlgSrWA2NdKGOKfZ@{CGC0J9Npid^-1!@Iw{&T z#5qIs8{&(1R_?)l8Gn0XUd7o*&KOCRf3}XjSTC~|YXf_+p!nQ{=djnr&MJ%N-yO6~ z_Mb>vXiwT^vU-jgXP>#73c{yubhV{+nfo9dchD8OH%#U|hE%cF`EP@?{^dIM(C^K- zyx+nc3GZgyL9G2htovMrJVP8jQ=jQo4$1uivGT2yx3&~@6ZyL-(oDbA(wnRk-`eYo z{A4ePoXw+Gi3=Rg4@usoY)fRcZ_uBOsHP3^Y^Dl5G{W>lykD0vNw>&G>*HxX)G_*6 z(PL46hdz-yCg0+dIHYYmUl{DYqwCRnkk$Da+YR3(?y$e>G0} zhlA+TN5CiEA@9z2@4v(Nru0xY?BDiZjg^g^Pmn$^2)E(D?s-xB`Gki8+v#HI=jt+T z*{F>+a-WrR)}wYT^R@IH{>E55=y0tAq(7+#$!8#^ulA5`)5B4nGCeHzwCJDUtUp^< zLcLWxa0q3^Ss1>YXLtGla_gixhq8@0!lgEgleQG=HQ@!j# z*H_X7$@&I+|;`EdjE zn>|6Bv%Q7iuNj@MuaD%FKQ3s8@=S?5e)z`9BlpK@%C+>|V9{$HWyY8!grH>| zgmTH7zNC*?eA zpL1)*)zfEv5>9uQNT^OMH2LzZzNy z)j~Hw6CnpW13D2p0Fu1RxLfUb#z*Oc*k>bS62bJb?IC`fL-`ti9M6Xsd#o+Qd-HsV z-@@}%_WUTG5AjHFwejg&+e7~DJRkB|^U@ab>%k#^AkT+*0DX*}HDvw7k7`Q#iLgFt zznYhR)%qiBZS9Xf7nJjYTKb?t@;iNQqxCKHrBOe7v-T^&@AR|jS%KX#c8?&;6P+tF z4SshU#C5LZJOz9+uM|5;XJ9YmCPR~ zV_p1M-Wtjp{*XQLjt_3gcGqzwIqaZ#X6z z!`jzp%A}9;K83I81NWM~mu(!_Tl!+>U~Bs9d`nHAoGDGcE~)Epr$6C5Dj9D}dSv`9 za+C3-YyFehWzG!Nw~9Xy8j_}ca0aQ2FMT@$RQ*4!}N+FFnR_R3Ge3e$Wv*-jlq6#Ydsz>mljx z{W9y8y)=CzV#uZX{1?K8e9s5+;btLPk;tMmgkT*db-{Sf1Ce`B#T_Z|7BU8#+q zlxv@D-xp~|8QRfM+7Z;JcJxwnhqo5$sU1{(>uPk z?|2wx{m46EY_5GRKHaiDlm6HOuh)33A9+{3a3s3m0}Ga^e%Y&+{$tox>Zfa|E2qzL zDRa>BI!Fy%RXM#nzr2~Z3V{-eTI8lS_YI$i<5H0 zIcf1hVb?|R;>!@-TCR?ktyBFdKb0%8bS~>hzV-?7<@T1Z3i9l8zWU=od5!%PI=&@e zxw-VsT;0CTX}nqY8>!#j{pA(vez&%TJy5RRXg`2ml;2SR(z{zuf`#Qd(Ji;-j%%QdQ zG_GqfyDes8>bMO(*fm}W(qEWS<4AtI&Ggw@iaHLIvA&nmbU~+ON13{DpH!zvPX6LcdW$dgc3^I(}!os`~F!^f8S8 zmdQ7m#UCtKYACHa^-a}gDH}UD?+fjeTON6(s7^Ly^9@2=PqtY4%@x|#`wPE_iA5<=V!k6?h zuJ$&RNgwr5*7s@p@H=%&-?SdmhtEp{HgXCw2%k0Ws zyUf(i>uVY9gmxW{QOf$m687Hfp=aLAKWjMt50`)Zdqa`U^*YKUw`>P==1ypjuXp{= zJ^9AwxA5Q_8~^Jq@7FuN!rC`hzPXp**!Ues*6Z}s54aQBb2Q%GTE?Hk+^yJ|Iz9^5 zL@~!7@Hm4=*5}IFDCUKQC;5nfPb#o+Z7uTGuPRxKtm9aH$L4^)RXPW}UF#eAA%`CG z&G}9efA~z z7G=xrIO;Udj9}hT!{e+n@oUTaKD|F*?h65)VZX7@u)^;*rPtI`Gd*VX2KQP(a8oy}0Pq@c`J(~L5P4*mq z2A_QZ(Q~$kPUF*bTOP=do>`W{H~Ns3z2#ZPDz1?2fr;0#vSm`XUgUM}ZlyBs%0K=A ztv9A8KE2oW&9No-%J$WlN1Wa!>IK&x>&2O@8HU9S)pZuxPp{JTj?{U|+x8dztcS53y3j`lQ#XSBv^GziW*(;RamCh;-DdT~ z#`#e_*%J6|O3H;gAbE{{qetXWNeAn@w)QI2KR)H5-^7``V42i!{pJl}c-%*EvDPp7 zy`Qr6?DbfOw_DJ+iH^{A^_x<8wb3Ty>+RGoLPmXVE3Zc$I5$)J-4TtpUb%rf%Y7z; zjw<6TZ69j;E(<->!wP<(uKt=n{-o~ys{GmbtB{YxU()aYzO>)3RHw?;gZ}#Osdtt9 z(``2A>Ec_LI$JV-6t1r!4}JEb|2w2H@vY@P`}yf7RgUO~P&ZbRtMt1n+e&_a_6$hB zE9-rAe}(7<@hMZ^qJ4<6Mi9TW&Y^J4IP=QRp}5Y{RJ30H&pp&->q{e@8uq2ScAfH< zHG-@c%+<^H8Wx&OGk(%jr8C={vE#SlhL(hq$RL{)SlJNtx>01bwH_)fE@=tF zRr^rZx}MCp=HZJyByy6zPh=_S5!sW@lsn{$CF2*Z%Y+yGKBDw@wX5(8N#EbAUDXd; zw_<&v?6tmBTCaap&<>@|`Q%sYOIT0BG2T0<8~m>AkZZ+yLHp6N+3VQK^O%*|pzP~O z?(4=jVUM5g?=C4Lv2DXLlCqI<+FX=!6x%4}9+;3l&-A&U?(aMTGV7lHUS$8ipe^V= zVyS18mDHn>c6kJ{M`kK}t`%j!(PV#U53(0om77D}C#VBG>ep8-{7F58FXg}RX?&e9+#8jcdW~m3c(9iDwVcbzA7LiTs`m`$$>0CF{rfY$LrM>($sxsN**CPx~1MD&f8w!?XH@xe)!|U`W2NOy1&~vczflu z6Y5f1I4;KrwkxFPwVns_wl(+ela#Z@XxovG>I(w`|2w+DM^2GX&wPd3)&6&&?x<{D z!@UvxlFij`$|inBSV_J4=9{vqD4PZUhO+6$nPF-he_DJlPRjj><=Ms$k+0kQW8vIY zuX{wM1~!P;+W2;|oIjDBFv3Y4I5OYZ&9@^ui|6EbS+6L2L&P^Cwzc{Y7WOdC(Q$HY zoGIhR3VZ0ncy+Ie_!BK&vE_8nx{O(k*G``!Y491tcI$KG?6BzFAf57@%1_RoJxR_8 zEM5OcUf|U`@o|A~W8!$abgeMwVrp3TTUlVklv|G}XS3>af3oLnOy5p9>imSQ3y+6i z*52#KUa9TsPx|XeLB^p?64|_!*4SSWlu3!dWOh)-%9|YEu^;F9{sqg%p3J<+4;X)F z{jo7QLo5KbJA6E z)~@WWm$wHL$eLf!RjN)fTdf17c`1fTFX+yDNgq)Qv zzGU8Q7-i>XujdTyk!8+x!tbp6k9b%2A2GK`7{NT!gh`d>kt+3pqv->Q*MHU0L3*T5 zY}k`@=$t6&$d*Y5zm@ERVm^g1f^?kNLpmz-kL7H?H^dIx6?II1{h^e(w&z&84sAtk z+sx0n<<@a*um7rk%VXY4cR%i}t$y5v`l4^#L3fosyW8~_cev|6kDlu~&pUWl_d}{r zSjX$!fU_K+0%1D^rP{Nh4H{~;4W^sp~S={Lly(}1yTwpfYF!;kR z;|y6F8w@)_$4S8%;EDKa7>n(7qvL+>+pG`FXWiPoQ_nXPvx_}&#^PI&a6PRql5E2tX&w^ulA@~tShkXf|i4^G>eyjvsh{=sSaGv8QCldk39 zk$ih*0MGC7sMGQt!mQ=_Ea%jmNjPHaf|dJl%6)jO+=q9S`-DfV45Xa)dem{}1?4{B>OVOx zk5L|!Q|rT&%~$#U5aqP~d;fIYGmy2E(;q0OKk+R&%Bdz@rhb%dOZNr+`ZvsmaJ$&wgav9f+V`ra{XQr#PiI;Jo8Y?wB&d&>6B{qTv4twvt;Th;E)m`mwL8p1wt zyZrL~i093`#=gU`y*5TaT`^7lnA7dEUz~HQyL`uk&^5A#k#X72OiyFa zimx}CzuOY{v*Z5Ow%1@kk=Cb}zg6|cYq)nc9LI+GvFtcJImh`clacrd-<;zto&R0@ zrfe$CAZ%lBRp}zGF?;H z+nmB5%*Gnh-Hr_BuJl`p&(Xe~i}|9S3v^KW%jhoR^;Y2@S>4>>J>T3Rar>+E*^Kig z_HC`^-54)-1-$3+k;B)q;zI)hpH**ZeZ*{D#-3uEq8}Q0zxz3Y&l2CWv9vyGX+6uv zbE)B@eK+6e*A(RaOw+=pjSZ(djcuGm+%~v$-0PFZ2bv2RpY%S^>HDr=G=Pl%Xq&3QJZP{`rg^5 zh3AZE`g&u=eWBRl|4Z^VHye(Jn&$0`jQ4ZkwKe7IhBwW-@9L&`_mlSlP_X|&ZR8-n zVO~vcn1skJMNa^)5!dB-=(fr7gq57#1(!jx59U*ziIo%<_`9= z+ILiG8Fu%P>>2N8V|(8=Sy@%+XLT-o0N+zPX}F``AfT`DsPp1a^{Cf*Z#XjQK9}2< zF++HEsDw3^?=i@=1Nk-376dP#9+W*7jQt6PqWFw#ub_KeWnU=Y_wH277Fb@7k5qZk`k ziys2K7nm_{>mv_4ZQl)i6|Ey5c3Qs2I2m6>TUEiS$4{a4J3Oa%L|rhKX!&Ug{Z^JA z>YbDRs`=@ull~CW$#*0)-HCLrAH`VxbmA4CO4fWKlFmKJ%Oj+pbWWJZ*nSVvLpmoc zUGB8+iSLB5`l8dx*LQh_bS^sMVW<7{z^CGV`*%(~{*<|#6pNq5ZcBZUMPK~heX{BIMlX{`kx$O{c?b8_mmXA_zi1p} z`BVKo*z~imlfkzu?SC-+HsOw~VQy!e?Z2143cmD5{ngoh$#*yw*E*qTp- zuX{Zm@^4yCkMCLbyJS60*jIgO(_0y1;Y03qt)+b9OZo%!p7>FM@rsjjPc}J){bA@c zxBgJ;=rGfzd;>kwU#>IE7yI7AtsK( zN8a7O`m0{cvZ&8oStPHuYa$loK$DN(KdWiHuH83+30waG0!encdp$vn~HNr3*MAX zMcMq8#b`+-sk)wXEfi0BToJ8&M##= z)`2T7fLW)k_--)caK-n6u@e>F50-vY(%jd5L@SsZ-iNv2z1af+^~INV&pJ^}A>7p zxx@BHK2TnkdRF98^FfFVnS+gF$XsY7L*`^78S*`mNQUxF(3hG!ymioeXan>zL>aRu zf%BB0P0(g&3xsc_9^Z;j`oeD)yN`?iWNy~QFUCCOF#mD(F_15*8ye4FztnYx=ik1R zabGIxJ^_5oUGua5I8N5aX7j9#^`GGV$C%*IGo8G{`BZ6{XMTD~ls0D=x*(o5zSk!8glB?1C2?8Q_K-%MQ;*5wUqKrC zJdd#k9WfLgF$5g}^;t)t|5P`i|MV()30|n*rOtNSkMMqEAbWgxr)*pCzAQdTXi%`$ zEjuun+qFGNZQ&f2eS=u`4(XmF(ZQj9VIPmQZ`rq_`eg|9QTFNRzA5HZQn{4+1sg4F z_7cfCS5esEH;F_Stv6k?@4)hUoidX%1LfPk(so~0-M*{!eQ&EEBkTJ_AH1&eSx&v) zk9s|pI=wIJp~kSDL@@J%p&n$KtLz!$TA$G|dZmrJ;F5YRbBwjIb-cf}zVBA*1J8Po zQm1&&dkk7ZUF1IM>%iU$>+2r1`gL%5*=b*QC}9%LeCCfET)xM9aPU1|;SG6*=~d|m z(HojCu_e$6ip7>dhbb0Yf__7>*b?;7isL$&bVYsK3hUzr=B1At?ys1$QsVaH`{|Oe zV7<{i+G}3t)(`JNN6~jm9~sS6(?2BFnrL3naWbu^f7@vvb)$X<%pJ+x^mg>u^;?>Q zJc&H8Jv4tJ59|-cB9G8s5P5|5g2+R@H(xIQLnZ%(jK6|&C9xyWtBt|D3G?&E9Utv) zk>B&5>?#}Wzj+>6b??8eFO7VEVP7h9iI1UAB&-R@T5KpN>bo?&Vpo6NQ{P2@Bz;sQ z^CtqC%UKX%TE#ZAJUOCwwcmV<=jg9W`VZ>6vr@hVz*?Z- zuzZ^eZE-29*Hs_&!@sQhXRGOTE2)+8-cS3zs->J>*_8MR8d;o7~?osUD zN4%f-Fct7kfd$b#{RaL&&oO;C`b>WqaoyEqCm-~Cr z$vh|HC2x)Ny8|-b#-ffzefG(3`bWCa=e(jzuN~XiwD9RsKEGXh?HKm44!~C4pX=Kk zo>_3|wR_*p+TBr?UfZ}J`0YM^yD!`B6qN2*mezaWH7$K*InOMY-{O34ZL!0LLOVdx z9opo6GTpLHh`jmhd51G%!@e;ZubyS~Lv8QadS^Scpxb;5;Y&Zm7~yGm6MfA9`kFL- zO-=4m)(1b@ZGCX9^*x{4_L$f9+sC~xq#k#nK96B8XaDsTP`-4pwU(9Wwac&Q-bP39 z4V1oqQ-`sKI~f}W-7RO*gyDu`BmKS(@hd+_gN~W{^nIN-vfa%U~JODM}X zYQLnUVY}vP`f-k~#8Ix^l;{rD2$!sj{EU?i<8e7ZJF+qDyfa-7@c~EYl4U)4sMCFUN8G)!@6S!t*y3JH~otd``h{q|^LeKkOl1{INdgLPYV}8EGYUG5xpb ztDU~CQSu@><29T^PTBzRzO(Ih*f-cF`<<~j`eMtz9_jhNmj6EKmgE|Og{E7qy+^vm z+Iyvbai_Nr`rkgcjsGkC%j<1Fzt(5ey^2kj#-^*mri1!o)0NZB-sYp2!-2LzMaXI9 z%qXY|g70oM`ztsbCbGZ8e)c!Z`7ie{H+L6(!Cf8ET<*`RoPNLi{T+DsYdi36J~)Rb z{HCJx>w1Pz4dV{c#hbe3^~C<{G5;3?`;$Cm*Dv{<*|jH;{eH}G_A{LK#ln#_>JEK2 zqip|NoA zOYXG%zAE$8mfwNw*BVr4^mZh_Pofblt0V09`&<@(O*w@t zcT!kOQrK029_UwEe$M;-)fo$R;N5F?Fx{U=hBxmd8P43nw0wLA-~Yf4$gz0`-W{KE z+KbI8{Wfub_0?Nw7sm~t4)s&t4c&qCJ3H|1S_fUqShPR7^obpK_iy%nuWIw9x#)B7 zcI)%sa!wiV$^QB6e)m@VJu)8aZ(s5sDv{hTv1 z&-2`yn^5@r?sxwnFul*2IWu$S%$YN1<~cLZ&7P<4&3{|vU1!=m-t${(FZ-&}-rrhz zD@}WUYvth+Qu8&wdHQLeV@};>t4*1XPIAz9j|*x zF|Ty&7joYD4DUF2z3UU%2O;E++pIk>-cKk^ocDEmLN$-iu)M`4B)`zfURNysl@G46 zdsU^A-gEw6+RxEGel7bs&*HlsT6$V7s{3lM z_s-pX@<-gXWB3y21xI}r`Bk}sFS+~Ef)niD{`)ljHpTv}euG-eC@Ia-SADGeW0tcdd1xL^L_1mi7o_V-0QZ{R~$ek$_5fcK6fM^cu`5Wn)QGW6v7QuRYF zIzv9a-tT(67CxPVPjlfDbVvJD#=G(fy`Vn3*nk0_NYl1y+ilx^{uySTG#-111=IW|uGSRG!ujg#-Xy10cl zPR=m8xWzW^yhz-|Hf}*A?yWZN>_}Xdjg#*Vy7Df!apG_3;;Kzt;7339$M|5$eXHzQ zy;y+$j}h|R%OdaCxJ#;xyQJa-nK#P{YM$o)tf#rJ=jr%MEP|e84~_B9cwtWvnI@nQ zOUox7C%q72IyTJihx#=cphIxCBo8TOrYj$bYI zmw(oT%9~f#cJP>vd*)T~HJ?2(ak9Mq;IT#AbzlB=zB%Lk$Xo6R{m9>bN2%aJEAQ~_ z`>XbA^ZPFUs6u_4bLqNsNd?7 zqW$*H8FU}-_+?GT+DgCEU9k`QtX|$d;on>HivkbWI}1H7WsJXU`fWBm1TL*9DfB)> zn%FggO(TB6^9sG!+>XI%+M#+c!bj1=GQV!69rzLptt>9RMST0AypKNQo&=qe1NFK46@APc@BAu62cU;^-mgct)sLC`a#)_?Gr@VpH9ENkP=Ao(uvYmw3Ec#Ex5j{kHZBlwW$ zoI|}?W2(T8sV5lU7c;(>GPalCr}Jj~bS}bAM_|USj;ZgdJg6-wwu0>0OMKD4$sQ+n zFKs+w&LSuuOG@KDJYhV+A0ImO-oVVooZUJ2$%&ohU@e_zfHWsNT{9&eewuc$!pYl_F;K6_tz z`%T9kzRI{K-_ST4+RnnycJ`R+{av#c*U0!j3GX;76Y%b&mCFa1Bc$$6{k~WB6tc&@ zqxuTxlckL!OU6e?`d|HA@&Am-k{`;_dSoeXWeJ}Em8JMRYTEU9C>}} zHOgz%KCgP%%4`nJBC}!x#aS=FC*+uO2jat8%zgC8g7{v~T>^c9%;w|!LCg1=1-bke zTfEGxd6IrOK>73meg1B%FWzVS0zX>uoelaz&U~OFTv>6(;sfW6mo7TxRRngx=1;== z&<@ykH*@_x+2Q2J4E!*^!#1rd4_-9i80p6d54;LqG|zwa^F2B3%&mX?Rnl|u^TDU4 zX}|v}PzVG}6yMwPWtEy>snui-%u%`OhMF+~=ut#v>N*e^|VK z1J9kQ5?jLgfgiGXAGdh;vIqC93ZA=X^-~t_K8q(l>_3mx`*U0Gy%z5i77yS5;4V}t z&)tRkQH%HI7VjDG%$=>q)^X>bn8TGXpR{=PJX#?C_CC|1cU!!_uy~w_DF0!Ez8_lp zG8XUC7LPL&!TBzs&z5A7d+?Vj!%@*cgW)5|6l%Wq~2$3z0Bc?_c@Cf zJxe9!*|StdO&0GVi^o|DIolPq_eZw84HoZjEuQ%6KNrDcA3)_`Eqe#7SE6SP-phlXuq5z79AtMa<=&2v1@*g9s1LWlbjo> zShU0|T~RoW11WxFh(XPoy5PxvkRYP9~_sS6sQ-`H5#;#&XA(#-hdUVI#ShWA&5 zW#_?%1}Wo(^<&;)&QOcZB{qEiJkZ2i6FYVKGVhudX-}Ryj|-2YZI0rYc55B9SL_>Y z_xnw|Ut+IA&VaK{k#)Q7J5}r5(z7bcn4ffxI<$Fl8S_*1M~gX!#Tfb71asH=r$e6X zt0+T%Mqpp}rRlT0<$tWWqWasF^hf2=>TkalJvs9r^gj^t?EZ@I`BT2?yg=8%x#f%R`tuWF_u~^Wt~}3M|8eflzH1Tv^3>!BR+>}}YsT{b zJOldffzPa6bv^T|$NBEwL{3>^|FiyM|4`%y8Y-(#_|WraulmreHD&A#vX)#YXQn36 zAZz_!M`#e4c*V*D>l?WPUi78p(>Z}(887Fa{kSLb>;wF0T0j4pcKw&@^Uj*D>^JC& zR~~22jrQ;>?{;Jlr{=6F{Bm>mw5KU!Y~}f08T$+JUL@~&^m+8zobm6M&1S!eAZJTu z54nuJB+>bcn5*EWSF{%%{O5XIOBRhVMkXfcGs--|9)R6fZEgB^so=+(K5o{oq?f-k zLA|UISlVlDIZe5zBQ^=`*ZG9{idvwJau= zD?)%(zOkERulnNo)9-;0c?ucf97`GJSmK1JjL6=f>@m*en^(-IUePjJ#qGEPSSp@ll_#?Cy#XT zp>un#G7gjP*Vg9#Gk)M6WGitxQbI4PFdGUCu^kX@EG&b7pS{^zMcsBQPPazNT z&LLlUe4|jyW1aMx%A1j=JQ*wb#_=O7rj|F0F^$cnWfsgadw+Ia8I)<)m6AWV zU*sLXoOzdTl?3A|%{YH{LgRE?F&B%yruCsaln!iV>5p>uJGAZ@wr*^t@?S8=%ASF= zhj;RBJ(6!+=B>Z|4C>dujMQIh>$hhKgZk}RLZLaHXI$s4|FScvpR%&rf4;3>-<3q# zFYg@WJ*m{6M=#{9fBqTNuVW+9{w214vG-nx)Q@c#)SpMM$m<6LH}ES2jzbry_UEB&!0j4l$BL~t*u|} zwMhHz`yj19k6z4M{~w(}{qim+I{vP)^<#gOV~Ypvckk)pzvxq0M_qh2c8`U%4E7>* z47b@bm`}w{W_@J#^{^>LhSXLafHui{20A)#+qO^BHqm8HpCl|T*47Hz<7_RV0UdC$ z*oyYK{O6IjIsM>tW3MewY??fFsJ88L+qN^9FM_r?y%?oEW9zbZX+XQPOGVet2^57M+IW$EcXm6vJMVmzv(8c5jrY#Z29xt&ydOVVzVqZU`Odw} zyRzP|nRx-=-hRiv<-UXeQ?$s2%gxMQm*=fU1;CWHr>q^i`friKV_lM{_4rc zOD~>@-D%Il=zAW%zoKhN@)yZjxHDO2-8sD+mj7l#)`qNA>B|UhdD|TE11y`zo>?h- zW@oc!HkUoKv)D76!=9P=2Qmki@eY`G$WP;6CcbjofAlH7X|(?w_Da#))!&YrchWD? z@90t5K2PIM5RYDw{pfOj`L>yfXP>J4g^82Z->GC@qq0nKzw;LK(u{+`H(CEw-&Ism zF8dS5mvA@1{R=hj_{FmSa)5GJ7m@a{VqfO0>Tmm%)rb5g8u#sseB^D6@24%6w4>{5 zE-fppd7`Yqdjc8Zo!i(6?SuQ8E|oUOJ$b=i!I|C*FvU6~Zui;M&J^CDUu1tuf7$nf zmU;RNzqFmKp`(94js2~m65ow+PJ8{)7NcW)Zgi!ZCupf>9~zs5Gn5o z8yEF=ddkK{{hj{J#>v{l(f5pr6P~}O{q+ATf2W_STzF#(dB>EyK63ACR4!N>@jl0` zjmmFk?*RE=f0+08`xx)+IjHR+GB?4V>Nv7teYuzuIMe%7b)|PIuJ3+;xo3(w>S-;9 z->htx5glE9&qeTVu_t;w_$K3_eftE5z3e+hPlzrr|Mi5H zW9E0WuNyy;Z!YHgY%*7sVKWAMt;m6XOH}4>`c$4Tmb?Cl7aFv0uv4WC;~SA1aH>zt zC{?<6e(AeBi|&C=nYTsXmcxetpRu8OwdDd2+G(r!cCaVCzod%!N1pw>x;8>L`)=?V ze$Rm4arj*v;dhk3`S=>?kN+$Djo32*eX>7j<$*mt_|04nKg(Z|J~Z~3;pK#pj}tz8 zVSj%Aj4{I_{FmUh&Xd#K)t2|&DsvdJmzSqg>3rKqN)zLJe9sj5f5I48F#dhs@yVHn zC*%A+6nme_`5O5}zT@x2exo1aH}i{3h#suJtzJBw|u?*+2ju%5ASyB}vA zXmlL!5VO)Bm-H&rMsI=GCY)(d|1`0G593QIG)rCHd}#H?#DqCYZHL{1 z2-;!yAhaDdoVCm1^9L%j>y6SaZNt{eYF92@d}p&%`u_d-%dz|sd(ryFq9bPeI`5ZR zdhMP~(64sSM*PLIX^qIlg*LCP8zEwXJs8xTtNl)5QI^wXFuWs4scV=cci(a?j3%a=}{C?Gv1}*!u=L zhPhStcJ_&nkd*lwv$rGjaoNDZWA6S39Ut$jSgdP9R|fFducop6bJsE0K{9WPkFAb< z_E%(Ip?rWn1*uQYF_A7~^YDcFFENgF9`nZLF7$*Z(dj`O_S-gyJ%BABV@})fvT1{^ zQ9iWA=wN8|erbHdWsa10UYh>CZ6^K0+58Y)73GK0D|ew<8Z_^{Tg-a@8TNB!ZGN__ zujJf(p0fs1&54wk_uR+f&t{F)8tx+KAoLM#BOD;yPk5MclyH*p0-<<3<}D-yJo>nm z@hcW#;W(zX~t^AC!lN=c4rCtUwi{{?KtY*BXP3WLo$|z?ES+-KSD60^j}nd%en2=ym~)uHS;0!Sk_$Q_EvKDF`3iL*xyq>BUvM|e<%BWsslF7UF=(PP^MiEc!wwIbR8r%N8U1@=dQ6i+%-0vyT%A*=$+iX z4m}45FUn6(;J1eEE+<)dk@a&3$KH-g*!eRo-OSDaCSR-Z987#E{T^S?RY8D4t(O3R@Ojr zM#w!^NPFrXJPvQ5->%J6P93jOwvHF6<3)2{h4Sh}Q%Af&_5e6*Gj_f1NsBznU1RYX zWAx>0`qBEx6UVrL|KQ%LW2sd3;^V)01%Ch;PiEgl_Q8WPf6w5l{dkJ}ghg}VANW$1 z@KF2nHcR8L!TEKB55JD^LG+LG8GH~~P&z))d};ZqtDmkBJ5qjsn|9>Z&rwgf=G*^| z?4J`35e^eh5S}G?UuXZEP)S%vXeIOz0-gUst1F{A|A38)>ioNHTvX@ZYvZCi{}VPY zs`Ec((ecd5xpMW zgNW+%F|l`Y_SW?suI$xAmtFrMkI3ZvOXHLs$YyT7Xu0?oPAWIo_R+GfUVUQj;+jvR z&uFL2bM>-6C%j`malS7B4e-O!AZLk1Pk2}JPMfpemii_SY| z*|_MubB>LR&O7BcE;{clv~kgSXR(co&N~;|xahp|RvQOK8ntA6->``xE54si|Pf*#uhIY;4KGnyO%g4={Ld$sE$Tnw~PI4|O+b$!HcQ~6h7__{n|bqDkY z{w#NNn!fp{9C)nqO`fjd+&(*c(rbK^r~LmPRz~5Cu4kAx$_a~jkEi3$(f%hby0QkFGChB$YU8cP;(n&{U%dLxf2pV*K3w|3 z(WBnsqeuBJ&j);9|B++G{2sx^Dw$XPtvJ6k=DqNh!r0-j6fUkFj?c@~c(M8#Z*le7 z8S|>Y!&y!IW~x6{x~1ipKROP|HhPVVmzy!v9^t$X9%6*D~M zgBc!Y7Ao++tm4_1blKOq7=PDuPp#)&s@!$-wThw_)_YeJ)GV$((nvXnOK;^Sm|Ks{ zsw{eLJvIhs+Cd!2_KtfuC`~fSMR-rAR^#_YKI6CK+3T-9aN94u1*QB!g$h9$P zm(b1lfJQ?fe4BViMK59YmZ4qyIp(FWm%lo!wpj`~1BYu-GMhIt$f<l`#({3af!$8o8^9+G1~9|bKgPw?jFYEosyR|;=VPJ!-QD?%JG{z zJ@PuAGFi96tDvv@>1%wEr4PI};{(bw<$o`3_Zcs^;j&eO7u>LFu%WH3rLEdun!ezM zszJ{q{xXffuC}eYv3XONqG@Xe8=E(_L?XdoohNS9l6!TN>`osn9?xK%+d zVchCGahK(ZTazd5@*u7*H9FAa52Z5x@JRnq#?SO6{qEG@@IW$?^phhasS$rLnND}@ zO#1ypnmUx+W06;&7vB>3^SA6J`_N^6dvat~a>S1$g^%P3>m2MF_A@DJ7)*`qUE$Yv z4ed;hq(;*c*_|57^bd_Dr54Xynx3Vf%CT&hTm0=B|;R-CZL|e`|6i-Jcq&E-CS=_AK2qs~$FWXJAret6$sGGcq}0 zOKn{=Wnf^>tXUiTM+Wm0Cu!}e-pmw98&~dL-oA3TU)$Q4Lx*H+OWrctKa%Y6Cl_u= ztsCf14rP`H6=W47C{oH9GGr2(_Du)f&_A>@pkR60HAW<=E7QNDf1p3Jw_1?vx)8RJ zWLJ-mqzFsXe(y+XPQ01fNYE?C;L%untaMv{@Ar9GDlpIu)v zqNKw%_U|E$PRt}nhN@i^y`uyEU{|KQPxw`}cF(MAJijNEG*v6oV!ur~+@MBkba`E! z8%EPABU}2@Hs5t4DdYgWJf^n(>$S_!sft@?L+{D$lDHox_OWC(P^eUD7|4gq(<(srH$;F5DHV%pU>l*Mk!O5WX$#_}G zUWr4HXkTPDg?55F5gMHA?i7^%p`PR((|8w;dKP`=SDG~XJ%1YH-eY1xIF#Rof;Jmsr_d9-qCNW>*^&{zg2aJ-_eixv9sE*9YsJYk+&5x8iZZTe1(u95M+v$vI2aI1f)MYMBXA{L(Ft)Cr8nXSTb8jv!)8y;zMR>taW64zVkLV)d z?WH0@V&nBBdofO!tT7DKN_7S<71pT*G^*1q%Mu|0-IN*~=}yY}#rF}!^eh)63zzJe z*3?KwVtQtk)MFl+JPt==G*4EH=Fu3@)YL~s-F?aKo71C%GX2oEEIV@Nk&)Ey6~2gG zmX(n`e|Dz^MhCIfC!u*Itto3jq|Fp_gA}v0=SJ#j&vcC_(_4)xD@55xtkoeA5m}oE zD|eFFB`x=_OO5obK-7$hAtI_0O8tGhgl3hnBbnJPlVg=GL5#Hrg>5TJBv0Mfb@gX-$%-}bI$Hc1${a}U!e$XJ zOwGpCW{oqcT@fPvN-d~bdihoOs%=BZCc}mqB9_v*Q}v{fkhgv*C|Y@@TINaB&3X9R zlu8XRbBty5iX;Z)F7wl@2mpI6S(gYxR3D^<8B)D0Jy1?!HOa7a zg~)D|DadCyccECaZBkvJyr#U(DSwMuMY#eOGe-qWW7Vr>n`@cB6D1*54y#idc81w5 z3-h(6c4G^YwY#r>xY|q#xpBR{vphGKb`PYwZ#Kpu^$IW2@M5^HE3InFYip>jZ|Uqv z)Kz)mGgeRg_3a%ETQoX&7Guc8t04v4lVnw#Ob2}pzfG08%+Pv_!7kGT_$94UwU42d z?q_-*V5(;uuCj_Ph|4a&>dS}f5S(dnXo4v--PhlnN$arjN}5wlTOubZ^f8U~O(pGu zL#0#mLgYfrQ<<6`kM+(O;kreWB@}8bkItZu-Vt`>l0)5l&j5EGNq#&j9L`%DmfIt23Q2clqnm!y4Let8gfr9gelqRB zoXi8OpDm1IY#4MdAX_vFMhRuU2S6r+x5y9Q%1F4ugjes zN$jGevknCzJKd~LtnrwYzpb-bUIApqwRg0%wl>sf#mN}-F@rWYHaGYiI@_-&)z#5h z-_#(;4t9J>n|9jPc^*25m3o)z>5?tO>H!4V1m^qsFM65$}EG!>NnMoP^056Xlt%* zO0+j_lAn!DwVMRL9sKFiIvTg2=o4F7>Kl*+Q~t)rwk^B_Zb)oxXlrk5X?F4L4Q<4P zv61*js%-AuvZ0~P))|!1(a_#uy z(U53s*wl#C*Cz735vaC4j50i+ft^j#MAC(aQCP|*$Sm6K(mOV{HMDPTX{t{&G&i(u zx?bYjJ8IiH618=2?`&*m&V?}&*V39572sL>)Yiw0D)~D)sUcEUvk(fkwN0Elk@yfY zbi&lc#y>Q8hAZWIBW;y|tmOv4s)h z+8%`^y}qHT_WDHaMuf!iDZrg7P4cyOZkSYeZk)rbrzZ`OragiejZ?e`!wpd(&C$+? zrb#{{1Bs@FjU7t2#JT=9u|{4jpDdz@GrY*oo2SiLdA2mvws*EQ)Q60<u; zdv4g)D1%lMlBPAa)Lk2erH-cBc9w@tjZ#NrYslx;mNuA(Zf&mJ&?E||IkBm6Q>~UG z^)VQQw_7$eb_8RhwYEbPY@)FRZQR_^)?&x2;JdUsCBh{e+FjapEp4j5qxelNqC4vA z(KPMR@#FGndfoMPW^m<{ht;onEstCtSq&J5X5(+EZNFC9EPQdeE-p$FZBDrOC~h>~ z=v*|gC|O&7T}x-Pj4kk#kFA|e?G1_6#%&G4sEvsToM0+L|88Y4yLc85k^X6`MWxrZ zw6!tIIhu3hgl5-qOm;2T1>IuWI8~bFL%7WAd5b~3;*SHmaYFb-Et4!vOf2_o7c2F zJ6`f<$IBj@sViT64n9MF60XKg!qct0Jh(Pq@ar)*L+T7}Zd@+jYFmF4PvWxhR6*sG zXXA44pk@-D#%1B@B$R_^<0j!n+8xj+xRG{??WA(Bv9`|5B_bR7;-&lmmsU1edUN9h z4~4;W*wADwbVF}$oZz9(+f)tfO2Xjf#tEM2h=#^yQDIqYj(qWgFS07Tyaw5nn;R#1 zX71hC*6{YuhUPlVb=#(V@gaWe=Gt~+QwpyPZg$+3+HKMJMEmAOEHEP*2EV>>Yh%6Y zpRkNDPU>oHY;BMM=xB<^jm_6EBZ6Do+^o}T&~KCD1%GP;I=Xdp zONT7sEN*UGfY;Wrv7rst2|FzAhR!wylkFzk=6rEEx;3$?ilwJ5W2!W%*VznFdm~?* z$gtLn29t6nZ*H9M-q7Z(QiGQpr+w6kX@O1Xw74s?E>FDRW1mKpz9~01PVj^#+c~Oh zJ6r3;l8Krwx|(*p!MD1=imej=$v>rTypuBwaCrM zleMtT;YaoYZZe2*6E&J4$HrnvFqxJH%If3hzVMCH)9v5{pT<7>0Q z6&ZA>iJY{oe$q77rx6{Qoi9wAoUgIDzJVi=&^EcgsnTTQ2eq#mbMxt@P@=B3Q&$eI zToFfI+F*LN*4ACyAWPU>dDeF5DsBpT!nCY*pr~bymz6!YJyYOhl_Q3Mt0FglPMWpl z12(&LU7j{=lqEx}c4|akg9T8I3dInPx=)3+uK;`I9oeU{vbU&KVyZt(&?=%*=^5G zV=bzK+YCP426EK|G8oxcyrvx^XEXMl+qadnr%QK*seRur8$KI4>D9*Hwc{~JN5eGb zMaq!@GZ)Afm&)`c-sVXU>d0Qy2JH*dSr*sTwy}TK($pBSN2g2A;(M!bqFMLwvv?kf z&%$S;(Ju9=bBerE-~=?80wV@@WE@GF7;|c@Snur|wzkF3Qe#Yfg%L7FJuU;$-xZjct` zom$5^e3iV`@D=;6vAM3TL3c(~F$DVG6cg;->-dqin3|4OkLHe_-1LAZ-AH2N(denp z$YeQLmW4iR5jve0loJ|`<8p@u{PB51)gCb03iO3e=vFB+m4%xytQ7&Ss#0h%zDR#KB5j!yaEF( zb!?f8LuULTBX}kP9#6&<7rzLmfZ#RkNpgrt`i`?^gB(Guo^`|0w0WOA0?))_igPR+ zu?Z78hw!dR?HuaA6&?jlw4E3ng2M|+I5a$x>P{wmq~EQlvz`PHM=;)v<2=Usr%67j z#*e2((yXs^zxqmNj7zz1J&2`%B>vI(@Q8Q73cr~OZJH^Zts@5c$70NR%+|sT*Vk15c996SET6+1$a_MU&Q}j@`n8^speFVctYU;#<>*n4&@XJ{(3!GZf+1cxb;%$lh>VJ zsv5-^KCQ)gNVZCmrJy=EZ8fC~?;h#LX$n$Dte=#1s147|g;~uY5g&yR+qi#JTldni z9du5rTl}#g#hjDLlO|3=npkK2GlY4@_hSWqTir=~IXIET`Ac;q^F!|@!V^@ghDt3?}xWk@Zrv5e)bmicE=4vch%X51k? zbJR#AH4hD@1=HrrrrVs9GJ04PASbEvRFs`3&&i%wDL^=sb(Rm>>!WA;q%8yZ`im=| z^-!|DJnAVcj*KFlHg0rCVw0k+@h39AKRSmA%zUJdLCwZjPUogfD#by!-HH!$bX+<- z=OpRk+2PyKVEv6EV}U^=8c)vvG9u(aA|nk4Sy8Lfz9@pw5y|V$0#wS0fv9IYx=4;6 zI1llB#}4w9BR=BlACE_Ql1a2lz3)+B=}9LToRfIovkAH72r=TMZamsU4}A4s6dNIo zx-?SPWXE>bV5uN|37%&<@J;E$n@QtO7G^xXsW$e)?o_NDL zwCV6LKKcU0){)ds4wA}&J9F;<{(RDwh~82W#PrI><6tt!5z^RgGHYTvqR7QKOUpsp zX#5I)V`@Z>3CIzB86>o9z1CstHaAv?p^lGWEO~w3(a16P92$q^6an_1o+5}I zPYw@Gpsb>&Cd>pKoS4u?hi%R&ubJyPat=fY0aN0e!w~thc#T6Cmdm%8(!f9!Htrls z=@AH5Z`xXQ}Z{k;4)o)K5_TQ>5%#5f^ zKZ;q5Ryp%!{=vCFZ7x;tJGtY;9QiQ3(VH_aiQGHUex2UJVSR0@gL@u0z;FF)!L~?S z&6&R_Qe)&oie>JWi*Bt2F|aW!J5pTR;_l)Q`$XJv z{T+M#y|})olLNgzqpK?|*D3@$Lnj@fO*M}*17)@!7#NM<-7?xG4*3!l8Y0cC-fg^?(7++`}OGOAS)0#cqVgrH#E{+P>12Pw672RDgKGH zdlJ>O?uMnK9Jw6T1+blm=y)#R5Q|xA+|5lvVSC*+06P-l7(zpdAjyu)8K>!<+M3k zmUXqy8VkagTpSA10pscm4J;iwygTLHZOPu`2*(yN z&Tddd-2u}(7zEkj(!Vm>p~}Mx8nXMmJA#2p7w!+SI)Jt+ot|=JAv=#dZ0};ZNQW)% zE^gssJ8lb>cBnusN@NTK_uA26*c>6X;qI{#Z-h{@Y6nbo_d>OhB) zfOzfLD;L4YP9=M}vfVWjnN}!FY7fbj&7pKon{~rTS3BVW?x{AB!VRFhtoB9Afcj}R zf2PjoxIIF~%6ujpqvn{aS-Y5VXY9Hu@{7#ddUi0oMX(sBt`3mUS@so_nUyOq zH8(^uByA}(%S(3cWYNI8svTWD9EtaMaWaG|;E%oei*;yz zQyFOlC|y^WX#-VAoM%yRF|OrwdfvwM%y zE_XmO9ACk{e9-JEUgc?>)92eT+KX29$Ji)ogp?^W^; zDE;B0<(*PidG0056lF>>d`Rb`Hmh8WWx0Ql3)*yV3_%IrNy&AMZn@89TX8&1UArSzdQ~xQbhY zaeUxum3e};H~Rkd_r2R+5$&({+HE!W+Ue4h_d}>Y-d6Q=U?a}m=d*)F6R$K_ z)|x#8xp7kWX5QfS>*sZJtZ;fC_BM6Yt-fM)m0mTCv{y3C%OtKV_2|gK(S*si9#h8b zK+!Fxvt+(?eN|<mhcWA^{sz569?vI5dQYtf6XO-+We_?X$#2jw*4yc<_7rN8Hws&D)gPt*N5j^`S*xCx|k5Ll?Y$U0`2(=_{vX z?n^bsl^RKz%--6jD%QJwteyO;8MWs5R`V>rge$NOy zTDp(WOOz}CUP~UiLp_|+U71Y!qvoEVl8pm+vYJYm<(X}mVc00ZpD*2);8t(8GEh=g zKKI#KT#XdD6TQ=^dx4_yv_YcJhU^+uw(V61+I(hvBw|TOVn~}=*y`6K>}DT@Dj9Oi z>a9t+*KzbxS@4RloqZL^-FC(?K%>RM!DZ5#sUYWXfcQr)Y(#Phf=-8*%W=SlGm1)evX-%A+3bEDe}BTakN+p( z?O$PUfbd%Xni2;nH<7~weK1mQ`-Nx}~Z z&k&v^JV$teaEfr6Ae%&SLNQ?up_H(IP(fHo@Ci!@m4s!4D#9AVTEaR)4WXW}nb1UN zC3FzB5#;X#zxS*(&+gv^)EiSRZgjuseK$|Y+#!EaSh%;Tt_}~Q4Ws=7JtN}fvbt*3 z+7+u-UFu)C;<6Q0-a=3elVwt&8Q+b0oCFE}O#0_ZH0eF0R|csxmFEJlml?yP-%0uj zp~3!rHpm%|-B0`+QTYd`FAo`xSodPAzmsIi(feA~ARG zB4$RsDE=u)i51;PAv5Kul8UMc?;mpmr% zYvp-PNt=*zl{}Z0i2Gx_TAmk_bPLY!$a6)>82`rC$@4;)XubH`IzvEbCm^OBN3 zk>^@@t}LnN-}nZ3URH9qJlC&=w5pPA()x{S`FBmp?+N~9p>u7?A$e|;=XE9L3;s2~ z&%ZS#tA(~L?L60)92K1AE}l1*G)p-xSM%?tk}|=0yToiRStNO{|0DiwDp@Z0H(XDA zN6Az2yuF9#Z6&ki`9`5(d&%Dl{yYAZe{U)|PvR5HcjSw{Re4%vC7)f6yobAp0 zJHh&?ly!l`%-t+liv(-#vl4ru#=e`_;^hY=_6lk%ULlV~@i@<=f?L7Eyx<>F77=mI z{11^-a$&(+0gB?1W&TGbX0gW1ozL^EB@#V%jy$f`T6aOktSj~LMe@!19eJE1SbG7L zRWWbw4&d4M^%FDq0%)6kP&3Su$4}fz+T0#N_>>~NNn$^v2y^7|vw|@HVtK5HNpzun zif7JSq!$WB<;+?6JtB(Y|Hi+iU*n%&60~_=lOpic~8eAe*V=U&n+mB=LLP#5xb^PTIBRk?B23H5_c8p=Fg}s5sMs^ z<#gXyDCG^6^@hrNLuI|8va(c`DEql%qFv(g-QH#dP8UbCVG-r<8J_D6yETsZtMHLjN!Bk+3sX`&W;3Cn!achi;{w;X(JBTST z##rGM6k4!EaAqWgs#|J#ta>6Q-}v=n_x?Tq7IoR^Cj{7GftLVg_JBAGl8R#;h0n)2 ziesJpbQZ_9#`xsGjBBL8cS?b$F&|BV=g=N0P@`oIlL8f32QX7=&R-zgLNh)t1-40n z2PklW-`KrrTcAeYXbV)}eE=o$ji^{h64bvJ5Wi#V}hwND=D8^K0DDIaEu9V~- zVDmnx6-c^JtkGhf3dIVf0Zau~Nd;dJP%EgG66V0`*=ubD-=}i86Nft&3VW)&**!Mt zB~9ueslz7C+!rB>cF*Y$vKES!Cw(ussKo9q;?;qTRMV*^Ib^}jRD4#AW)ZStTTAez z^J0r6e=li<#tQ{J00_ps*wVT4XBW=BVD7xwIYp)AA`;&0*;mglWcR4>T(59$_3Yo7 z-H7E9xAAl7jk7_48}cJbGcWe!r+9v>aPI8ck|73Ia#oOgE!eYMVen=?DeKOod9hgI ze8D|yF(s@73&X-yx&AysIeRf=mX^gXInQ9uo1t}`BeuhQi#(%ozCm8FBDVfK%|Ao% zrAajvcWvBj8Ko2#sW(79%s-M zc=z#dEcP>>vv^m4Da!@>>hF0!y>*(cn z9les5qI~PiB# zEZ;dax-z{tEo=Lgqv;V>$4dFQB!Y9x}|^9 znI67>wxW;j_mor~QD^DQ$Y^&)FSH>7Ehv|Wm?v`dr+8%EguA?R7#ZMOBPJWbkWJ$a zDwqb3_ZX?+OoAirNrR`yDYXb(>-#wNM0AmOtfz;TvuDlgouN#cIJV*)wS7V@qo+WY zCxu@xij_bA``12S{I7b#CPRJv-(De z9sT#1!NiUyWp>=3KHaM)y@uedWRu&~b6+gJKoSe%VvG_ zk-Q}_oYKQ#o|KX16UABxXK%PRME0BI1#TkaB@&ri^+PyX!mw_waaF%(>OK?1eSx7#D2}<|C ztqD1Ct7Q*qdeBU5lVz4RMCLzlKzx8XDhTHrqr7m% z1$e~U)ZFRUty*PXDfr8G`pa9=gw^J^S4|cgxZE_HFP{&k`0@^))?QBe_OnCFds`dp zNZQ4%Ks)*e`ZIgq*4NLhJ!F}*E8vpSr~d?0NN;w&y-}w2kYQQfZ@LRENbgIhB%qvg z1BuZgIaRP4PT~E~Eysb<{i{X9gjGgXva0#*TZU8Hb%tMFXS-=xAXH+C2*F)FmwO@_ zcut7S(Xa9mr0!jreEp_vF}>$Ti|yo4?q!fAWK3PLMunJ@5ksj6Ym6ibf~`-!k3KqV z28WnTFjR*P{1i`%aCDgAvkOTa;0w%V&}zN7b0fx?E=AQrs;G1T|A+ZyL{b6PwvkWm zf9ZB9L`H)Ul-QBp-8C%zCm%CSs5n5zZtN^>BTFPknLg6}mwEC_e7b*)MC#LJJlWJ- z3o|+mt<*^;n1vG3N-0tP564OqM@4CCHBym|aDP&>2MtONf(YnJGbjt~HN+{7BZw z`$|Eq(x^`PSxbm}quzP<$x{bm25sv+@4hf=r)#IHqrj`WPb!i81>UOrztYF{Bm8{VJj&0L1R<>B!u#a$MUx^wrwE2u z`lMyI6Q_St_C17{*C{^-3DVdL?~^A}Q>XkKB51oWye}*zXt$Iiq)9{MSBjDb%CE^e z=B>KqK6!k|CJFgMsG!NOurA7n2Z<9L_;7+BL5Z*gNd1psiO-|dAL&6Lo7(B~Xi@`W zCAF9!HOsG&+;*QwgBdV~81;Y>x=MLAm~B3fYY7r9zpVsllOHJ{+6ur)e+w3yD18OS zV^shbXoC1;$zP!?F8LFmEcq*>XXH zw*MA-6*({)bdkS8Pu_Efe}&!!A;43i>gF)2(0fw|Xu7=X4*v?h3%!3ZtkTH1_Y3u_ za2NuMRJlKarAEiE82pm1bo`2W^Smp8kJ|nypg*nxejx%60avZ&AO0l0iC@Q`n0Kxx zz7cyYzXa|FJ{H0M0PqhY@IK&YB5*Ffe@yy9+n+-3p8>o6kJ0~s16*n4L+CjKJP?7u z0qp*y{XYaaO?`L5H^KiE@cuQx{0clXho6GK2HhFOA3qr4%YMK6bLAiTi){RkzYOs& z&x3!0!lUK)d>EKQg&vtj++R@s|C5d1@%a#6JUiT-9Of@)=lkSo#+a3_i-7At z8uOlI_gl)p4EP0{$9zjq9q^sM3r!Z@0{k5MTbzCbe;crOG#22$7x>YEn0K$m|0wWy zr2U@+uDY?n6S2t^YCLBkXj# z@&7Nt6^ze)HvbQRoqbZuNrRsN*D&cheee?S!mC4lTT%?|8)&2DcR8^5xXPdC&&z>5 z{1{ySGz0JZen{UA;FHYv+c7Pr{kH=DAd>%Mz~i5ad57S$q~8zR^ofvPp9by=`lrnM z4DfT2{D&ofkbbWBb;19WQ2vespN`=FJ8-e}&lUP#0zS5rKDPWTDIt9%3Yq&$sE@;iI$X&nY;|dq3$5BJ}(z@V4qu zKmG-9@eX)u>-!w=Sfu=M;HJT_y-xt2X1pJ^_5BC%@iF*s^S=yyg!yW%O+TL{NXI?U zVEgwH;CkfO^yhqUE%33uETb(x*JgOju=n}V@wknL1((Ako8AZ9wHjC-g$>4WL(2c(f*<5R*LxZGHjKrS zw!S!e+ehDwS^6#nUKXkUD&TE{F9g)`a@}2H?&A5YAsCz-uGt816KMd!?HNf|D$GnFvKkI=@QC@wvyz79gn7sE}I0bxD8T!!T zzaO|h(*BPFAO9fE0L1SG1{swr#ZK1r*V#&Kb zlHUh@Xj#b5w*n8qe@Fj%;KN^v;c;U0$+f`l-OV`#bG)s<`y>490bVl{j-L_Wdu|WQ z8v{P|Zg^<f`AGGyT|1FyZE@oVS5Zvo$l(OqTJp8{TY z03KTSKY;rp?fnh#obQJA=B&Bs?@0QafFF*u=OW-Gc6~UnV4k-UIR2TKo(~iGt_6Os zCTw3D@b-@|UTpn001x*fPnO<6;CmR4>umb_fHNRJ7&rX=Fz|8wknghTe=7OshWh6- zz)b;tW!|H}r$N%ZfWI{`UYs zvo_RkerA**!;f$ zei;4d#`8&& z@Lz}Wd@t~3>XW~D1!dk}04|c?Y^}@dapN#PH zH1M++TYVN^&Q_ehgZb0KmjGuHF>guS)ORItDf;y`n_dsR|4a0dh1-DpXkW(S-w1p( zpzmC-7kJJ|a4i0;PL8EKK~c6 z_r9=yp8-C}e!wzYpS-vC*N6J*0^k?eL>#l}mjJik651=(z}ue)$8$UIvl0IFN_vEz zAz*)fs1I%fK2i|&*PX!6T@>>BFM%KZX~>VqfVb}s>HC)CXMOAV^<&`U(C=V5%=`fR zQ~NFb=K&w`LwS7*@TmyBR|7vBk)IoYs0<>Rb9 z7XLorWp54Vi_ZfeML*tY)5n41RR9Wm-oF6fSwZ{k`27j+K8%THE&KxT9u^DtEB+jB z_PNMgB>#oLYh$6lsgm@MLa)Vt8?f^Yk@2(f4ER(@K6?_txGC995~9l+v(J#O=l z054$w)wl46fS){<^^?WF2YsCY_e|FmT0tn7=LjRp819{{IqqX~@qP zfj1|RVN0KQey)k&R{$ToCY0~D0Pp`c^jrKjzz=;O96xoyO($rtrFT2)?@QFbF&-IQ2 zdl!cK?#ICEz8b>6L9X2U7tvp@kna3lq`!(QfYDdO6eH>910OgZ%J))9r~TV(`rCj@ zN8yQu+klIILjPHMZv?K1@N*b=U41OD$KD5gFO?m(`9B2w0``rQ&-;KgZx8ADJn*BD z_WnI^1@bgz^M41pHApY>eh9qnTj&g%{xjf?>%;Nw@yg~f^5Xid6qxHP^bghST>^YB z>!aIjd)@~8DEhaCG~v&+0uO}acRTR5Nd64)Z2>*!dhZ6V+Jla_`46z3>xtmsL3#!A zGipZHpC1Dr4)Qbq2pqwG6gb@PIM+J@d>ZxFeGPB=ENDLVAA+eAC{Lzpns4 z7~r4l%|4&8jlOZ?_X6OtPmtg4XZXMm+!5OMZvj5UdJL0F`EwQUI`r*Bw!K?{TOUI{ zYEusA}27ENaj}HPL@xt=|r{HIx$>#qg@H4d6 z>5s>N>%SfH>mPw@STDU`@&6V0{(wK{dOrldD?;Ckz=tB~@rCp)^&hbL7XUBYOP!YA zi-GU#4)y5@VCTap`sGUC<2QqE^EUzC_VaK*=tkh;$oggg_~@>%zIOpX)Edqgd*j$w z5qkfS^wW=1zb*e0z=yA;%@%$DxM!WT!N}(qfHSk;x0T0zwBx}@d0!>HkNn#${yz); zl2D$X1wM^D^w{)QfFDMA)mS+GCiofYkJ-TcBK*7ncp>{g_gnnSf$Q1N@3U|{@UvIO z0)4R+Sd{azr^3r~#vlmb5!DgVvD9W|s|{L6t~h@@`@Ue4gf{wml5EmRiSO!(bNUYNOZ zq;}xhD#__Y*XSOTq~Fg;^o$M;?sYXcG}mjz`Vs1cfhHBx9TbxuNV^+{-N#j%L7(Br#H`l*PF`5;wVywmw8kNtRE|4_TSyHf?E zb|<>iqxw-{!P;8avT-DN%P60j*z1W4eND}#rp66*iPbAsukw2J+PdDXII4Di$>)&u z(@0WKf)lTaF3#YkcH;RjA4^jzxY$iTPNCnRi?ViARia%A;@F-+OxW)jB;@;X9^aMl zwj_p9(t%pKe82{8;^9R9@M?`Pm%{~7P-VYKcpcvXv<>%$5&v{{ll0oU+Myn~gE85W z+9(&?X@NWV5LG5&KBpNp2%+S|HS#qajgn&rI7AyyYjs^uj>u;>G;xp*SaC6SPl8WQ z*<$!S^M=v%-k>=7po1yN)P^r}Qu;EH)tXQ!6ZZPvjuaP#a%ngx9o*nH*+fk6^T$t} z56?&!>`3CZy*Hgn4(4{6W3b0)*RRRCUPL%JlLzJI!e*~mPh@0em;N<3!v}Q`<39dt z`di2_&EVERb(e4K*pdjfQO6c8=^sjVh(EezX19K&1Fw4b@h6(7arNS!E|tpnuSE@x z8m3^OE*>ZomP+-kl7=b6tZOll=}2PWj>h&a`!cH`V{ zJ^|t6n_;wbr<_4?5qzvmM*vDwK4ZiO782dbfq}Hr76=d23}}{s{{CSvsh_D%@~u4i zMzvEgiC#2}=8k@X5jGB>H*{!-xLENr-)^Ym^9$yS4N^z5%0Nr6+-NIsD;N5wdOZ1> zM7!Mep2^a148u*LD)#8Nh}!%5do%5s5r(!k{T*ag51czg|;9FZYlIr)&0pHXJGM%Q(J-t0z6C;tcocifKM!Clk zi+(9fDeE7qH(yQi^!Cdv5>!{BdSq-cK%kN12E#}<7u72ZoS+-lXk9v9(hQr_pvadM zCe1&DlC(Oh^NKZmK(mcY3Z%a+)8(<(e)2GZjLC;2H62~Up$JYYaKJ((FH0m$7b*`T zW1kOhJ5krqVD%3%6r?mqGha}XJfqScIyuE*BcsGks|Ptzlf{f+KC?5Ld>*qI-Jlis z4~l@If~*Fk9yc8e&PKS=z<`peh~aV7Rf%-EyK5+0{o4_0yPG3Bki=c2-mdgep2@cYz)Tif1P$2`-; z2m8{wvQO8#qcI`lHtB#sSac*v5z+|G#$?ebToh|SI*ZRgbZ}6NbH@D{{n}-{92wJI zWZ2gBGKVl#i{@yO$&C_`hRA%T3fE0voTJGl6N<9tX-aMzWl~qYXb#J$`qnSJ*ddr0 zVeH7!XgW+zk$GGqtM|Qn{prRmI)_IG(#gbd{~nZ-kT%?vfnbIK-~LV5uMsk9^~%kz zSuE(WBH5_p*D0Plw1v@st{^!YNfhe3(m)oS_^Cv}f8m-(;qNNX6)&j+CpG!-jIuTuwKs{g~BSDYdJo z8{n9ao}7~idKCWw{{TIB^z(f$USvjA4VaKsnHewR z$BT&fzVAgwME&gp6AdV~(*#~LB zP=bNjkhrxY8^yttNkIXJHr?gLxN{5AsX@NC>J9}Hm+b2W+T+#KOHD0cOq^O*YE2$l z7N%tuz&PugjkB4OmWn^Do6O7;gwtT2TC~8s+7L%Cx}NfmDNPVeP*@1vA-!BWk+$%8)p9r}`qK_m{?$n`_0U9F06y51E06*{2zIyRWk&#&6EB7E+0 z+6+H8zr1PJ;G4yK^Nz%>xH490-mS=(EW=V=JzUWo`d(}u$2+ogzrEr@xn`vcc5$+9 z5Q4Y@8rk;EX2>b&tUDtvxa9*PC8_v>DzHO(%9ztxPHeZdV!Bi}g&1PMJpwFKN6jI*`iu zHT$jdrMd45%cO16EV(}K^i-sh;{meNOt(1ol%+`OwQcfP`HXh)E*opMZ?*wxWYOa# zpxUuYZLKDQ0Sa()tn=<5$HSgg;V6dn>}+l(T)Jp61hipYVt#UV49#q@LxS4t&5|C% zd)O{ya6D_lO5`&p?{@f(t>kJCOzMZ)ZY7IUo)%%J&9LQF zN)>oMyTn1ECGd^X_@KS4B`r*R=`n&@(#Zw1wLZ4%^X)?ItzHsYpSMZk1ZWH2qVZDB z4LVVk7~1ae$f`8iNM>}3OFIlw&y5A1A+yi4KE#YA4<2tU4{6uVKpvt~vB$_m&vz6O zfPg0R#)rs5?p>YYh;ie4h;FNPhvlJ2cZer%p#;Legvnde{Q*lf;XbwL*tFOMmgyvc zh4mReq;m}R84_()H>J5jybomRP%+)5nMVb?)dfS#Ji}9ED@+)(vP&a^7gA8}e?Vq* z)A`MNf0aoBC|xM8y1sTAeg+B_WnS16vaUHaUs1w7d!$u zw-i`_-gB4?1IxDzgW@T2)s?qNwxpmD6zr5fR&lDE9jyryiG?-DaBojRcmZrL3a+m7N$l(1&}l8#WI0n$tvmiN%G+sIjoP$b!R!6sRuo6A8@V~2Q4PF0eC@xaW0 ztp;lcwwArVq>T;8P7DN_`=MVZLFFwqg!wSNz%D#?3J%F~_HxW>-#ZStoQ(ll{t6Vj z1I69VF)R{a=NgQ+eXBXEaX5+X@U3FLcIUv7$6!poDIlJ6iM9j=*1 zt;m8DN=6r+F3aZ78VN<(JVJvn2{GbsJ-nCL6Tr%!7{a{#%!lvCL-4cZe=I{Vg(+yM!3@n z9!dr&YHFZzXK9h7@lAR*?H*%=A`gqFXjV5u?y|OA?$<+6n}q79Ik=dh-DUUXcW+e* zKb^oL!iBA-vqx8t=V}DP-EEPn?hGVnUQoJ_s&Xh%Pzbis)GYZ01p)4vfsz+SfhG22 z=ysy-$d@zFR8Xb9WfqvyDF#3+;nmgU>CA>$tatNHayw<0B6hF1<0T9nZ-!-?5qg5r zit(jFpE$yCkj4;%8ZYH4#`ex0V~@%k-#Td{$9|zH7101`xp)jc3b0ac-}QkS$s`l? zE|lfvc77MdHr5pumylXbG(%vnWFtepBIMyva9cY{23hMsWYm04D6afA=7<-0m`HO{Kt{TQp$Ew_L#`vMK==Gl+ z{UUaCs zX6Px#sL!8d56F&QvYL0w0`1hiwN=xtN}p4?W>u{bt`NJ$_!bpF0S+(BgRtdxrkdZs zVhz)=DB~5!^kU%9ZY3bVsx{FI1TU5G@}VbHF#B$6Fd^(fAK@;>0~AfPN2%9t^`zjO zvJqHD{gDANjpJx6si32RW+QhVuO7n#`TXHU-(cxu7Sp(=X;{}+n<`?~yUJy@1-E$l z_D-cRWZ0<9nTTe1KlMhufXhXzK^)f;BNG-#YhKmEb+W-VNOA(x0Mxjq$X}6PaZLFQ zt;ph7(ux&+yb`rQ=w^b)7b8%G7fgkhol9!&wNUIDKqEkg2*Y|J$-=-rIg-ATS4l^g zMvP(eaFy}4D{YI$yOIp9uRxe->9(r|W9MhGMhH?K_9x>d=Q1TX=7Rox+Qi{j(0)gf(|3n9erVHoQSaO!z*g z5n;MoqhBXx&P+P6e>K56SP-_7TdkVR&fEo9P3-d&lF(NwmXa(ZE{sf{W=vYYZozWZ z#D3(FmBV>r8l2BLWJl?3DRf%td==Ntqeqvsr*UTvs6^#BEZxA2Ota$S(*N_|)76U4 zoT@#}eZGs@=jO|UcNM1NYn*&0WpoG79T0Gx`#AJ%m=1k*#k4G=JA&>Ay5Dg|xc+s% z&iVO7r?r;;O9l=I(7TWu%{BhtJY8$ervE^9o$Fz`+*abC-W8qJa@yw`^f%Ho{w(YZ{4*`ZuJ7=#{rHZc zd%;V3cRz)R?ir`@`dLn`b+Z48e=p0e9g)vV?t)HhLam|Gjz4jTCpvz@8FZSf@WvPU zhU_Cf@gw5<8Mi^FIp-gI?DI~?biYV+DzDa-`U7+))1dP5=sl-3OVEAJDEuere#33hY0ahUFQNMgI`K~NX>FNrK=%)>Rc|^JpW^=` zXT)c7Ca>>R-;Bf(9e*}=E9kTq&B521PoM|s5TEthpEwiUHO=X|cLUl)qrZsy1=mWS z{9V&rgATe6MUal5`wRDp&c3M>o#ubV5p;j!fzpk%ME6<{r7(qy2ZL-^zk=?^Jc}d3 z{>6j1R@lFx`@1?|IwFi|I0fCG*$3zoRdzap?o(XEwSsX_KNjM59ChgKSs7zsGtnH>&C@JpU1= lqE;Q#{jE*$XU8YZJ9_cexa-SE_bTW<_>guGi4hi;{{wdf@lyZ* literal 159932 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 Date: Wed, 20 May 2020 17:12:45 +0200 Subject: [PATCH 17/30] mythen3: auto mode does not ignore #triggers --- slsReceiverSoftware/src/Implementation.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 6ae6be313..9c3a01913 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -1300,10 +1300,6 @@ void Implementation::updateTotalNumberOfFrames() { repeats = 1; } } - if (myDetectorType == MYTHEN3 && - (timingMode == AUTO_TIMING || timingMode == GATED)) { - repeats = 1; - } numberOfTotalFrames = numberOfFrames * repeats * (int64_t)(numberOfAdditionalStorageCells + 1); if (numberOfTotalFrames == 0) { From 07d90d127f94feba487f99d8b23b28edd96dfd24 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:25:39 +0200 Subject: [PATCH 18/30] gui fix --- slsDetectorGui/src/qTabMeasurement.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 46f48136a..0faece260 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -281,9 +281,6 @@ void qTabMeasurement::EnableWidgetsforTimingMode() { } lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); - if (det->getDetectorType().squash() == slsDetectorDefs::GOTTHARD2) { - ShowTriggerDelay(); - } break; case BURST_TRIGGER: // #frames, exptime, period From 174bb3274447dc757d54caf2a3bb7a8b7fde7ae6 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:26:57 +0200 Subject: [PATCH 19/30] gui minor fix --- slsDetectorGui/src/qTabMeasurement.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 0faece260..4b6e6e7c3 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -451,7 +451,7 @@ void qTabMeasurement::GetNumSamples() { } void qTabMeasurement::SetNumSamples(int val) { - LOG(logINFO) << "Getting number of external gates to " << val; + LOG(logINFO) << "Getting number of samples to " << val; try { det->setNumberOfAnalogSamples(val); } @@ -476,7 +476,7 @@ void qTabMeasurement::GetNumGates() { } void qTabMeasurement::SetNumGates(int val) { - LOG(logINFO) << "Setting number of gates to " << val; + LOG(logINFO) << "Setting number of external gates to " << val; try { det->setNumberOfGates(val); } From be3f095b56471a8ce5604f06d122b2cbb3df9509 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:27:22 +0200 Subject: [PATCH 20/30] gui minor fix --- slsDetectorGui/src/qTabMeasurement.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 4b6e6e7c3..e570bf250 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -451,7 +451,7 @@ void qTabMeasurement::GetNumSamples() { } void qTabMeasurement::SetNumSamples(int val) { - LOG(logINFO) << "Getting number of samples to " << val; + LOG(logINFO) << "Setting number of samples to " << val; try { det->setNumberOfAnalogSamples(val); } From 457f31ed616415bfb68b253a0cf680c43559e2c1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:30:07 +0200 Subject: [PATCH 21/30] mythen3 server minor print fix --- .../mythen3DetectorServer/slsDetectorFunctionList.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 7314d1149..dab60f003 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1275,7 +1275,7 @@ void setExtSignal(int signalIndex, enum externalSignalFlag mode) { int offset = DOUTIF1_INVERSION_OFST + signalIndex - 4; mask = (1 << offset); } - LOG(logINFO, ("addr: 0x%x mask:0x%x\n", addr, mask)); + LOG(logDEBUG, ("addr: 0x%x mask:0x%x\n", addr, mask)); switch (mode) { case TRIGGER_IN_RISING_EDGE: @@ -1318,7 +1318,7 @@ int getExtSignal(int signalIndex) { int offset = DOUTIF1_INVERSION_OFST + signalIndex - 4; mask = (1 << offset); } - LOG(logINFO, ("addr: 0x%x mask:0x%x\n", addr, mask)); + LOG(logDEBUG, ("addr: 0x%x mask:0x%x\n", addr, mask)); int val = bus_r(addr) & mask; // master input trigger signal From 02d8b1fb5fd9787dfe2392609bd3e10fd537de7e Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 20 May 2020 17:30:40 +0200 Subject: [PATCH 22/30] mythen3 binary --- .../bin/mythen3DetectorServer_developer | Bin 168744 -> 168744 bytes slsSupportLib/include/versionAPI.h | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index f8b2f12ff2bedb2af759e751838126de7e7b070d..4b4941052c61c2e21b100530baecf7ff58f27ebc 100755 GIT binary patch delta 41153 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 diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index e6493937d..6cb3508ab 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -8,6 +8,6 @@ #define APIGOTTHARD 0x200520 #define APIGOTTHARD2 0x200520 #define APIJUNGFRAU 0x200520 -#define APIMYTHEN3 0x200520 #define APIMOENCH 0x200515 #define APIEIGER 0x200520 +#define APIMYTHEN3 0x200520 From 0a6660511126fdeb0aab9b2cb95a8481376656e1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 22 May 2020 15:23:56 +0200 Subject: [PATCH 23/30] tests mainly and minor print --- slsDetectorSoftware/src/CmdProxy.cpp | 4 +- slsDetectorSoftware/tests/test-CmdProxy.cpp | 160 +++++++++++++++++--- 2 files changed, 139 insertions(+), 25 deletions(-) diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index d4e2e86ff..be96488e7 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -774,7 +774,7 @@ std::string CmdProxy::ExternalSignal(int action) { WrongNumberOfParameters(1); } auto t = det->getExternalSignalFlags(StringTo(args[0]), {det_id}); - os << OutString(t) << '\n'; + os << args[0] << " " << OutString(t) << '\n'; } else if (action == defs::PUT_ACTION) { if (args.size() != 2) { WrongNumberOfParameters(2); @@ -782,7 +782,7 @@ std::string CmdProxy::ExternalSignal(int action) { det->setExternalSignalFlags( StringTo(args[0]), StringTo(args[1]), {det_id}); - os << args[1] << '\n'; + os << args[0] << " " << args[1] << '\n'; } else { throw sls::RuntimeError("Unknown action"); } diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 6a474f1c1..d057e28b0 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -190,6 +190,46 @@ TEST_CASE("settings", "[.cmd][.new]") { } } +TEST_CASE("trimbits", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_NOTHROW(proxy.Call("trimbits", {}, -1, GET)); +} + +TEST_CASE("trimval", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::MYTHEN3 || det_type == defs::EIGER) { + auto prev_val = det.getAllTrimbits(); + { + std::ostringstream oss; + proxy.Call("trimval", {"63"}, -1, PUT, oss); + REQUIRE(oss.str() == "trimval 63\n"); + } + { + std::ostringstream oss; + proxy.Call("trimval", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "trimval 0\n"); + } + { + std::ostringstream oss; + proxy.Call("trimval", {}, -1, GET, oss); + REQUIRE(oss.str() == "trimval 0\n"); + } + REQUIRE_THROWS(proxy.Call("trimval", {"64"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("trimval", {"-1"}, -1, PUT)); + for (int i = 0; i != det.size(); ++i) { + if (prev_val[i] != -1) { + det.setAllTrimbits(prev_val[i], {i}); + } + } + } else { + REQUIRE_THROWS(proxy.Call("trimval", {}, -1, GET)); + } +} + /* acquisition parameters */ // acquire: not testing @@ -407,9 +447,27 @@ TEST_CASE("timing", "[.cmd][.new]") { proxy.Call("timing", {}, -1, GET, oss2); REQUIRE(oss2.str() == "timing burst_trigger\n"); } + REQUIRE_THROWS(proxy.Call("timing", {"trigger_gating"}, -1, PUT)); + } else if (det_type == defs::MYTHEN3) { + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"gating"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing gating\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing gating\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("timing", {"trigger_gating"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "timing trigger_gating\n"); + proxy.Call("timing", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "timing trigger_gating\n"); + } + REQUIRE_THROWS(proxy.Call("timing", {"burst_trigger"}, -1, PUT)); } else { REQUIRE_THROWS(proxy.Call("timing", {"gating"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("timing", {"burst_trigger"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("timing", {"trigger_gating"}, -1, PUT)); } for (int i = 0; i != det.size(); ++i) { det.setTimingMode(prev_val[i], {i}); @@ -812,6 +870,85 @@ TEST_CASE("imagetest", "[.cmd][.new]") { } } +TEST_CASE("extsig", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::GOTTHARD) { + auto prev_val = det.getExternalSignalFlags(0); + REQUIRE_THROWS(proxy.Call("extsig", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("extsig", {"1"}, -1, GET)); + REQUIRE_THROWS(proxy.Call("extsig", {"0", "inversion_on"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("extsig", {"0", "inversion_off"}, -1, PUT)); + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"0", "trigger_in_rising_edge"}, -1, PUT, + oss1); + REQUIRE(oss1.str() == "extsig 0 trigger_in_rising_edge\n"); + proxy.Call("extsig", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig trigger_in_rising_edge\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"0", "trigger_in_falling_edge"}, -1, PUT, + oss1); + REQUIRE(oss1.str() == "extsig 0 trigger_in_falling_edge\n"); + proxy.Call("extsig", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig 0 trigger_in_falling_edge\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setExternalSignalFlags(0, prev_val[i], {i}); + } + } else if (det_type == defs::MYTHEN3) { + auto prev_val_0 = det.getExternalSignalFlags(0); + auto prev_val_1 = det.getExternalSignalFlags(1); + REQUIRE_THROWS(proxy.Call("extsig", {}, -1, GET)); + REQUIRE_THROWS(proxy.Call("extsig", {"8"}, -1, GET)); + REQUIRE_THROWS(proxy.Call("extsig", {"0", "inversion_on"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("extsig", {"0", "inversion_off"}, -1, PUT)); + REQUIRE_THROWS( + proxy.Call("extsig", {"1", "trigger_in_rising_edge"}, -1, PUT)); + REQUIRE_THROWS( + proxy.Call("extsig", {"1", "trigger_in_falling_edge"}, -1, PUT)); + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"0", "trigger_in_rising_edge"}, -1, PUT, + oss1); + REQUIRE(oss1.str() == "extsig 0 trigger_in_rising_edge\n"); + proxy.Call("extsig", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig trigger_in_rising_edge\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"0", "trigger_in_falling_edge"}, -1, PUT, + oss1); + REQUIRE(oss1.str() == "extsig 0 trigger_in_falling_edge\n"); + proxy.Call("extsig", {"0"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig 0 trigger_in_falling_edge\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"1", "inversion_off"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "extsig 1 inversion_off\n"); + proxy.Call("extsig", {"1"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig inversion_off\n"); + } + { + std::ostringstream oss1, oss2; + proxy.Call("extsig", {"1", "inversion_on"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "extsig 1 inversion_on\n"); + proxy.Call("extsig", {"1"}, -1, GET, oss2); + REQUIRE(oss2.str() == "extsig 1 inversion_on\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setExternalSignalFlags(0, prev_val_0[i], {i}); + det.setExternalSignalFlags(1, prev_val_1[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("extsig", {}, -1, GET)); + } +} + /** temperature */ TEST_CASE("temp_adc", "[.cmd][.new]") { @@ -2366,29 +2503,6 @@ TEST_CASE("stopport", "[.cmd]") { // } // } -// TEST_CASE("trimval", "[.cmd][.eiger]") { -// if (test::type == defs::EIGER) { -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("trimval 63", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "trimval 63\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("trimval", GET, nullptr, -// oss)); REQUIRE(oss.str() == "trimval 63\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("trimval 31", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "trimval 31\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("trimval 0", PUT)); -// } else { -// REQUIRE_THROWS(multiSlsDetectorClient("trimval", GET)); -// } -// } - // TEST_CASE("flippeddatax", "[.cmd][.eiger]") { // if (test::type == defs::EIGER) { // { From 8ffb27c3002b795bf0fe09cfbc59bd3341aeb9df Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 25 May 2020 11:05:51 +0200 Subject: [PATCH 24/30] WIP --- .../tests/test-CmdProxy-eiger.cpp | 116 ++++++------------ slsDetectorSoftware/tests/test-CmdProxy.cpp | 86 +++++++------ 2 files changed, 86 insertions(+), 116 deletions(-) diff --git a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp index 535dad571..808621404 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp @@ -228,6 +228,41 @@ TEST_CASE("Setting and reading back EIGER dacs", "[.cmd][.dacs][.new]") { } } +/* acquisition */ + +TEST_CASE("trigger", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_THROWS(proxy.Call("trigger", {}, -1, GET)); + auto det_type = det.getDetectorType().squash(); + if (det_type != defs::EIGER) { + REQUIRE_THROWS(proxy.Call("trigger", {}, -1, PUT)); + } else { + auto prev_timing = + det.getTimingMode().tsquash("inconsistent timing mode in test"); + auto prev_frames = + det.getNumberOfFrames().tsquash("inconsistent #frames in test"); + det.setTimingMode(defs::TRIGGER_EXPOSURE); + det.setNumberOfFrames(1); + auto startingfnum = det.getStartingFrameNumber().tsquash( + "inconsistent frame nr in test"); + det.startDetector(); + { + std::ostringstream oss; + proxy.Call("trigger", {}, -1, PUT, oss); + REQUIRE(oss.str() == "trigger successful\n"); + } + auto currentfnum = det.getStartingFrameNumber().tsquash( + "inconsistent frame nr in test"); + REQUIRE(startingfnum + 1 == currentfnum); + det.stopDetector(); + det.setTimingMode(prev_timing); + det.setNumberOfFrames(prev_frames); + } +} + +/* Network Configuration (Detector<->Receiver) */ + TEST_CASE("Eiger transmission delay", "[.cmd]") { Detector det; CmdProxy proxy(&det); @@ -493,84 +528,3 @@ TEST_CASE("quad", "[.cmd]") { REQUIRE_THROWS(proxy.Call("quad", {}, -1, GET)); } } - -// TEST_CASE("trigger", "[.cmd]") { -// Detector det; -// CmdProxy proxy(&det); -// auto det_type = det.getDetectorType().squash(); -// if (det_type != defs::EIGER) { -// proxy.Call("trigger", {}, -1, PUT); -// } else { - -// { -// std::ostringstream oss; -// proxy.Call("timing", {"trigger"}, -1, PUT, oss); -// REQUIRE(oss.str() == "timing trigger\n"); -// } -// auto startingfnum = det.getStartingFrameNumber().tsquash( -// "inconsistent frame nr in test"); -// det.startDetector(); - -// { -// std::ostringstream oss; -// proxy.Call("trigger", {}, -1, PUT, oss); -// REQUIRE(oss.str() == "trigger successful\n"); -// } - -// auto currentfnum = det.getStartingFrameNumber().tsquash( -// "inconsistent frame nr in test"); - -// REQUIRE(startingfnum +1 == currentfnum); -// det.stopDetector(); -// { -// std::ostringstream oss; -// proxy.Call("timing", {"auto"}, -1, PUT, oss); -// REQUIRE(oss.str() == "timing auto\n"); -// } -// } -// if(test::type != slsDetectorDefs::EIGER) { -// REQUIRE_THROWS(multiSlsDetectorClient("trigger", PUT)); -// } else { -// // trigger -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing trigger", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "timing trigger\n"); -// } -// int startingfnum = 0; -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("startingfnum", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("startingfnum ")); startingfnum = std::stoi(s); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT, nullptr, -// oss)); REQUIRE(oss.str() == "start successful\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("status", GET, -// nullptr, oss)); REQUIRE(oss.str() != "status idle\n"); -// REQUIRE(oss.str() -// != "status stopped\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("trigger", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "trigger successful\n"); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("stop", PUT)); -// int currentfnum = 0; -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("startingfnum", GET, -// nullptr, oss)); std::string s = (oss.str()).erase (0, -// strlen("startingfnum ")); currentfnum = std::stoi(s); -// } -// REQUIRE((startingfnum + 1) == currentfnum); - -// REQUIRE_NOTHROW(multiSlsDetectorClient("timing auto", PUT)); -// } -// } diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index d057e28b0..495f917b7 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -1095,6 +1095,43 @@ TEST_CASE("startingfnum", "[.cmd][.new]") { } } +/* Network Configuration (Detector<->Receiver) */ + +TEST_CASE("numinterfaces", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::JUNGFRAU || det_type == defs::GOTTHARD2) { + auto prev_val = det.getNumberofUDPInterfaces().tsquash( + "inconsistent numinterfaces to test"); + { + std::ostringstream oss; + proxy.Call("numinterfaces", {"2"}, -1, PUT, oss); + REQUIRE(oss.str() == "numinterfaces 2\n"); + } + { + std::ostringstream oss; + proxy.Call("numinterfaces", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "numinterfaces 1\n"); + } + { + std::ostringstream oss; + proxy.Call("numinterfaces", {}, -1, GET, oss); + REQUIRE(oss.str() == "numinterfaces 1\n"); + } + det.setNumberofUDPInterfaces(prev_val); + } else { + std::ostringstream oss; + proxy.Call("numinterfaces", {}, -1, GET, oss); + REQUIRE(oss.str() == "numinterfaces 1\n"); + REQUIRE_THROWS(proxy.Call("numinterfaces", {"1"}, -1, PUT)); + } + REQUIRE_THROWS(proxy.Call("numinterfaces", {"3"}, -1, PUT)); + REQUIRE_THROWS(proxy.Call("numinterfaces", {"0"}, -1, PUT)); +} + +/* Advanced */ + TEST_CASE("initialchecks", "[.cmd]") { Detector det; CmdProxy proxy(&det); @@ -1124,18 +1161,7 @@ TEST_CASE("initialchecks", "[.cmd]") { det.setInitialChecks(check); } -TEST_CASE("user", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - proxy.Call("user", {}, -1, GET); - - // This is a get only command - REQUIRE_THROWS(proxy.Call("user", {}, -1, PUT)); -} - -// TEST_CASE("execcommand", "[.cmd]") { -// REQUIRE_NOTHROW(multiSlsDetectorClient("execcommand ls", PUT)); -// } +/* Insignificant */ TEST_CASE("port", "[.cmd]") { Detector det; @@ -1171,6 +1197,19 @@ TEST_CASE("stopport", "[.cmd]") { REQUIRE(port == 1953); } +// TEST_CASE("execcommand", "[.cmd]") { +// REQUIRE_NOTHROW(multiSlsDetectorClient("execcommand ls", PUT)); +// } + +TEST_CASE("user", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + proxy.Call("user", {}, -1, GET); + + // This is a get only command + REQUIRE_THROWS(proxy.Call("user", {}, -1, PUT)); +} + // TEST_CASE("reg", "[.cmd]") { // if (test::type == defs::JUNGFRAU) { // { @@ -2860,29 +2899,6 @@ TEST_CASE("zmqport", "[.cmd]") { // } // } -// TEST_CASE("numinterfaces", "[.cmd][.jungfrau]") { -// if (test::type == defs::JUNGFRAU) { -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 2", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:numinterfaces", GET, -// nullptr, oss)); REQUIRE(oss.str() == "numinterfaces 2\n"); -// } -// { -// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 1", PUT)); -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:numinterfaces", GET, -// nullptr, oss)); REQUIRE(oss.str() == "numinterfaces 1\n"); -// } -// } else { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:numinterfaces", GET, -// nullptr, oss)); REQUIRE(oss.str() == "numinterfaces 1\n"); -// } -// REQUIRE_THROWS(multiSlsDetectorClient("numinterfaces 3", PUT)); -// REQUIRE_THROWS(multiSlsDetectorClient("numinterfaces 0", PUT)); -// } - // TEST_CASE("adc", "[.cmd][.ctb]") { // if (test::type != defs::CHIPTESTBOARD) { // REQUIRE_THROWS(multiSlsDetectorClient("adc 8", GET)); From f293ba8c56f3b310d7f08a68d8a94614409d2a79 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 26 May 2020 08:50:09 +0200 Subject: [PATCH 25/30] gui cmake fix --- slsDetectorGui/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorGui/CMakeLists.txt b/slsDetectorGui/CMakeLists.txt index 21ee29110..ac9277a16 100755 --- a/slsDetectorGui/CMakeLists.txt +++ b/slsDetectorGui/CMakeLists.txt @@ -88,8 +88,8 @@ target_include_directories(slsDetectorGui PUBLIC ) target_link_libraries(slsDetectorGui PUBLIC + slsProjectWarnings slsDetectorShared - slsSupportLib ${QT_QTCORE_LIBRARIES} ${QT_QTGUI_LIBRARIES} ${QWT_LIBRARIES} From 37cb0bb1c056480dc49040db28b241bce058e819 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 26 May 2020 08:57:48 +0200 Subject: [PATCH 26/30] minor PR fixes --- slsDetectorGui/src/qTabMeasurement.cpp | 2 ++ slsDetectorSoftware/src/Module.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index e570bf250..4af9b9053 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -205,6 +205,8 @@ void qTabMeasurement::SetupTimingMode() { item[(int)GATED]->setEnabled(true); item[(int)TRIGGER_GATED]->setEnabled(true); break; + default: + break; } } } diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 669bac4eb..f7a2fb2d7 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1319,7 +1319,7 @@ Module::getExternalSignalFlags(int signalIndex) { void Module::setExternalSignalFlags(int signalIndex, externalSignalFlag type) { LOG(logDEBUG1) << "Setting signal flag (" << signalIndex << ") to " << type; - int args[2] = {signalIndex, static_cast(type)}; + int args[]{signalIndex, static_cast(type)}; sendToDetector(F_SET_EXTERNAL_SIGNAL_FLAG, args, nullptr); } From f4ba46c19bf8bc8de2c3ddac8017ac0076fd1926 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Tue, 26 May 2020 11:26:24 +0200 Subject: [PATCH 27/30] update function and enum generation --- python/scripts/generate_enums.py | 33 ++- python/scripts/generate_functions.py | 9 +- python/src/detector.cpp | 428 +++++++++++++++------------ python/src/detector_in.cpp | 5 + python/src/enums.cpp | 52 +--- 5 files changed, 295 insertions(+), 232 deletions(-) diff --git a/python/scripts/generate_enums.py b/python/scripts/generate_enums.py index ef028ef50..e6835e1da 100644 --- a/python/scripts/generate_enums.py +++ b/python/scripts/generate_enums.py @@ -11,6 +11,10 @@ import subprocess from parse import remove_comments +def single_line_enum(line): + sub = line[line.find('{')+1:line.find('}')] + return sub.strip().split(',') + def extract_enums(lines): line_iter = iter(lines) enums = {} @@ -18,19 +22,26 @@ def extract_enums(lines): m = re.search("(?<=enum )\w+(?= {)", line) if m: enum_name = m.group() - # print(enum_name) + print(enum_name) + # print(line) fields = [] - while True: - l = next(line_iter) - if '};' in l: - break - m = re.search("\w+", l) - try: - # print('\t', m.group()) - fields.append(m.group()) - except: - pass + #deal with single line enums + if '};' in line: + fields = single_line_enum(line) + else: + #deal with multi line enums + while True: + l = next(line_iter) + if '};' in l: + break + m = re.search("\w+", l) + try: + # print('\t', m.group()) + fields.append(m.group()) + + except: + pass enums[enum_name] = fields return enums diff --git a/python/scripts/generate_functions.py b/python/scripts/generate_functions.py index 4e830ce61..095a57a70 100644 --- a/python/scripts/generate_functions.py +++ b/python/scripts/generate_functions.py @@ -47,6 +47,8 @@ lines = [] ag2 = [] +cn = [] + def get_arguments(node): args = [a.type.spelling for a in node.get_arguments()] args = [ @@ -66,8 +68,12 @@ def get_fdec(node): else: return_type = 'void' + if node.is_const_method(): + const = 'const' + else: + const = '' args = ", ".join(args) - args = f'({return_type}(Detector::*)({args}))' + args = f'({return_type}(Detector::*)({args}){const})' return args @@ -85,6 +91,7 @@ def visit(node): lines.append( f'.def("{child.spelling}",{fs} &Detector::{child.spelling}{args})' ) + cn.append(child) for child in node.get_children(): visit(child) diff --git a/python/src/detector.cpp b/python/src/detector.cpp index 09a69668d..a2f29af31 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -11,10 +11,15 @@ #include "network_utils.h" #include "sls_detector_defs.h" #include "typecaster.h" + +#include "TimeHelper.h" +#include +#include namespace py = pybind11; void init_det(py::module &m) { using sls::defs; using sls::Detector; + using sls::ns; using sls::Positions; using sls::Result; @@ -32,7 +37,7 @@ void init_det(py::module &m) { Detector::loadParameters, py::arg()) .def("getHostname", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getHostname, py::arg() = Positions{}) .def("setHostname", @@ -43,52 +48,65 @@ void init_det(py::module &m) { (void (Detector::*)(int, int)) & Detector::setVirtualDetectorServers, py::arg(), py::arg()) - .def("getShmId", (int (Detector::*)()) & Detector::getShmId) + .def("getShmId", (int (Detector::*)() const) & Detector::getShmId) .def("getPackageVersion", - (std::string(Detector::*)()) & Detector::getPackageVersion) + (std::string(Detector::*)() const) & Detector::getPackageVersion) .def("getClientVersion", - (int64_t(Detector::*)()) & Detector::getClientVersion) + (int64_t(Detector::*)() const) & Detector::getClientVersion) .def("getFirmwareVersion", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFirmwareVersion, py::arg() = Positions{}) .def("getDetectorServerVersion", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDetectorServerVersion, py::arg() = Positions{}) .def("getSerialNumber", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSerialNumber, py::arg() = Positions{}) .def("getReceiverVersion", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getReceiverVersion, py::arg() = Positions{}) .def("getDetectorType", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDetectorType, py::arg() = Positions{}) - .def("size", (int (Detector::*)()) & Detector::size) - .def("empty", (bool (Detector::*)()) & Detector::empty) + .def("size", (int (Detector::*)() const) & Detector::size) + .def("empty", (bool (Detector::*)() const) & Detector::empty) .def("getModuleGeometry", - (defs::xy(Detector::*)()) & Detector::getModuleGeometry) + (defs::xy(Detector::*)() const) & Detector::getModuleGeometry) .def("getModuleSize", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getModuleSize, py::arg() = Positions{}) .def("getDetectorSize", - (defs::xy(Detector::*)()) & Detector::getDetectorSize) + (defs::xy(Detector::*)() const) & Detector::getDetectorSize) .def("setDetectorSize", (void (Detector::*)(const defs::xy)) & Detector::setDetectorSize, py::arg()) .def("getSettings", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) + const) & Detector::getSettings, py::arg() = Positions{}) .def("setSettings", (void (Detector::*)(defs::detectorSettings, sls::Positions)) & Detector::setSettings, py::arg(), py::arg() = Positions{}) + .def("loadTrimbits", + (void (Detector::*)(const std::string &, sls::Positions)) & + Detector::loadTrimbits, + py::arg(), py::arg() = Positions{}) + .def("getAllTrimbits", + (Result(Detector::*)(sls::Positions) const) & + Detector::getAllTrimbits, + py::arg() = Positions{}) + .def("setAllTrimbits", + (void (Detector::*)(int, sls::Positions)) & + Detector::setAllTrimbits, + py::arg(), py::arg() = Positions{}) .def("registerAcquisitionFinishedCallback", (void (Detector::*)(void (*)(double, int, void *), void *)) & Detector::registerAcquisitionFinishedCallback, @@ -100,27 +118,27 @@ void init_det(py::module &m) { Detector::registerDataCallback, py::arg(), py::arg()) .def("getGapPixelsinCallback", - (bool (Detector::*)()) & Detector::getGapPixelsinCallback) + (bool (Detector::*)() const) & Detector::getGapPixelsinCallback) .def("setGapPixelsinCallback", (void (Detector::*)(const bool)) & Detector::setGapPixelsinCallback, py::arg()) .def("getNumberOfFrames", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfFrames, py::arg() = Positions{}) .def("setNumberOfFrames", (void (Detector::*)(int64_t)) & Detector::setNumberOfFrames, py::arg()) .def("getNumberOfTriggers", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfTriggers, py::arg() = Positions{}) .def("setNumberOfTriggers", (void (Detector::*)(int64_t)) & Detector::setNumberOfTriggers, py::arg()) .def("getExptime", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getExptime, py::arg() = Positions{}) .def("setExptime", @@ -128,7 +146,7 @@ void init_det(py::module &m) { Detector::setExptime, py::arg(), py::arg() = Positions{}) .def("getPeriod", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPeriod, py::arg() = Positions{}) .def("setPeriod", @@ -136,7 +154,7 @@ void init_det(py::module &m) { Detector::setPeriod, py::arg(), py::arg() = Positions{}) .def("getDelayAfterTrigger", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDelayAfterTrigger, py::arg() = Positions{}) .def("setDelayAfterTrigger", @@ -144,23 +162,23 @@ void init_det(py::module &m) { Detector::setDelayAfterTrigger, py::arg(), py::arg() = Positions{}) .def("getNumberOfFramesLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfFramesLeft, py::arg() = Positions{}) .def("getNumberOfTriggersLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfTriggersLeft, py::arg() = Positions{}) .def("getPeriodLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPeriodLeft, py::arg() = Positions{}) .def("getDelayAfterTriggerLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDelayAfterTriggerLeft, py::arg() = Positions{}) .def("getTimingMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTimingMode, py::arg() = Positions{}) .def("setTimingMode", @@ -168,7 +186,7 @@ void init_det(py::module &m) { Detector::setTimingMode, py::arg(), py::arg() = Positions{}) .def("getSpeed", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSpeed, py::arg() = Positions{}) .def("setSpeed", @@ -176,17 +194,18 @@ void init_det(py::module &m) { Detector::setSpeed, py::arg(), py::arg() = Positions{}) .def("getADCPhase", - (Result(Detector::*)(sls::Positions)) & Detector::getADCPhase, + (Result(Detector::*)(sls::Positions) const) & + Detector::getADCPhase, py::arg() = Positions{}) .def("setADCPhase", (void (Detector::*)(int, sls::Positions)) & Detector::setADCPhase, py::arg(), py::arg() = Positions{}) .def("getMaxADCPhaseShift", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMaxADCPhaseShift, py::arg() = Positions{}) .def("getADCPhaseInDegrees", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getADCPhaseInDegrees, py::arg() = Positions{}) .def("setADCPhaseInDegrees", @@ -194,18 +213,18 @@ void init_det(py::module &m) { Detector::setADCPhaseInDegrees, py::arg(), py::arg() = Positions{}) .def("getDBITPhase", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDBITPhase, py::arg() = Positions{}) .def("setDBITPhase", (void (Detector::*)(int, sls::Positions)) & Detector::setDBITPhase, py::arg(), py::arg() = Positions{}) .def("getMaxDBITPhaseShift", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMaxDBITPhaseShift, py::arg() = Positions{}) .def("getDBITPhaseInDegrees", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDBITPhaseInDegrees, py::arg() = Positions{}) .def("setDBITPhaseInDegrees", @@ -249,7 +268,7 @@ void init_det(py::module &m) { Detector::setClockDivider, py::arg(), py::arg(), py::arg() = Positions{}) .def("getHighVoltage", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getHighVoltage, py::arg() = Positions{}) .def("setHighVoltage", @@ -257,7 +276,7 @@ void init_det(py::module &m) { Detector::setHighVoltage, py::arg(), py::arg() = Positions{}) .def("getPowerChip", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPowerChip, py::arg() = Positions{}) .def("setPowerChip", @@ -273,11 +292,12 @@ void init_det(py::module &m) { Detector::setImageTestMode, py::arg(), py::arg() = Positions{}) .def("getTemperature", - (Result(Detector::*)(defs::dacIndex, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, sls::Positions) const) & Detector::getTemperature, py::arg(), py::arg() = Positions{}) .def("getDAC", - (Result(Detector::*)(defs::dacIndex, bool, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, bool, sls::Positions) + const) & Detector::getDAC, py::arg(), py::arg(), py::arg() = Positions{}) .def("setDAC", @@ -285,7 +305,8 @@ void init_det(py::module &m) { Detector::setDAC, py::arg(), py::arg(), py::arg(), py::arg() = Positions{}) .def("getOnChipDAC", - (Result(Detector::*)(defs::dacIndex, int, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, int, sls::Positions) + const) & Detector::getOnChipDAC, py::arg(), py::arg(), py::arg() = Positions{}) .def("setOnChipDAC", @@ -300,23 +321,24 @@ void init_det(py::module &m) { .def("startDetector", (void (Detector::*)()) & Detector::startDetector) .def("stopDetector", (void (Detector::*)()) & Detector::stopDetector) .def("getDetectorStatus", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDetectorStatus, py::arg() = Positions{}) .def("getReceiverStatus", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getReceiverStatus, py::arg() = Positions{}) .def("getFramesCaught", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFramesCaught, py::arg() = Positions{}) - .def("getNumMissingPackets", - (Result>(Detector::*)(sls::Positions)) & - Detector::getNumMissingPackets, - py::arg() = Positions{}) + .def( + "getNumMissingPackets", + (Result>(Detector::*)(sls::Positions) const) & + Detector::getNumMissingPackets, + py::arg() = Positions{}) .def("getStartingFrameNumber", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getStartingFrameNumber, py::arg() = Positions{}) .def("setStartingFrameNumber", @@ -328,7 +350,7 @@ void init_det(py::module &m) { Detector::sendSoftwareTrigger, py::arg() = Positions{}) .def("getNumberofUDPInterfaces", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberofUDPInterfaces, py::arg() = Positions{}) .def("setNumberofUDPInterfaces", @@ -336,7 +358,7 @@ void init_det(py::module &m) { Detector::setNumberofUDPInterfaces, py::arg(), py::arg() = Positions{}) .def("getSelectedUDPInterface", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSelectedUDPInterface, py::arg() = Positions{}) .def("selectUDPInterface", @@ -344,7 +366,7 @@ void init_det(py::module &m) { Detector::selectUDPInterface, py::arg(), py::arg() = Positions{}) .def("getSourceUDPIP", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSourceUDPIP, py::arg() = Positions{}) .def("setSourceUDPIP", @@ -352,7 +374,7 @@ void init_det(py::module &m) { Detector::setSourceUDPIP, py::arg(), py::arg() = Positions{}) .def("getSourceUDPIP2", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSourceUDPIP2, py::arg() = Positions{}) .def("setSourceUDPIP2", @@ -360,7 +382,7 @@ void init_det(py::module &m) { Detector::setSourceUDPIP2, py::arg(), py::arg() = Positions{}) .def("getSourceUDPMAC", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSourceUDPMAC, py::arg() = Positions{}) .def("setSourceUDPMAC", @@ -368,7 +390,7 @@ void init_det(py::module &m) { Detector::setSourceUDPMAC, py::arg(), py::arg() = Positions{}) .def("getSourceUDPMAC2", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSourceUDPMAC2, py::arg() = Positions{}) .def("setSourceUDPMAC2", @@ -376,7 +398,7 @@ void init_det(py::module &m) { Detector::setSourceUDPMAC2, py::arg(), py::arg() = Positions{}) .def("getDestinationUDPIP", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPIP, py::arg() = Positions{}) .def("setDestinationUDPIP", @@ -384,7 +406,7 @@ void init_det(py::module &m) { Detector::setDestinationUDPIP, py::arg(), py::arg() = Positions{}) .def("getDestinationUDPIP2", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPIP2, py::arg() = Positions{}) .def("setDestinationUDPIP2", @@ -392,7 +414,7 @@ void init_det(py::module &m) { Detector::setDestinationUDPIP2, py::arg(), py::arg() = Positions{}) .def("getDestinationUDPMAC", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPMAC, py::arg() = Positions{}) .def("setDestinationUDPMAC", @@ -400,7 +422,7 @@ void init_det(py::module &m) { Detector::setDestinationUDPMAC, py::arg(), py::arg() = Positions{}) .def("getDestinationUDPMAC2", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPMAC2, py::arg() = Positions{}) .def("setDestinationUDPMAC2", @@ -408,31 +430,32 @@ void init_det(py::module &m) { Detector::setDestinationUDPMAC2, py::arg(), py::arg() = Positions{}) .def("getDestinationUDPPort", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPPort, py::arg() = Positions{}) .def("setDestinationUDPPort", (void (Detector::*)(int, int)) & Detector::setDestinationUDPPort, py::arg(), py::arg()) .def("getDestinationUDPPort2", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDestinationUDPPort2, py::arg() = Positions{}) .def("setDestinationUDPPort2", (void (Detector::*)(int, int)) & Detector::setDestinationUDPPort2, py::arg(), py::arg()) .def("printRxConfiguration", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::printRxConfiguration, py::arg() = Positions{}) .def("getTenGiga", - (Result(Detector::*)(sls::Positions)) & Detector::getTenGiga, + (Result(Detector::*)(sls::Positions) const) & + Detector::getTenGiga, py::arg() = Positions{}) .def("setTenGiga", (void (Detector::*)(bool, sls::Positions)) & Detector::setTenGiga, py::arg(), py::arg() = Positions{}) .def("getTenGigaFlowControl", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTenGigaFlowControl, py::arg() = Positions{}) .def("setTenGigaFlowControl", @@ -440,7 +463,7 @@ void init_det(py::module &m) { Detector::setTenGigaFlowControl, py::arg(), py::arg() = Positions{}) .def("getTransmissionDelayFrame", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTransmissionDelayFrame, py::arg() = Positions{}) .def("setTransmissionDelayFrame", @@ -448,7 +471,7 @@ void init_det(py::module &m) { Detector::setTransmissionDelayFrame, py::arg(), py::arg() = Positions{}) .def("getTransmissionDelayLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTransmissionDelayLeft, py::arg() = Positions{}) .def("setTransmissionDelayLeft", @@ -456,7 +479,7 @@ void init_det(py::module &m) { Detector::setTransmissionDelayLeft, py::arg(), py::arg() = Positions{}) .def("getTransmissionDelayRight", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTransmissionDelayRight, py::arg() = Positions{}) .def("setTransmissionDelayRight", @@ -464,11 +487,11 @@ void init_det(py::module &m) { Detector::setTransmissionDelayRight, py::arg(), py::arg() = Positions{}) .def("getUseReceiverFlag", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getUseReceiverFlag, py::arg() = Positions{}) .def("getRxHostname", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxHostname, py::arg() = Positions{}) .def("setRxHostname", @@ -480,12 +503,13 @@ void init_det(py::module &m) { Detector::setRxHostname, py::arg()) .def("getRxPort", - (Result(Detector::*)(sls::Positions)) & Detector::getRxPort, + (Result(Detector::*)(sls::Positions) const) & + Detector::getRxPort, py::arg() = Positions{}) .def("setRxPort", (void (Detector::*)(int, int)) & Detector::setRxPort, py::arg(), py::arg()) .def("getRxFifoDepth", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxFifoDepth, py::arg() = Positions{}) .def("setRxFifoDepth", @@ -493,7 +517,7 @@ void init_det(py::module &m) { Detector::setRxFifoDepth, py::arg(), py::arg() = Positions{}) .def("getRxSilentMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxSilentMode, py::arg() = Positions{}) .def("setRxSilentMode", @@ -501,7 +525,8 @@ void init_det(py::module &m) { Detector::setRxSilentMode, py::arg(), py::arg() = Positions{}) .def("getRxFrameDiscardPolicy", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) + const) & Detector::getRxFrameDiscardPolicy, py::arg() = Positions{}) .def("setRxFrameDiscardPolicy", @@ -509,7 +534,7 @@ void init_det(py::module &m) { Detector::setRxFrameDiscardPolicy, py::arg(), py::arg() = Positions{}) .def("getPartialFramesPadding", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPartialFramesPadding, py::arg() = Positions{}) .def("setPartialFramesPadding", @@ -517,7 +542,7 @@ void init_det(py::module &m) { Detector::setPartialFramesPadding, py::arg(), py::arg() = Positions{}) .def("getRxUDPSocketBufferSize", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxUDPSocketBufferSize, py::arg() = Positions{}) .def("setRxUDPSocketBufferSize", @@ -525,7 +550,7 @@ void init_det(py::module &m) { Detector::setRxUDPSocketBufferSize, py::arg(), py::arg() = Positions{}) .def("getRxRealUDPSocketBufferSize", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxRealUDPSocketBufferSize, py::arg() = Positions{}) .def("getRxLock", @@ -535,11 +560,11 @@ void init_det(py::module &m) { (void (Detector::*)(bool, sls::Positions)) & Detector::setRxLock, py::arg(), py::arg() = Positions{}) .def("getRxLastClientIP", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxLastClientIP, py::arg() = Positions{}) .def("getFileFormat", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFileFormat, py::arg() = Positions{}) .def("setFileFormat", @@ -547,7 +572,7 @@ void init_det(py::module &m) { Detector::setFileFormat, py::arg(), py::arg() = Positions{}) .def("getFilePath", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFilePath, py::arg() = Positions{}) .def("setFilePath", @@ -555,7 +580,7 @@ void init_det(py::module &m) { Detector::setFilePath, py::arg(), py::arg() = Positions{}) .def("getFileNamePrefix", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFileNamePrefix, py::arg() = Positions{}) .def("setFileNamePrefix", @@ -563,7 +588,7 @@ void init_det(py::module &m) { Detector::setFileNamePrefix, py::arg(), py::arg() = Positions{}) .def("getAcquisitionIndex", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getAcquisitionIndex, py::arg() = Positions{}) .def("setAcquisitionIndex", @@ -571,7 +596,7 @@ void init_det(py::module &m) { Detector::setAcquisitionIndex, py::arg(), py::arg() = Positions{}) .def("getFileWrite", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFileWrite, py::arg() = Positions{}) .def("setFileWrite", @@ -579,7 +604,7 @@ void init_det(py::module &m) { Detector::setFileWrite, py::arg(), py::arg() = Positions{}) .def("getMasterFileWrite", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMasterFileWrite, py::arg() = Positions{}) .def("setMasterFileWrite", @@ -587,7 +612,7 @@ void init_det(py::module &m) { Detector::setMasterFileWrite, py::arg(), py::arg() = Positions{}) .def("getFileOverWrite", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFileOverWrite, py::arg() = Positions{}) .def("setFileOverWrite", @@ -595,7 +620,7 @@ void init_det(py::module &m) { Detector::setFileOverWrite, py::arg(), py::arg() = Positions{}) .def("getFramesPerFile", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFramesPerFile, py::arg() = Positions{}) .def("setFramesPerFile", @@ -603,7 +628,7 @@ void init_det(py::module &m) { Detector::setFramesPerFile, py::arg(), py::arg() = Positions{}) .def("getRxZmqDataStream", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxZmqDataStream, py::arg() = Positions{}) .def("setRxZmqDataStream", @@ -611,7 +636,7 @@ void init_det(py::module &m) { Detector::setRxZmqDataStream, py::arg(), py::arg() = Positions{}) .def("getRxZmqFrequency", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxZmqFrequency, py::arg() = Positions{}) .def("setRxZmqFrequency", @@ -619,7 +644,7 @@ void init_det(py::module &m) { Detector::setRxZmqFrequency, py::arg(), py::arg() = Positions{}) .def("getRxZmqTimer", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxZmqTimer, py::arg() = Positions{}) .def("setRxZmqTimer", @@ -627,14 +652,14 @@ void init_det(py::module &m) { Detector::setRxZmqTimer, py::arg(), py::arg() = Positions{}) .def("getRxZmqPort", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxZmqPort, py::arg() = Positions{}) .def("setRxZmqPort", (void (Detector::*)(int, int)) & Detector::setRxZmqPort, py::arg(), py::arg()) .def("getRxZmqIP", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxZmqIP, py::arg() = Positions{}) .def("setRxZmqIP", @@ -642,14 +667,14 @@ void init_det(py::module &m) { Detector::setRxZmqIP, py::arg(), py::arg() = Positions{}) .def("getClientZmqPort", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getClientZmqPort, py::arg() = Positions{}) .def("setClientZmqPort", (void (Detector::*)(int, int)) & Detector::setClientZmqPort, py::arg(), py::arg()) .def("getClientZmqIp", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getClientZmqIp, py::arg() = Positions{}) .def("setClientZmqIp", @@ -657,13 +682,13 @@ void init_det(py::module &m) { Detector::setClientZmqIp, py::arg(), py::arg() = Positions{}) .def("getDynamicRange", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDynamicRange, py::arg() = Positions{}) .def("setDynamicRange", (void (Detector::*)(int)) & Detector::setDynamicRange, py::arg()) .def("getSubExptime", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSubExptime, py::arg() = Positions{}) .def("setSubExptime", @@ -671,7 +696,7 @@ void init_det(py::module &m) { Detector::setSubExptime, py::arg(), py::arg() = Positions{}) .def("getSubDeadTime", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSubDeadTime, py::arg() = Positions{}) .def("setSubDeadTime", @@ -679,7 +704,7 @@ void init_det(py::module &m) { Detector::setSubDeadTime, py::arg(), py::arg() = Positions{}) .def("getThresholdEnergy", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getThresholdEnergy, py::arg() = Positions{}) .def("setThresholdEnergy", @@ -688,19 +713,15 @@ void init_det(py::module &m) { Detector::setThresholdEnergy, py::arg(), py::arg(), py::arg(), py::arg() = Positions{}) .def("getSettingsPath", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSettingsPath, py::arg() = Positions{}) .def("setSettingsPath", (void (Detector::*)(const std::string &, sls::Positions)) & Detector::setSettingsPath, py::arg(), py::arg() = Positions{}) - .def("loadTrimbits", - (void (Detector::*)(const std::string &, sls::Positions)) & - Detector::loadTrimbits, - py::arg(), py::arg() = Positions{}) .def("getParallelMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getParallelMode, py::arg() = Positions{}) .def("setParallelMode", @@ -708,7 +729,7 @@ void init_det(py::module &m) { Detector::setParallelMode, py::arg(), py::arg() = Positions{}) .def("getOverFlowMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getOverFlowMode, py::arg() = Positions{}) .def("setOverFlowMode", @@ -716,7 +737,7 @@ void init_det(py::module &m) { Detector::setOverFlowMode, py::arg(), py::arg() = Positions{}) .def("getStoreInRamMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getStoreInRamMode, py::arg() = Positions{}) .def("setStoreInRamMode", @@ -724,21 +745,14 @@ void init_det(py::module &m) { Detector::setStoreInRamMode, py::arg(), py::arg() = Positions{}) .def("getBottom", - (Result(Detector::*)(sls::Positions)) & Detector::getBottom, + (Result(Detector::*)(sls::Positions) const) & + Detector::getBottom, py::arg() = Positions{}) .def("setBottom", (void (Detector::*)(bool, sls::Positions)) & Detector::setBottom, py::arg(), py::arg() = Positions{}) - .def("getAllTrimbits", - (Result(Detector::*)(sls::Positions)) & - Detector::getAllTrimbits, - py::arg() = Positions{}) - .def("setAllTrimbits", - (void (Detector::*)(int, sls::Positions)) & - Detector::setAllTrimbits, - py::arg(), py::arg() = Positions{}) .def("getTrimEnergies", - (Result>(Detector::*)(sls::Positions)) & + (Result>(Detector::*)(sls::Positions) const) & Detector::getTrimEnergies, py::arg() = Positions{}) .def("setTrimEnergies", @@ -746,7 +760,7 @@ void init_det(py::module &m) { Detector::setTrimEnergies, py::arg(), py::arg() = Positions{}) .def("getRateCorrection", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRateCorrection, py::arg() = Positions{}) .def("setDefaultRateCorrection", @@ -758,7 +772,7 @@ void init_det(py::module &m) { Detector::setRateCorrection, py::arg(), py::arg() = Positions{}) .def("getPartialReadout", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPartialReadout, py::arg() = Positions{}) .def("setPartialReadout", @@ -766,7 +780,7 @@ void init_det(py::module &m) { Detector::setPartialReadout, py::arg(), py::arg() = Positions{}) .def("getInterruptSubframe", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getInterruptSubframe, py::arg() = Positions{}) .def("setInterruptSubframe", @@ -774,21 +788,23 @@ void init_det(py::module &m) { Detector::setInterruptSubframe, py::arg(), py::arg() = Positions{}) .def("getMeasuredPeriod", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMeasuredPeriod, py::arg() = Positions{}) .def("getMeasuredSubFramePeriod", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMeasuredSubFramePeriod, py::arg() = Positions{}) .def("getActive", - (Result(Detector::*)(sls::Positions)) & Detector::getActive, + (Result(Detector::*)(sls::Positions) const) & + Detector::getActive, py::arg() = Positions{}) .def("setActive", - (void (Detector::*)(bool, sls::Positions)) & Detector::setActive, + (void (Detector::*)(const bool, sls::Positions)) & + Detector::setActive, py::arg(), py::arg() = Positions{}) .def("getRxPadDeactivatedMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxPadDeactivatedMode, py::arg() = Positions{}) .def("setRxPadDeactivatedMode", @@ -796,7 +812,7 @@ void init_det(py::module &m) { Detector::setRxPadDeactivatedMode, py::arg(), py::arg() = Positions{}) .def("getPartialReset", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPartialReset, py::arg() = Positions{}) .def("setPartialReset", @@ -815,12 +831,13 @@ void init_det(py::module &m) { (void (Detector::*)(int, sls::Positions)) & Detector::pulseChip, py::arg(), py::arg() = Positions{}) .def("getQuad", - (Result(Detector::*)(sls::Positions)) & Detector::getQuad, + (Result(Detector::*)(sls::Positions) const) & + Detector::getQuad, py::arg() = Positions{}) .def("setQuad", (void (Detector::*)(const bool)) & Detector::setQuad, py::arg()) .def("getThresholdTemperature", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getThresholdTemperature, py::arg() = Positions{}) .def("setThresholdTemperature", @@ -828,7 +845,7 @@ void init_det(py::module &m) { Detector::setThresholdTemperature, py::arg(), py::arg() = Positions{}) .def("getTemperatureControl", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTemperatureControl, py::arg() = Positions{}) .def("setTemperatureControl", @@ -836,7 +853,7 @@ void init_det(py::module &m) { Detector::setTemperatureControl, py::arg(), py::arg() = Positions{}) .def("getTemperatureEvent", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTemperatureEvent, py::arg() = Positions{}) .def("resetTemperatureEvent", @@ -844,7 +861,7 @@ void init_det(py::module &m) { Detector::resetTemperatureEvent, py::arg() = Positions{}) .def("getAutoCompDisable", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getAutoCompDisable, py::arg() = Positions{}) .def("setAutoCompDisable", @@ -852,7 +869,7 @@ void init_det(py::module &m) { Detector::setAutoCompDisable, py::arg(), py::arg() = Positions{}) .def("getNumberOfAdditionalStorageCells", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfAdditionalStorageCells, py::arg() = Positions{}) .def("setNumberOfAdditionalStorageCells", @@ -860,7 +877,7 @@ void init_det(py::module &m) { Detector::setNumberOfAdditionalStorageCells, py::arg()) .def("getStorageCellStart", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getStorageCellStart, py::arg() = Positions{}) .def("setStoragecellStart", @@ -868,7 +885,7 @@ void init_det(py::module &m) { Detector::setStoragecellStart, py::arg(), py::arg() = Positions{}) .def("getStorageCellDelay", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getStorageCellDelay, py::arg() = Positions{}) .def("setStorageCellDelay", @@ -876,7 +893,7 @@ void init_det(py::module &m) { Detector::setStorageCellDelay, py::arg(), py::arg() = Positions{}) .def("getROI", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getROI, py::arg() = Positions{}) .def("setROI", (void (Detector::*)(defs::ROI, int)) & Detector::setROI, @@ -885,26 +902,28 @@ void init_det(py::module &m) { (void (Detector::*)(sls::Positions)) & Detector::clearROI, py::arg() = Positions{}) .def("getExptimeLeft", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getExptimeLeft, py::arg() = Positions{}) .def("getExternalSignalFlags", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(int, sls::Positions) + const) & Detector::getExternalSignalFlags, - py::arg() = Positions{}) - .def("setExternalSignalFlags", - (void (Detector::*)(defs::externalSignalFlag, sls::Positions)) & - Detector::setExternalSignalFlags, py::arg(), py::arg() = Positions{}) + .def("setExternalSignalFlags", + (void (Detector::*)(int, defs::externalSignalFlag, + sls::Positions)) & + Detector::setExternalSignalFlags, + py::arg(), py::arg(), py::arg() = Positions{}) .def("getNumberOfBursts", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfBursts, py::arg() = Positions{}) .def("setNumberOfBursts", (void (Detector::*)(int64_t)) & Detector::setNumberOfBursts, py::arg()) .def("getBurstPeriod", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getBurstPeriod, py::arg() = Positions{}) .def("setBurstPeriod", @@ -943,7 +962,7 @@ void init_det(py::module &m) { Detector::setBurstMode, py::arg(), py::arg() = Positions{}) .def("getCurrentSource", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getCurrentSource, py::arg() = Positions{}) .def("setCurrentSource", @@ -951,7 +970,8 @@ void init_det(py::module &m) { Detector::setCurrentSource, py::arg(), py::arg() = Positions{}) .def("getTimingSource", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) + const) & Detector::getTimingSource, py::arg() = Positions{}) .def("setTimingSource", @@ -959,15 +979,47 @@ void init_det(py::module &m) { Detector::setTimingSource, py::arg(), py::arg() = Positions{}) .def("getCounterMask", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getCounterMask, py::arg() = Positions{}) .def("setCounterMask", (void (Detector::*)(uint32_t, sls::Positions)) & Detector::setCounterMask, py::arg(), py::arg() = Positions{}) + .def("getNumberOfGates", + (Result(Detector::*)(sls::Positions) const) & + Detector::getNumberOfGates, + py::arg() = Positions{}) + .def("setNumberOfGates", + (void (Detector::*)(int, sls::Positions)) & + Detector::setNumberOfGates, + py::arg(), py::arg() = Positions{}) + .def("getExptime", + (Result(Detector::*)(int, sls::Positions) const) & + Detector::getExptime, + py::arg(), py::arg() = Positions{}) + .def("setExptime", + (void (Detector::*)(int, sls::ns, sls::Positions)) & + Detector::setExptime, + py::arg(), py::arg(), py::arg() = Positions{}) + .def("getExptimeForAllGates", + (Result>(Detector::*)(sls::Positions) const) & + Detector::getExptimeForAllGates, + py::arg() = Positions{}) + .def("getGateDelay", + (Result(Detector::*)(int, sls::Positions) const) & + Detector::getGateDelay, + py::arg(), py::arg() = Positions{}) + .def("setGateDelay", + (void (Detector::*)(int, sls::ns, sls::Positions)) & + Detector::setGateDelay, + py::arg(), py::arg(), py::arg() = Positions{}) + .def("getGateDelayForAllGates", + (Result>(Detector::*)(sls::Positions) const) & + Detector::getGateDelayForAllGates, + py::arg() = Positions{}) .def("getNumberOfAnalogSamples", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfAnalogSamples, py::arg() = Positions{}) .def("setNumberOfAnalogSamples", @@ -975,23 +1027,25 @@ void init_det(py::module &m) { Detector::setNumberOfAnalogSamples, py::arg(), py::arg() = Positions{}) .def("getADCClock", - (Result(Detector::*)(sls::Positions)) & Detector::getADCClock, + (Result(Detector::*)(sls::Positions) const) & + Detector::getADCClock, py::arg() = Positions{}) .def("setADCClock", (void (Detector::*)(int, sls::Positions)) & Detector::setADCClock, py::arg(), py::arg() = Positions{}) .def("getRUNClock", - (Result(Detector::*)(sls::Positions)) & Detector::getRUNClock, + (Result(Detector::*)(sls::Positions) const) & + Detector::getRUNClock, py::arg() = Positions{}) .def("setRUNClock", (void (Detector::*)(int, sls::Positions)) & Detector::setRUNClock, py::arg(), py::arg() = Positions{}) .def("getSYNCClock", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSYNCClock, py::arg() = Positions{}) .def("getADCPipeline", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getADCPipeline, py::arg() = Positions{}) .def("setADCPipeline", @@ -999,7 +1053,7 @@ void init_det(py::module &m) { Detector::setADCPipeline, py::arg(), py::arg() = Positions{}) .def("getVoltage", - (Result(Detector::*)(defs::dacIndex, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, sls::Positions) const) & Detector::getVoltage, py::arg(), py::arg() = Positions{}) .def("setVoltage", @@ -1007,7 +1061,7 @@ void init_det(py::module &m) { Detector::setVoltage, py::arg(), py::arg(), py::arg() = Positions{}) .def("getADCEnableMask", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getADCEnableMask, py::arg() = Positions{}) .def("setADCEnableMask", @@ -1015,7 +1069,7 @@ void init_det(py::module &m) { Detector::setADCEnableMask, py::arg(), py::arg() = Positions{}) .def("getTenGigaADCEnableMask", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getTenGigaADCEnableMask, py::arg() = Positions{}) .def("setTenGigaADCEnableMask", @@ -1023,7 +1077,7 @@ void init_det(py::module &m) { Detector::setTenGigaADCEnableMask, py::arg(), py::arg() = Positions{}) .def("getNumberOfDigitalSamples", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfDigitalSamples, py::arg() = Positions{}) .def("setNumberOfDigitalSamples", @@ -1031,7 +1085,7 @@ void init_det(py::module &m) { Detector::setNumberOfDigitalSamples, py::arg(), py::arg() = Positions{}) .def("getReadoutMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getReadoutMode, py::arg() = Positions{}) .def("setReadoutMode", @@ -1039,14 +1093,14 @@ void init_det(py::module &m) { Detector::setReadoutMode, py::arg(), py::arg() = Positions{}) .def("getDBITClock", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDBITClock, py::arg() = Positions{}) .def("setDBITClock", (void (Detector::*)(int, sls::Positions)) & Detector::setDBITClock, py::arg(), py::arg() = Positions{}) .def("getDBITPipeline", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDBITPipeline, py::arg() = Positions{}) .def("setDBITPipeline", @@ -1054,19 +1108,19 @@ void init_det(py::module &m) { Detector::setDBITPipeline, py::arg(), py::arg() = Positions{}) .def("getMeasuredVoltage", - (Result(Detector::*)(defs::dacIndex, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, sls::Positions) const) & Detector::getMeasuredVoltage, py::arg(), py::arg() = Positions{}) .def("getMeasuredCurrent", - (Result(Detector::*)(defs::dacIndex, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, sls::Positions) const) & Detector::getMeasuredCurrent, py::arg(), py::arg() = Positions{}) .def("getSlowADC", - (Result(Detector::*)(defs::dacIndex, sls::Positions)) & + (Result(Detector::*)(defs::dacIndex, sls::Positions) const) & Detector::getSlowADC, py::arg(), py::arg() = Positions{}) .def("getExternalSamplingSource", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getExternalSamplingSource, py::arg() = Positions{}) .def("setExternalSamplingSource", @@ -1074,7 +1128,7 @@ void init_det(py::module &m) { Detector::setExternalSamplingSource, py::arg(), py::arg() = Positions{}) .def("getExternalSampling", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getExternalSampling, py::arg() = Positions{}) .def("setExternalSampling", @@ -1082,7 +1136,7 @@ void init_det(py::module &m) { Detector::setExternalSampling, py::arg(), py::arg() = Positions{}) .def("getRxDbitList", - (Result>(Detector::*)(sls::Positions)) & + (Result>(Detector::*)(sls::Positions) const) & Detector::getRxDbitList, py::arg() = Positions{}) .def("setRxDbitList", @@ -1090,7 +1144,7 @@ void init_det(py::module &m) { Detector::setRxDbitList, py::arg(), py::arg() = Positions{}) .def("getRxDbitOffset", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxDbitOffset, py::arg() = Positions{}) .def("setRxDbitOffset", @@ -1102,7 +1156,7 @@ void init_det(py::module &m) { Detector::setDigitalIODelay, py::arg(), py::arg(), py::arg() = Positions{}) .def("getLEDEnable", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getLEDEnable, py::arg() = Positions{}) .def("setLEDEnable", @@ -1117,7 +1171,7 @@ void init_det(py::module &m) { (void (Detector::*)(const std::string &)) & Detector::savePattern, py::arg()) .def("getPatternIOControl", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPatternIOControl, py::arg() = Positions{}) .def("setPatternIOControl", @@ -1125,7 +1179,7 @@ void init_det(py::module &m) { Detector::setPatternIOControl, py::arg(), py::arg() = Positions{}) .def("getPatternClockControl", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPatternClockControl, py::arg() = Positions{}) .def("setPatternClockControl", @@ -1141,7 +1195,8 @@ void init_det(py::module &m) { Detector::setPatternWord, py::arg(), py::arg(), py::arg() = Positions{}) .def("getPatternLoopAddresses", - (Result>(Detector::*)(int, sls::Positions)) & + (Result>(Detector::*)(int, sls::Positions) + const) & Detector::getPatternLoopAddresses, py::arg(), py::arg() = Positions{}) .def("setPatternLoopAddresses", @@ -1149,7 +1204,7 @@ void init_det(py::module &m) { Detector::setPatternLoopAddresses, py::arg(), py::arg(), py::arg(), py::arg() = Positions{}) .def("getPatternLoopCycles", - (Result(Detector::*)(int, sls::Positions)) & + (Result(Detector::*)(int, sls::Positions) const) & Detector::getPatternLoopCycles, py::arg(), py::arg() = Positions{}) .def("setPatternLoopCycles", @@ -1157,7 +1212,7 @@ void init_det(py::module &m) { Detector::setPatternLoopCycles, py::arg(), py::arg(), py::arg() = Positions{}) .def("getPatternWaitAddr", - (Result(Detector::*)(int, sls::Positions)) & + (Result(Detector::*)(int, sls::Positions) const) & Detector::getPatternWaitAddr, py::arg(), py::arg() = Positions{}) .def("setPatternWaitAddr", @@ -1165,7 +1220,7 @@ void init_det(py::module &m) { Detector::setPatternWaitAddr, py::arg(), py::arg(), py::arg() = Positions{}) .def("getPatternWaitTime", - (Result(Detector::*)(int, sls::Positions)) & + (Result(Detector::*)(int, sls::Positions) const) & Detector::getPatternWaitTime, py::arg(), py::arg() = Positions{}) .def("setPatternWaitTime", @@ -1181,16 +1236,19 @@ void init_det(py::module &m) { Detector::setPatternMask, py::arg(), py::arg() = Positions{}) .def("getPatternBitMask", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getPatternBitMask, py::arg() = Positions{}) .def("setPatternBitMask", (void (Detector::*)(uint64_t, sls::Positions)) & Detector::setPatternBitMask, py::arg(), py::arg() = Positions{}) + .def("startPattern", + (void (Detector::*)(sls::Positions)) & Detector::startPattern, + py::arg() = Positions{}) .def("getAdditionalJsonHeader", (Result>(Detector::*)( - sls::Positions)) & + sls::Positions) const) & Detector::getAdditionalJsonHeader, py::arg() = Positions{}) .def("setAdditionalJsonHeader", @@ -1200,7 +1258,7 @@ void init_det(py::module &m) { py::arg(), py::arg() = Positions{}) .def("getAdditionalJsonParameter", (Result(Detector::*)(const std::string &, - sls::Positions)) & + sls::Positions) const) & Detector::getAdditionalJsonParameter, py::arg(), py::arg() = Positions{}) .def("setAdditionalJsonParameter", @@ -1209,7 +1267,7 @@ void init_det(py::module &m) { Detector::setAdditionalJsonParameter, py::arg(), py::arg(), py::arg() = Positions{}) .def("getDetectorMinMaxEnergyThreshold", - (Result(Detector::*)(const bool, sls::Positions)) & + (Result(Detector::*)(const bool, sls::Positions) const) & Detector::getDetectorMinMaxEnergyThreshold, py::arg(), py::arg() = Positions{}) .def("setDetectorMinMaxEnergyThreshold", @@ -1217,7 +1275,7 @@ void init_det(py::module &m) { Detector::setDetectorMinMaxEnergyThreshold, py::arg(), py::arg(), py::arg() = Positions{}) .def("getFrameMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getFrameMode, py::arg() = Positions{}) .def("setFrameMode", @@ -1225,7 +1283,8 @@ void init_det(py::module &m) { Detector::setFrameMode, py::arg(), py::arg() = Positions{}) .def("getDetectorMode", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) + const) & Detector::getDetectorMode, py::arg() = Positions{}) .def("setDetectorMode", @@ -1253,7 +1312,7 @@ void init_det(py::module &m) { Detector::updateFirmwareAndServer, py::arg(), py::arg(), py::arg(), py::arg() = Positions{}) .def("readRegister", - (Result(Detector::*)(uint32_t, sls::Positions)) & + (Result(Detector::*)(uint32_t, sls::Positions) const) & Detector::readRegister, py::arg(), py::arg() = Positions{}) .def("writeRegister", @@ -1280,12 +1339,12 @@ void init_det(py::module &m) { Detector::writeAdcRegister, py::arg(), py::arg(), py::arg() = Positions{}) .def("getInitialChecks", - (bool (Detector::*)()) & Detector::getInitialChecks) + (bool (Detector::*)() const) & Detector::getInitialChecks) .def("setInitialChecks", (void (Detector::*)(const bool)) & Detector::setInitialChecks, py::arg()) .def("getADCInvert", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getADCInvert, py::arg() = Positions{}) .def("setADCInvert", @@ -1293,7 +1352,7 @@ void init_det(py::module &m) { Detector::setADCInvert, py::arg(), py::arg() = Positions{}) .def("getControlPort", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getControlPort, py::arg() = Positions{}) .def("setControlPort", @@ -1301,13 +1360,14 @@ void init_det(py::module &m) { Detector::setControlPort, py::arg(), py::arg() = Positions{}) .def("getStopPort", - (Result(Detector::*)(sls::Positions)) & Detector::getStopPort, + (Result(Detector::*)(sls::Positions) const) & + Detector::getStopPort, py::arg() = Positions{}) .def("setStopPort", (void (Detector::*)(int, sls::Positions)) & Detector::setStopPort, py::arg(), py::arg() = Positions{}) .def("getDetectorLock", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getDetectorLock, py::arg() = Positions{}) .def("setDetectorLock", @@ -1315,7 +1375,7 @@ void init_det(py::module &m) { Detector::setDetectorLock, py::arg(), py::arg() = Positions{}) .def("getLastClientIP", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getLastClientIP, py::arg() = Positions{}) .def("executeCommand", @@ -1323,21 +1383,21 @@ void init_det(py::module &m) { Detector::executeCommand, py::arg(), py::arg() = Positions{}) .def("getNumberOfFramesFromStart", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfFramesFromStart, py::arg() = Positions{}) .def("getActualTime", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getActualTime, py::arg() = Positions{}) .def("getMeasurementTime", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getMeasurementTime, py::arg() = Positions{}) .def("getUserDetails", - (std::string(Detector::*)()) & Detector::getUserDetails) + (std::string(Detector::*)() const) & Detector::getUserDetails) .def("getRxCurrentFrameIndex", - (Result(Detector::*)(sls::Positions)) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRxCurrentFrameIndex, py::arg() = Positions{}); } diff --git a/python/src/detector_in.cpp b/python/src/detector_in.cpp index b4f0c3793..810218104 100644 --- a/python/src/detector_in.cpp +++ b/python/src/detector_in.cpp @@ -8,12 +8,17 @@ #include "network_utils.h" #include "sls_detector_defs.h" #include "typecaster.h" + +#include "TimeHelper.h" +#include +#include namespace py = pybind11; void init_det(py::module &m) { using sls::Detector; using sls::Positions; using sls::Result; using sls::defs; + using sls::ns; py::class_ CppDetectorApi(m, "CppDetectorApi"); CppDetectorApi diff --git a/python/src/enums.cpp b/python/src/enums.cpp index ab5e36887..e6425de6e 100644 --- a/python/src/enums.cpp +++ b/python/src/enums.cpp @@ -65,38 +65,14 @@ void init_enums(py::module &m) { .export_values(); py::enum_(Defs, "externalSignalFlag") - .value("GET_EXTERNAL_SIGNAL_FLAG", - slsDetectorDefs::externalSignalFlag::GET_EXTERNAL_SIGNAL_FLAG) - .value("SIGNAL_OFF", slsDetectorDefs::externalSignalFlag::SIGNAL_OFF) - .value("GATE_IN_ACTIVE_HIGH", - slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_HIGH) - .value("GATE_IN_ACTIVE_LOW", - slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_LOW) .value("TRIGGER_IN_RISING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_IN_RISING_EDGE) .value("TRIGGER_IN_FALLING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_IN_FALLING_EDGE) - .value("RO_TRIGGER_IN_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_RISING_EDGE) - .value("RO_TRIGGER_IN_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_FALLING_EDGE) - .value("GATE_OUT_ACTIVE_HIGH", - slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_HIGH) - .value("GATE_OUT_ACTIVE_LOW", - slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_LOW) - .value("TRIGGER_OUT_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_RISING_EDGE) - .value("TRIGGER_OUT_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_FALLING_EDGE) - .value("RO_TRIGGER_OUT_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_RISING_EDGE) - .value("RO_TRIGGER_OUT_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_FALLING_EDGE) - .value("OUTPUT_LOW", slsDetectorDefs::externalSignalFlag::OUTPUT_LOW) - .value("OUTPUT_HIGH", slsDetectorDefs::externalSignalFlag::OUTPUT_HIGH) - .value( - "MASTER_SLAVE_SYNCHRONIZATION", - slsDetectorDefs::externalSignalFlag::MASTER_SLAVE_SYNCHRONIZATION) + .value("INVERSION_ON", + slsDetectorDefs::externalSignalFlag::INVERSION_ON) + .value("INVERSION_OFF", + slsDetectorDefs::externalSignalFlag::INVERSION_OFF) .export_values(); py::enum_(Defs, "timingMode") @@ -106,6 +82,9 @@ void init_enums(py::module &m) { slsDetectorDefs::timingMode::TRIGGER_EXPOSURE) .value("GATED", slsDetectorDefs::timingMode::GATED) .value("BURST_TRIGGER", slsDetectorDefs::timingMode::BURST_TRIGGER) + .value("TRIGGER_GATED", slsDetectorDefs::timingMode::TRIGGER_GATED) + .value("NUM_TIMING_MODES", + slsDetectorDefs::timingMode::NUM_TIMING_MODES) .export_values(); py::enum_(Defs, "dacIndex") @@ -248,22 +227,22 @@ void init_enums(py::module &m) { py::enum_(Defs, "clockIndex") .value("ADC_CLOCK", slsDetectorDefs::clockIndex::ADC_CLOCK) - .value("DBIT_CLOCK", slsDetectorDefs::clockIndex::DBIT_CLOCK) - .value("RUN_CLOCK", slsDetectorDefs::clockIndex::RUN_CLOCK) - .value("SYNC_CLOCK", slsDetectorDefs::clockIndex::SYNC_CLOCK) + .value(" DBIT_CLOCK", slsDetectorDefs::clockIndex::DBIT_CLOCK) + .value(" RUN_CLOCK", slsDetectorDefs::clockIndex::RUN_CLOCK) + .value(" SYNC_CLOCK", slsDetectorDefs::clockIndex::SYNC_CLOCK) .export_values(); py::enum_(Defs, "readoutMode") .value("ANALOG_ONLY", slsDetectorDefs::readoutMode::ANALOG_ONLY) - .value("DIGITAL_ONLY", slsDetectorDefs::readoutMode::DIGITAL_ONLY) - .value("ANALOG_AND_DIGITAL", + .value(" DIGITAL_ONLY", slsDetectorDefs::readoutMode::DIGITAL_ONLY) + .value(" ANALOG_AND_DIGITAL", slsDetectorDefs::readoutMode::ANALOG_AND_DIGITAL) .export_values(); py::enum_(Defs, "speedLevel") .value("FULL_SPEED", slsDetectorDefs::speedLevel::FULL_SPEED) - .value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED) - .value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED) + .value(" HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED) + .value(" QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED) .export_values(); py::enum_(Defs, "portType") @@ -300,12 +279,13 @@ void init_enums(py::module &m) { .value("BURST_OFF", slsDetectorDefs::burstMode::BURST_OFF) .value("BURST_INTERNAL", slsDetectorDefs::burstMode::BURST_INTERNAL) .value("BURST_EXTERNAL", slsDetectorDefs::burstMode::BURST_EXTERNAL) + .value("NUM_BURST_MODES", slsDetectorDefs::burstMode::NUM_BURST_MODES) .export_values(); py::enum_(Defs, "timingSourceType") .value("TIMING_INTERNAL", slsDetectorDefs::timingSourceType::TIMING_INTERNAL) - .value("TIMING_EXTERNAL", + .value(" TIMING_EXTERNAL", slsDetectorDefs::timingSourceType::TIMING_EXTERNAL) .export_values(); } From 44a88893ba070d06c8a20eaedbded757da33b327 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 26 May 2020 14:58:41 +0200 Subject: [PATCH 28/30] mythen3: hv soft max uptdated to 500v --- .../bin/mythen3DetectorServer_developer | Bin 168744 -> 168744 bytes .../slsDetectorServer_defs.h | 2 +- slsSupportLib/include/versionAPI.h | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 4b4941052c61c2e21b100530baecf7ff58f27ebc..8743aa0a1f2e1ce0ec8093d16a445f641d208667 100755 GIT binary patch delta 51 zcmZ3njBCX*t_>wJOf8<1*U6|)o-4x-WNuz3Q*6pv+aMsv#2~;@+pHDTt`)?%T`P#` Gp928ZO%Tuk delta 51 zcmZ3njBCX*t_>wJOe`Lg*U6|)o-4x-WNuz3Q*6p<)F2?o#2~<8)T|ZMt`)?%T`P#` Gp927<{0}$) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 4a244b8a2..14a213464 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -12,7 +12,7 @@ #define NCHAN (128 * NCOUNTERS) #define NCHIP (10) #define NDAC (16) -#define HV_SOFT_MAX_VOLTAGE (200) +#define HV_SOFT_MAX_VOLTAGE (500) #define HV_HARD_MAX_VOLTAGE (530) #define HV_DRIVER_FILE_NAME ("/etc/devlinks/hvdac") #define DAC_DRIVER_FILE_NAME ("/etc/devlinks/dac") diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 6cb3508ab..b4d90f575 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -10,4 +10,4 @@ #define APIJUNGFRAU 0x200520 #define APIMOENCH 0x200515 #define APIEIGER 0x200520 -#define APIMYTHEN3 0x200520 +#define APIMYTHEN3 0x200526 From b543708d9dbbb31d852474de0fb5b2362b3108d7 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 27 May 2020 11:30:11 +0200 Subject: [PATCH 29/30] exptime --- python/slsdet/detector.py | 6 +++++- python/slsdet/utils.py | 19 ++++++++++++++++++- python/unit-tests/test_utils.py | 23 ++++++++++++++++++++++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 39dfdd450..3998b23a9 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -5,9 +5,10 @@ from _slsdet import IpAddr, MacAddr runStatus = slsDetectorDefs.runStatus speedLevel = slsDetectorDefs.speedLevel dacIndex = slsDetectorDefs.dacIndex +detectorType = slsDetectorDefs.detectorType from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask -from .utils import Geometry, to_geo, element +from .utils import Geometry, to_geo, element, reduce_time from .registers import Register, Adc_register import datetime as dt @@ -170,6 +171,9 @@ class Detector(CppDetectorApi): @property def exptime(self): + if self.type == detectorType.MYTHEN3: + res = self.getExptimeForAllGates() + return reduce_time(res) res = self.getExptime() return element_if_equal([it.total_seconds() for it in res]) diff --git a/python/slsdet/utils.py b/python/slsdet/utils.py index 4c9fa6c87..65d54145e 100755 --- a/python/slsdet/utils.py +++ b/python/slsdet/utils.py @@ -7,10 +7,17 @@ but not directly used in controlling the detector from collections import namedtuple import _slsdet #C++ lib import functools - +import datetime as dt Geometry = namedtuple('Geometry', ['x', 'y']) +def iterable(item): + try: + iter(item) + except TypeError: + return False + return True + def get_set_bits(mask): """ Return a list of the set bits in a python integer @@ -41,6 +48,9 @@ def all_equal(mylist): def element_if_equal(mylist): """If all elements are equal return only one element""" + if not iterable(mylist): + return mylist + if all_equal(mylist): if len(mylist) == 0: return None @@ -49,6 +59,13 @@ def element_if_equal(mylist): else: return mylist +def reduce_time(mylist): + res = element_if_equal(element_if_equal(mylist)) + if isinstance(res, dt.timedelta): + return res.total_seconds() + else: + return [r.total_seconds() for r in res] + def element(func): """ Wrapper to return either list or element diff --git a/python/unit-tests/test_utils.py b/python/unit-tests/test_utils.py index 15e7aad20..ae80dfa99 100755 --- a/python/unit-tests/test_utils.py +++ b/python/unit-tests/test_utils.py @@ -5,7 +5,28 @@ Testing functions from utils.py """ import pytest -from sls_detector.utils import * +from slsdet.utils import * +import datetime as dt + +def test_iterable(): + assert iterable(5) == False + assert iterable('abc') == True + assert iterable([]) == True + assert iterable(5.9) == False + +def test_reduce_time_to_single_value_from_list(): + t = 3*[dt.timedelta(seconds = 1)] + assert reduce_time(t) == 1 + +def test_reduce_time_to_single_value_from_list_of_lists(): + t = 3*[dt.timedelta(seconds = 3.3)] + tt = 5*t + assert reduce_time(tt) == 3.3 + +def test_reduce_time_when_sublist_is_different(): + t = [dt.timedelta(seconds = 1), dt.timedelta(seconds = 2), dt.timedelta(seconds = 1)] + tt = 4*t + assert reduce_time(tt) == [1,2,1] def test_convert_zero(): From 20bfe925730661c9d4b11840e3ea146f0583492d Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 27 May 2020 14:02:33 +0200 Subject: [PATCH 30/30] gatedelay --- python/slsdet/detector.py | 22 +++++++++++++++++++++- python/slsdet/utils.py | 6 ++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 3998b23a9..605226432 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -8,7 +8,7 @@ dacIndex = slsDetectorDefs.dacIndex detectorType = slsDetectorDefs.detectorType from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask -from .utils import Geometry, to_geo, element, reduce_time +from .utils import Geometry, to_geo, element, reduce_time, is_iterable from .registers import Register, Adc_register import datetime as dt @@ -184,6 +184,26 @@ class Detector(CppDetectorApi): else: self.setExptime(dt.timedelta(seconds=t)) + @property + def gatedelay(self): + return reduce_time(self.getGateDelayForAllGates()) + + @gatedelay.setter + def gatedelay(self, value): + if is_iterable(value): + if len(value) == 3: + for i,v in enumerate(value): + if isinstance(v, dt.timedelta): + self.setGateDelay(i, v) + else: + self.setGateDelay(i, dt.timedelta(seconds = v)) + else: + if isinstance(value, dt.timedelta): + self.setGateDelay(-1, value) + else: + self.setGateDelay(-1, dt.timedelta(seconds=value)) + + @property def subexptime(self): res = self.getSubExptime() diff --git a/python/slsdet/utils.py b/python/slsdet/utils.py index 65d54145e..e21a956f9 100755 --- a/python/slsdet/utils.py +++ b/python/slsdet/utils.py @@ -11,7 +11,7 @@ import datetime as dt Geometry = namedtuple('Geometry', ['x', 'y']) -def iterable(item): +def is_iterable(item): try: iter(item) except TypeError: @@ -48,7 +48,7 @@ def all_equal(mylist): def element_if_equal(mylist): """If all elements are equal return only one element""" - if not iterable(mylist): + if not is_iterable(mylist): return mylist if all_equal(mylist): @@ -63,6 +63,8 @@ def reduce_time(mylist): res = element_if_equal(element_if_equal(mylist)) if isinstance(res, dt.timedelta): return res.total_seconds() + elif isinstance(res[0], list): + return [[item.total_seconds() for item in subl] for subl in res] else: return [r.total_seconds() for r in res]