From de58ab2757f200e81eb40234c89aee6059d7667f Mon Sep 17 00:00:00 2001 From: Juan Marulanda Arias Date: Fri, 22 May 2026 17:03:32 -0400 Subject: [PATCH] Added json file for sample responses of lambda detector at OPLS --- scripts/samples/single_module_xsp_opls.json | 634 ++++++++++++++++++++ 1 file changed, 634 insertions(+) create mode 100644 scripts/samples/single_module_xsp_opls.json diff --git a/scripts/samples/single_module_xsp_opls.json b/scripts/samples/single_module_xsp_opls.json new file mode 100644 index 0000000..3987710 --- /dev/null +++ b/scripts/samples/single_module_xsp_opls.json @@ -0,0 +1,634 @@ +{ + "api": { + "api version": "1", + "xspd version": "1.6.0" + }, + "api/v1/devices": { + "devices": [ + { + "id": "lambda02", + "type": "xsp", + "href": "http://xspserver:8008/api/v1/devices/lambda02" + } + ] + }, + "api/v1/devices/lambda02": { + "id": "lambda02", + "type": "xsp", + "configfile": "/opt/xsp/config/system.yml", + "system": { + "id": "LAGaAsXn2019-005", + "detectors": [ + { + "id": "lambda", + "modules": 1 + } + ], + "data-ports": [ + { + "ref": "lambda/1", + "id": "port-1", + "ip": "10.66.92.30", + "port": 5000 + } + ] + } + }, + "api/v1/devices/lambda02/variables?path=info": { + "path": "info", + "value": { + "libxsp version": "2.7.6", + "id": "LAGaAsXn2019-005", + "detectors": [ + { + "detector-id": "lambda", + "modules": [ + { + "module": "lambda/1", + "firmware": "2.3.3 [ctrl=v0, data=v3, feat=0x43]", + "chips": 3, + "chip-ids": [ + "b32w2-G10,SAL,0x8004027a", + "", + "b32w2-D09,SAL,0x80040249", + "b32w2-G09,SAL,0x80040279", + "", + "", + "", + "", + "", + "", + "", + "" + ] + } + ] + } + ] + } + }, + "api/v1/devices/lambda02/variables": [ + { + "path": "lambda/beam_energy", + "description": "defines the current beam energy setting in keV" + }, + { + "path": "lambda/bit_depth", + "description": "defines the readout bit depth '1', '6', '12' or '24' bit" + }, + { + "path": "lambda/charge_summing", + "description": "enables/disables the charge summing mode with 'ON' or 'OFF'" + }, + { + "path": "lambda/compression_level", + "description": "defines the compression level from '1' to '4'" + }, + { + "path": "lambda/compressor", + "description": "defines the compressor 'zlib', 'blosc' or 'none'" + }, + { + "path": "lambda/counter_mode", + "description": "defines the counter mode 'SINGLE' or 'DUAL'" + }, + { + "path": "lambda/countrate_correction", + "description": "enables/disables the countrate correction with 'ON' or 'OFF'" + }, + { + "path": "lambda/countrate_correction_enabled", + "description": "enables/disables the countrate correction with true or false" + }, + { + "path": "lambda/flatfield_correction", + "description": "enables/disables the flatfield correction with 'ON' or 'OFF'" + }, + { + "path": "lambda/flatfield_enabled", + "description": "enables/disables the flatfield correction with true or false" + }, + { + "path": "lambda/gating_mode", + "description": "enables/disables the gating mode with 'ON' or 'OFF'" + }, + { + "path": "lambda/n_frames", + "description": "defines the number of frames per acquisition" + }, + { + "path": "lambda/n_modules", + "description": "returns the number of modules of a detector" + }, + { + "path": "lambda/roi_rows", + "description": "defines the numbers of readout rows per chip" + }, + { + "path": "lambda/saturation_flag", + "description": "enables/disables the saturation flag with 'ON' or 'OFF'" + }, + { + "path": "lambda/saturation_flag_enabled", + "description": "enables/disables the saturation flag with true or false" + }, + { + "path": "lambda/shuffle_mode", + "description": "defines the shuffle mode 'NO_SHUFFLE', 'AUTO_SHUFFLE', 'BIT_SHUFFLE' or 'BYTE_SHUFFLE'" + }, + { + "path": "lambda/shutter_time", + "description": "defines the shutter time in ms" + }, + { + "path": "lambda/status", + "description": "returns the detector status 'busy', 'ready' or 'connected'" + }, + { + "path": "lambda/summed_frames", + "description": "returns the number of summed frames" + }, + { + "path": "lambda/thresholds", + "description": "defines the detector thresholds in a list of floats" + }, + { + "path": "lambda/trigger_mode", + "description": "defines the trigger mode 'SOFTWARE', 'EXT_FRAMES' or 'EXT_SEQUENCE'" + }, + { + "path": "lambda/type", + "description": "returns the detector type" + }, + { + "path": "lambda/user_data", + "description": "returns the user data to a specified key" + }, + { + "path": "lambda/1/chip_ids", + "description": "returns a list of chip ids of the corresponding module" + }, + { + "path": "lambda/1/compression_level", + "description": "defines the compression level from '1' to '4'" + }, + { + "path": "lambda/1/compressor", + "description": "defines the compressor 'zlib', 'blosc' or 'none'" + }, + { + "path": "lambda/1/features", + "description": "returns the supported firmware features" + }, + { + "path": "lambda/1/firmware_version", + "description": "returns the firmware version in 'major.minor.patch' order" + }, + { + "path": "lambda/1/flatfield", + "description": "returns the flatfield data" + }, + { + "path": "lambda/1/flatfield_author", + "description": "returns the author of the flatfield" + }, + { + "path": "lambda/1/flatfield_enabled", + "description": "returns true if a flatfield is applied, false otherwise" + }, + { + "path": "lambda/1/flatfield_error", + "description": "returns the error of the flatfield" + }, + { + "path": "lambda/1/flatfield_status", + "description": "returns the status of the latest generate_flatfield command call" + }, + { + "path": "lambda/1/flatfield_timestamp", + "description": "returns the timestamp of the flatfield" + }, + { + "path": "lambda/1/frame_depth", + "description": "defines the frame depth '1', '6', '12' or '24' bit" + }, + { + "path": "lambda/1/frame_height", + "description": "returns the frame height in pixels" + }, + { + "path": "lambda/1/frame_width", + "description": "returns the frame width in pixels" + }, + { + "path": "lambda/1/frames_queued", + "description": "returns the number of queued frames" + }, + { + "path": "lambda/1/humidity", + "description": "returns the measured humidity from a detector module" + }, + { + "path": "lambda/1/interpolation", + "description": "enables/disables the interpolation with 'ON' or 'OFF'" + }, + { + "path": "lambda/1/interpolation_enabled", + "description": "returns true if interpolation of extra large pixels is enabled, false otherwise" + }, + { + "path": "lambda/1/max_frames", + "description": "defines the maximum number of frames that fit into the RAM buffer" + }, + { + "path": "lambda/1/n_connectors", + "description": "returns the number of connected sensors" + }, + { + "path": "lambda/1/n_subframes", + "description": "returns the number of subframes" + }, + { + "path": "lambda/1/pixel_mask", + "description": "returns the base64 encoded pixel mask of a module" + }, + { + "path": "lambda/1/pixel_mask_enabled", + "description": "returns true if a pixel mask is applied, false otherwise" + }, + { + "path": "lambda/1/position", + "description": "returns the module position [x,y,z]" + }, + { + "path": "lambda/1/ram_allocated", + "description": "returns true if ram is allocated, false otherwise" + }, + { + "path": "lambda/1/rotation", + "description": "returns the module rotation [alpha, beta, gamma]" + }, + { + "path": "lambda/1/saturation_threshold", + "description": "defines the actual saturation threshold in counts per second per pixel" + }, + { + "path": "lambda/1/sensor_current", + "description": "returns the measured sensor current from a detector module" + }, + { + "path": "lambda/1/shuffle_mode", + "description": "defines the shuffle mode 'NO_SHUFFLE', 'AUTO_SHUFFLE', 'BIT_SHUFFLE' or 'BYTE_SHUFFLE'" + }, + { + "path": "lambda/1/status", + "description": "returns the module status 'busy', 'ready' or 'connected'" + }, + { + "path": "lambda/1/temperature", + "description": "returns the measured temperatures from a detector module" + }, + { + "path": "lambda/1/voltage", + "description": "returns the current high voltage in V" + }, + { + "path": "port-1/frame_depth", + "description": "defines the frame depth '1', '6', '12' or '24' bit" + }, + { + "path": "port-1/frame_height", + "description": "returns the frame height in pixels" + }, + { + "path": "port-1/frame_width", + "description": "returns the frame width in pixels" + }, + { + "path": "port-1/frames_queued", + "description": "returns the number of queued frames" + }, + { + "path": "port-1/pixel_mask", + "description": "returns the base64 encoded pixel mask" + } + ], + "api/v1/devices/lambda02/variables?path=lambda/beam_energy": { + "path": "lambda/beam_energy", + "value": 0.0 + }, + "api/v1/devices/lambda02/variables?path=lambda/bit_depth": { + "path": "lambda/bit_depth", + "value": 12 + }, + "api/v1/devices/lambda02/variables?path=lambda/charge_summing": { + "path": "lambda/charge_summing", + "value": "OFF" + }, + "api/v1/devices/lambda02/variables?path=lambda/compression_level": { + "path": "lambda/compression_level", + "value": 2 + }, + "api/v1/devices/lambda02/variables?path=lambda/compressor": { + "path": "lambda/compressor", + "value": "none" + }, + "api/v1/devices/lambda02/variables?path=lambda/counter_mode": { + "path": "lambda/counter_mode", + "value": "SINGLE" + }, + "api/v1/devices/lambda02/variables?path=lambda/countrate_correction": { + "path": "lambda/countrate_correction", + "value": "OFF" + }, + "api/v1/devices/lambda02/variables?path=lambda/countrate_correction_enabled": { + "path": "lambda/countrate_correction_enabled", + "value": false + }, + "api/v1/devices/lambda02/variables?path=lambda/flatfield_correction": { + "path": "lambda/flatfield_correction", + "value": "ON" + }, + "api/v1/devices/lambda02/variables?path=lambda/flatfield_enabled": { + "path": "lambda/flatfield_enabled", + "value": true + }, + "api/v1/devices/lambda02/variables?path=lambda/gating_mode": { + "path": "lambda/gating_mode", + "value": "OFF" + }, + "api/v1/devices/lambda02/variables?path=lambda/n_frames": { + "path": "lambda/n_frames", + "value": 5 + }, + "api/v1/devices/lambda02/variables?path=lambda/n_modules": { + "path": "lambda/n_modules", + "value": 1 + }, + "api/v1/devices/lambda02/variables?path=lambda/roi_rows": { + "path": "lambda/roi_rows", + "value": 256 + }, + "api/v1/devices/lambda02/variables?path=lambda/saturation_flag": { + "path": "lambda/saturation_flag", + "value": "OFF" + }, + "api/v1/devices/lambda02/variables?path=lambda/saturation_flag_enabled": { + "path": "lambda/saturation_flag_enabled", + "value": false + }, + "api/v1/devices/lambda02/variables?path=lambda/shuffle_mode": { + "path": "lambda/shuffle_mode", + "value": "NO_SHUFFLE" + }, + "api/v1/devices/lambda02/variables?path=lambda/shutter_time": { + "path": "lambda/shutter_time", + "value": 1000.0 + }, + "api/v1/devices/lambda02/variables?path=lambda/status": { + "path": "lambda/status", + "value": "ready" + }, + "api/v1/devices/lambda02/variables?path=lambda/summed_frames": { + "path": "lambda/summed_frames", + "value": 1 + }, + "api/v1/devices/lambda02/variables?path=lambda/thresholds": { + "path": "lambda/thresholds", + "value": [] + }, + "api/v1/devices/lambda02/variables?path=lambda/trigger_mode": { + "path": "lambda/trigger_mode", + "value": "SOFTWARE" + }, + "api/v1/devices/lambda02/variables?path=lambda/type": { + "path": "lambda/type", + "value": "Lambda" + }, + "api/v1/devices/lambda02/variables?path=lambda/user_data": { + "path": "lambda/user_data", + "value": "" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/chip_ids": { + "path": "lambda/1/chip_ids", + "value": [ + "b32w2-G10,SAL,0x8004027a", + "", + "b32w2-D09,SAL,0x80040249", + "b32w2-G09,SAL,0x80040279", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/compression_level": { + "path": "lambda/1/compression_level", + "value": 2 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/compressor": { + "path": "lambda/1/compressor", + "value": "none" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/features": { + "path": "lambda/1/features", + "value": [ + "FEAT_HV", + "FEAT_1_6_BIT" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/firmware_version": { + "path": "lambda/1/firmware_version", + "value": "2.3.3 [ctrl=v0, data=v3, feat=0x43]" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield": { + "path": "lambda/1/flatfield", + "value": [ + "", + "" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield_author": { + "path": "lambda/1/flatfield_author", + "value": [ + "", + "" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield_enabled": { + "path": "lambda/1/flatfield_enabled", + "value": true + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield_error": { + "path": "lambda/1/flatfield_error", + "value": [ + "", + "" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield_status": { + "path": "lambda/1/flatfield_status", + "value": "No flatfield measurement started" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/flatfield_timestamp": { + "path": "lambda/1/flatfield_timestamp", + "value": [ + "", + "" + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/frame_depth": { + "path": "lambda/1/frame_depth", + "value": 12 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/frame_height": { + "path": "lambda/1/frame_height", + "value": 516 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/frame_width": { + "path": "lambda/1/frame_width", + "value": 516 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/frames_queued": { + "path": "lambda/1/frames_queued", + "value": 0 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/humidity": { + "path": "lambda/1/humidity", + "value": 0.618164 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/interpolation": { + "path": "lambda/1/interpolation", + "value": "ON" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/interpolation_enabled": { + "path": "lambda/1/interpolation_enabled", + "value": true + }, + "api/v1/devices/lambda02/variables?path=lambda/1/max_frames": { + "path": "lambda/1/max_frames", + "value": 40320 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/n_connectors": { + "path": "lambda/1/n_connectors", + "value": 1 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/n_subframes": { + "path": "lambda/1/n_subframes", + "value": 1 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/pixel_mask": { + "path": "lambda/1/pixel_mask", + "value": "AAAAAAAAAA" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/pixel_mask_enabled": { + "path": "lambda/1/pixel_mask_enabled", + "value": true + }, + "api/v1/devices/lambda02/variables?path=lambda/1/position": { + "path": "lambda/1/position", + "value": [ + 0.0, + 0.0, + 0.0 + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/ram_allocated": { + "path": "lambda/1/ram_allocated", + "value": true + }, + "api/v1/devices/lambda02/variables?path=lambda/1/rotation": { + "path": "lambda/1/rotation", + "value": [ + 0.0, + 0.0, + 0.0 + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/saturation_threshold": { + "path": "lambda/1/saturation_threshold", + "value": 200000 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/sensor_current": { + "path": "lambda/1/sensor_current", + "value": 150.044083 + }, + "api/v1/devices/lambda02/variables?path=lambda/1/shuffle_mode": { + "path": "lambda/1/shuffle_mode", + "value": "NO_SHUFFLE" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/status": { + "path": "lambda/1/status", + "value": "ready" + }, + "api/v1/devices/lambda02/variables?path=lambda/1/temperature": { + "path": "lambda/1/temperature", + "value": [ + 38.3125, + 40.13092, + 365.125 + ] + }, + "api/v1/devices/lambda02/variables?path=lambda/1/voltage": { + "path": "lambda/1/voltage", + "value": 295.230072 + }, + "api/v1/devices/lambda02/variables?path=port-1/frame_depth": { + "path": "port-1/frame_depth", + "value": 12 + }, + "api/v1/devices/lambda02/variables?path=port-1/frame_height": { + "path": "port-1/frame_height", + "value": 516 + }, + "api/v1/devices/lambda02/variables?path=port-1/frame_width": { + "path": "port-1/frame_width", + "value": 516 + }, + "api/v1/devices/lambda02/variables?path=port-1/frames_queued": { + "path": "port-1/frames_queued", + "value": 0 + }, + "api/v1/devices/lambda02/variables?path=port-1/pixel_mask": { + "path": "port-1/pixel_mask", + "value": "AAAAAAAAAA" + }, + "api/v1/devices/lambda02/commands": [ + { + "path": "start", + "description": "starts an acquisition on all detectors" + }, + { + "path": "stop", + "description": "stops an acquisition on all detectors" + }, + { + "path": "reset", + "description": "resets all detectors" + }, + { + "path": "generate_flatfield", + "description": "generates flatfield correction for all detectors" + }, + { + "path": "lambda/start", + "description": "starts an acquisition on detector with id: lambda" + }, + { + "path": "lambda/stop", + "description": "stops an acquisition on detector with id: lambda" + }, + { + "path": "lambda/reset", + "description": "resets the detector with id: lambda" + }, + { + "path": "lambda/generate_flatfield", + "description": "generates flatfield for detector with id: lambda" + } + ] +} \ No newline at end of file