mirror of
https://github.com/paulscherrerinstitute/sf_daq_broker.git
synced 2026-06-09 14:54:52 +02:00
took pedestal retrieval out of process_request_internal
This commit is contained in:
@@ -194,7 +194,6 @@ def process_request_internal(request, broker_client):
|
||||
start_pulse_id = request.get("start_pulse_id", 0)
|
||||
stop_pulse_id = request.get("stop_pulse_id", 100)
|
||||
output_file = request.get("output_file", None)
|
||||
run_log_file = request.get("run_log_file", None)
|
||||
metadata = request.get("metadata", None)
|
||||
request_timestamp = request.get("timestamp", None)
|
||||
|
||||
@@ -224,55 +223,7 @@ def process_request_internal(request, broker_client):
|
||||
|
||||
elif writer_type == broker_config.TAG_PEDESTAL:
|
||||
_logger.info("recording pedestal")
|
||||
|
||||
detectors = request.get("detectors", [])
|
||||
rate_multiplicator = request.get("rate_multiplicator", 1)
|
||||
det_start_pulse_id, det_stop_pulse_id = take_pedestal(detectors, rate=rate_multiplicator)
|
||||
|
||||
# overwrite start/stop pulse IDs in run_info json file
|
||||
run_file_json = request.get("run_file_json", None)
|
||||
if run_file_json is not None:
|
||||
run_info = json_load(run_file_json)
|
||||
|
||||
run_info["start_pulseid"] = det_start_pulse_id
|
||||
run_info["stop_pulseid"] = det_stop_pulse_id
|
||||
|
||||
json_save(run_info, run_file_json)
|
||||
|
||||
request_det_retrieve = {
|
||||
"det_start_pulse_id" : det_start_pulse_id,
|
||||
"det_stop_pulse_id" : det_stop_pulse_id,
|
||||
"rate_multiplicator" : request.get("rate_multiplicator", 1),
|
||||
"run_file_json" : request.get("run_file_json", None),
|
||||
"path_to_pgroup" : request.get("path_to_pgroup", None),
|
||||
"run_info_directory" : request.get("run_info_directory", None),
|
||||
"directory_name" : request.get("directory_name"),
|
||||
"request_time" : request.get("request_time", str(datetime.now()))
|
||||
}
|
||||
|
||||
broker_client.open()
|
||||
|
||||
for detector in detectors:
|
||||
request_det_retrieve["detector_name"] = detector
|
||||
request_det_retrieve["detectors"] = {detector: {}}
|
||||
|
||||
output_file_prefix = request.get("output_file_prefix", "/tmp/error")
|
||||
output_file_det = f"{output_file_prefix}.{detector}.h5"
|
||||
run_log_file_det = run_log_file[:-4] + "." + detector + ".log"
|
||||
|
||||
write_request = get_writer_request(
|
||||
writer_type=broker_config.TAG_DETECTOR_RETRIEVE,
|
||||
channels=request_det_retrieve,
|
||||
output_file=output_file_det,
|
||||
metadata=None,
|
||||
start_pulse_id=det_start_pulse_id,
|
||||
stop_pulse_id=det_start_pulse_id,
|
||||
run_log_file=run_log_file_det
|
||||
)
|
||||
|
||||
broker_client.send(write_request, broker_config.TAG_DETECTOR_RETRIEVE)
|
||||
|
||||
broker_client.close()
|
||||
detector_pedestal_retrieve(broker_client, request)
|
||||
|
||||
elif writer_type == broker_config.TAG_POWER_ON:
|
||||
_logger.info("power on detector")
|
||||
@@ -332,6 +283,60 @@ def audit_failed_write_request(write_request):
|
||||
_logger.exception(f"failed to write request {write_request} to file {output_file}: {e}")
|
||||
|
||||
|
||||
#TODO: this should probably be in detector_writer.py
|
||||
def detector_pedestal_retrieve(broker_client, request):
|
||||
detectors = request.get("detectors", [])
|
||||
rate_multiplicator = request.get("rate_multiplicator", 1)
|
||||
det_start_pulse_id, det_stop_pulse_id = take_pedestal(detectors, rate=rate_multiplicator)
|
||||
|
||||
# overwrite start/stop pulse IDs in run_info json file
|
||||
run_file_json = request.get("run_file_json", None)
|
||||
if run_file_json is not None:
|
||||
run_info = json_load(run_file_json)
|
||||
|
||||
run_info["start_pulseid"] = det_start_pulse_id
|
||||
run_info["stop_pulseid"] = det_stop_pulse_id
|
||||
|
||||
json_save(run_info, run_file_json)
|
||||
|
||||
request_detector_retrieve = {
|
||||
"det_start_pulse_id": det_start_pulse_id,
|
||||
"det_stop_pulse_id": det_stop_pulse_id,
|
||||
"rate_multiplicator": request.get("rate_multiplicator", 1),
|
||||
"run_file_json": request.get("run_file_json", None),
|
||||
"path_to_pgroup": request.get("path_to_pgroup", None),
|
||||
"run_info_directory": request.get("run_info_directory", None),
|
||||
"directory_name": request.get("directory_name"),
|
||||
"request_time": request.get("request_time", str(datetime.now()))
|
||||
}
|
||||
|
||||
run_log_file = request.get("run_log_file", None)
|
||||
|
||||
broker_client.open()
|
||||
|
||||
for detector in detectors:
|
||||
request_detector_retrieve["detector_name"] = detector
|
||||
request_detector_retrieve["detectors"] = {detector: {}}
|
||||
|
||||
output_file_prefix = request.get("output_file_prefix", "/tmp/error")
|
||||
output_file_det = f"{output_file_prefix}.{detector}.h5"
|
||||
run_log_file_det = run_log_file[:-4] + "." + detector + ".log"
|
||||
|
||||
write_request = get_writer_request(
|
||||
writer_type=broker_config.TAG_DETECTOR_RETRIEVE,
|
||||
channels=request_detector_retrieve,
|
||||
output_file=output_file_det,
|
||||
metadata=None,
|
||||
start_pulse_id=det_start_pulse_id,
|
||||
stop_pulse_id=det_start_pulse_id,
|
||||
run_log_file=run_log_file_det
|
||||
)
|
||||
|
||||
broker_client.send(write_request, broker_config.TAG_DETECTOR_RETRIEVE)
|
||||
|
||||
broker_client.close()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user