Files
Jungfraujoch/CHANGELOG.html
T
2026-07-19 09:00:52 +00:00

1 line
141 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang=en data-content_root="./"> <meta charset=utf-8 /> <meta name=viewport content="width=device-width, initial-scale=1.0" /><meta name=viewport content="width=device-width, initial-scale=1" /> <meta name=viewport content="width=device-width,initial-scale=1"> <meta http-equiv=x-ua-compatible content="ie=edge"> <meta name="lang:clipboard.copy" content="Copy to clipboard"> <meta name="lang:clipboard.copied" content="Copied to clipboard"> <meta name="lang:search.language" content=en > <meta name="lang:search.pipeline.stopwords" content=True > <meta name="lang:search.pipeline.trimmer" content=True > <meta name="lang:search.result.none" content="No matching documents"> <meta name="lang:search.result.one" content="1 matching document"> <meta name="lang:search.result.other" content="# matching documents"> <meta name="lang:search.tokenizer" content="[\s\-]+"> <link href="https://fonts.gstatic.com/" rel=preconnect crossorigin> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700|Roboto:300,400,400i,700&display=fallback" rel=stylesheet > <style> body, input { font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif } code, kbd, pre { font-family: "Roboto Mono", "Courier New", Courier, monospace } </style> <link rel=stylesheet href="_static/stylesheets/application.css"/> <link rel=stylesheet href="_static/stylesheets/application-palette.css"/> <link rel=stylesheet href="_static/stylesheets/application-fixes.css"/> <link rel=stylesheet href="_static/fonts/material-icons.css"/> <meta name=theme-color content="#3f51b5"> <script src="_static/javascripts/modernizr.js"></script> <title>Changelog &#8212; Jungfraujoch 1.0.0-rc.160 documentation</title> <link rel=stylesheet type="text/css" href="_static/pygments.css?v=83e35b93" /> <link rel=stylesheet type="text/css" href="_static/material.css?v=79c92029" /> <script src="_static/documentation_options.js?v=a57231c3"></script> <script src="_static/doctools.js?v=9bcbadda"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <link rel=icon href="_static/jfjoch.png"/> <link rel=index title=Index href=genindex.html /> <link rel=search title=Search href=search.html /> <link rel=next title=jfjoch_broker href=JFJOCH_BROKER.html /> <link rel=prev title=Naming href=NAMING.html /> <body dir=ltr data-md-color-primary=indigo data-md-color-accent=lime> <svg class=md-svg > <defs data-children-count=0 > <svg xmlns="http://www.w3.org/2000/svg" width=500 height=500 viewBox="0 0 500 500" id=__gitlab ><path fill=currentColor d="M93.667 473.347l90.684-279.097H2.983l90.684 279.097z" transform="translate(156.198 1.16)"/><path fill=currentColor d="M221.333 473.345L130.649 194.25H3.557l217.776 279.095z" transform="translate(28.531 1.16)" opacity=.7 /><path fill=currentColor d="M32 195.155L4.441 279.97a18.773 18.773 0 0 0 6.821 20.99l238.514 173.29L32 195.155z" transform="translate(.089 .256)" opacity=.5 /><path fill=currentColor d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856 0L2.667-84.844z" transform="translate(29.422 280.256)"/><path fill=currentColor d="M2.667 473.345L93.351 194.25h127.092L2.667 473.345z" transform="translate(247.198 1.16)" opacity=.7 /><path fill=currentColor d="M221.334 195.155l27.559 84.815a18.772 18.772 0 0 1-6.821 20.99L3.557 474.25l217.777-279.095z" transform="translate(246.307 .256)" opacity=.5 /><path fill=currentColor d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649 15.047-8.649 17.856 0l54.618 168.098z" transform="translate(336.974 280.256)"/></svg> </defs> </svg> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer > <input class=md-toggle data-md-toggle=search type=checkbox id=__search > <label class=md-overlay data-md-component=overlay for=__drawer ></label> <a href="#CHANGELOG" tabindex=1 class=md-skip > Skip to content </a> <header class=md-header data-md-component=header > <nav class="md-header-nav md-grid"> <div class="md-flex navheader"> <div class="md-flex__cell md-flex__cell--shrink"> <a href=index.html title="Jungfraujoch 1.0.0-rc.160 documentation" class="md-header-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--menu md-header-nav__button" for=__drawer ></label> </div> <div class="md-flex__cell md-flex__cell--stretch"> <div class="md-flex__ellipsis md-header-nav__title" data-md-component=title > <span class=md-header-nav__topic >PSI Jungfraujoch</span> <span class=md-header-nav__topic > Changelog </span> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--search md-header-nav__button" for=__search ></label> <div class=md-search data-md-component=search role=dialog > <label class=md-search__overlay for=__search ></label> <div class=md-search__inner role=search > <form class=md-search__form action=search.html method=get name=search > <input type=text class=md-search__input name=q placeholder=""Search"" autocapitalize=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active > <label class="md-icon md-search__icon" for=__search ></label> <button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1 > &#xE5CD; </button> </form> <div class=md-search__output > <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=result > <div class=md-search-result__meta > Type to start searching </div> <ol class=md-search-result__list ></ol> </div> </div> </div> </div> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <div class=md-header-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> </div> <script src="_static/javascripts/version_dropdown.js"></script> <script> var json_loc = ""versions.json"", target_loc = "../", text = "Versions"; $( document ).ready( add_version_dropdown(json_loc, target_loc, text)); </script> </div> </nav> </header> <div class=md-container > <nav class=md-tabs data-md-component=tabs > <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list > <li class=md-tabs__item ><a href=index.html class=md-tabs__link >Jungfraujoch 1.0.0-rc.160 documentation</a> </ul> </div> </nav> <main class=md-main > <div class="md-main__inner md-grid" data-md-component=container > <div class="md-sidebar md-sidebar--primary" data-md-component=navigation > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--primary" data-md-level=0 > <label class="md-nav__title md-nav__title--site" for=__drawer > <a href=index.html title="Jungfraujoch 1.0.0-rc.160 documentation" class="md-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> <a href=index.html title="Jungfraujoch 1.0.0-rc.160 documentation">PSI Jungfraujoch</a> </label> <div class=md-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> <ul class=md-nav__list > <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >General</span></span> <li class=md-nav__item > <a href=ACKNOWLEDGEMENT.html class=md-nav__link >Acknowledgements</a> <li class=md-nav__item > <a href=LICENSE.html class=md-nav__link >License</a> <li class=md-nav__item > <a href=THIRD_PARTY_NOTICES.html class=md-nav__link >Third-party software notices</a> <li class=md-nav__item > <a href=DETECTORS.html class=md-nav__link >Supported detectors</a> <li class=md-nav__item > <a href="DETECTORS.html#dectris-detectors" class=md-nav__link >DECTRIS detectors</a> <li class=md-nav__item > <a href=HARDWARE.html class=md-nav__link >Hardware requirements</a> <li class=md-nav__item > <a href=SOFTWARE.html class=md-nav__link >Software requirements</a> <li class=md-nav__item > <a href=VERSIONING.html class=md-nav__link >Semantic versioning</a> <li class=md-nav__item > <a href=DEPLOYMENT.html class=md-nav__link >Deployment</a> <li class=md-nav__item > <a href=REPOSITORIES.html class=md-nav__link >Linux package repositories</a> <li class=md-nav__item > <a href=NAMING.html class=md-nav__link >Naming</a> <li class=md-nav__item > <input class="md-toggle md-nav__toggle" data-md-toggle=toc type=checkbox id=__toc > <label class="md-nav__link md-nav__link--active" for=__toc > Changelog </label> <a href="#" class="md-nav__link md-nav__link--active">Changelog</a> <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> <ul class=md-nav__list > <li class=md-nav__item > <a href="#id1" class=md-nav__link >1.0.0</a> </ul> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Software</span></span> <li class=md-nav__item > <a href=JFJOCH_BROKER.html class=md-nav__link >jfjoch_broker</a> <li class=md-nav__item > <a href=JFJOCH_WRITER.html class=md-nav__link >jfjoch_writer</a> <li class=md-nav__item > <a href=RUGNUX.html class=md-nav__link >rugnux</a> <li class=md-nav__item > <a href=JFJOCH_VIEWER.html class=md-nav__link >jfjoch_viewer</a> <li class=md-nav__item > <a href=SOFTWARE_INTEGRATION.html class=md-nav__link >Integration with MX data processing software</a> <li class=md-nav__item > <a href=TOOLS.html class=md-nav__link >Tools</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >FPGA</span></span> <li class=md-nav__item > <a href=FPGA.html class=md-nav__link >FPGA smartNIC</a> <li class=md-nav__item > <a href=FPGA_LICENSE.html class=md-nav__link >FPGA license</a> <li class=md-nav__item > <a href=FPGA_DESIGN.html class=md-nav__link >FPGA data flow</a> <li class=md-nav__item > <a href=FPGA_NETWORK.html class=md-nav__link >FPGA network</a> <li class=md-nav__item > <a href=FPGA_PCIE_DRIVER.html class=md-nav__link >FPGA PCIe driver</a> <li class=md-nav__item > <a href=FPGA_SETTINGS.html class=md-nav__link >FPGA advanced reference</a> <li class=md-nav__item > <a href=FPGA_DATA_ANALYSIS.html class=md-nav__link >FPGA data analysis</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Reference</span></span> <li class=md-nav__item > <a href=DETECTOR_GEOMETRY.html class=md-nav__link >Detector geometry</a> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS.html class=md-nav__link >CPU-side crystallographic data analysis (Jungfraujoch)</a> <li class=md-nav__item > <a href=OPENAPI.html class=md-nav__link >OpenAPI</a> <li class=md-nav__item > <a href=OPENAPI_SPECS.html class=md-nav__link >OpenAPI specification</a> <li class=md-nav__item > <a href=CBOR.html class=md-nav__link >CBOR messages</a> <li class=md-nav__item > <a href=HDF5.html class=md-nav__link >HDF5 / NeXus data format</a> <li class=md-nav__item > <a href=IMAGE_STREAM.html class=md-nav__link >Data streams</a> <li class=md-nav__item > <a href=PIXEL_MASK.html class=md-nav__link >Pixel mask</a> <li class=md-nav__item > <a href=WEB_FRONTEND.html class=md-nav__link >Web frontend</a> <li class=md-nav__item > <a href=TESTS.html class=md-nav__link >Tests</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >OpenAPI Python client</span></span> <li class=md-nav__item > <a href="python_client/README.html" class=md-nav__link >jfjoch-client</a> <li class=md-nav__item > <a href="python_client/README.html#license-clarification" class=md-nav__link >License Clarification</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html" class=md-nav__link >jfjoch_client.DefaultApi</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#cancel-post" class=md-nav__link ><strong>cancel_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-get" class=md-nav__link ><strong>config_azim_int_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-put" class=md-nav__link ><strong>config_azim_int_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-bragg-integration-get" class=md-nav__link ><strong>config_bragg_integration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-bragg-integration-put" class=md-nav__link ><strong>config_bragg_integration_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-get" class=md-nav__link ><strong>config_dark_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-put" class=md-nav__link ><strong>config_dark_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-get" class=md-nav__link ><strong>config_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-put" class=md-nav__link ><strong>config_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-get" class=md-nav__link ><strong>config_file_writer_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-put" class=md-nav__link ><strong>config_file_writer_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-conversion-post" class=md-nav__link ><strong>config_image_format_conversion_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-get" class=md-nav__link ><strong>config_image_format_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-put" class=md-nav__link ><strong>config_image_format_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-raw-post" class=md-nav__link ><strong>config_image_format_raw_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-get" class=md-nav__link ><strong>config_indexing_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-put" class=md-nav__link ><strong>config_indexing_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-get" class=md-nav__link ><strong>config_instrument_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-put" class=md-nav__link ><strong>config_instrument_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-put" class=md-nav__link ><strong>config_internal_generator_image_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-tiff-put" class=md-nav__link ><strong>config_internal_generator_image_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-get" class=md-nav__link ><strong>config_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-tiff-get" class=md-nav__link ><strong>config_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-get" class=md-nav__link ><strong>config_roi_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-put" class=md-nav__link ><strong>config_roi_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-get" class=md-nav__link ><strong>config_select_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-put" class=md-nav__link ><strong>config_select_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-get" class=md-nav__link ><strong>config_spot_finding_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-put" class=md-nav__link ><strong>config_spot_finding_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-get" class=md-nav__link ><strong>config_user_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-put" class=md-nav__link ><strong>config_user_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-get" class=md-nav__link ><strong>config_user_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-put" class=md-nav__link ><strong>config_user_mask_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-get" class=md-nav__link ><strong>config_zeromq_metadata_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-get" class=md-nav__link ><strong>config_zeromq_preview_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-put" class=md-nav__link ><strong>config_zeromq_preview_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#deactivate-post" class=md-nav__link ><strong>deactivate_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#detector-status-get" class=md-nav__link ><strong>detector_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#fpga-status-get" class=md-nav__link ><strong>fpga_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-clear-post" class=md-nav__link ><strong>image_buffer_clear_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-cbor-get" class=md-nav__link ><strong>image_buffer_image_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-jpeg-get" class=md-nav__link ><strong>image_buffer_image_jpeg_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-tiff-get" class=md-nav__link ><strong>image_buffer_image_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-start-cbor-get" class=md-nav__link ><strong>image_buffer_start_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-status-get" class=md-nav__link ><strong>image_buffer_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-pusher-status-get" class=md-nav__link ><strong>image_pusher_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#initialize-post" class=md-nav__link ><strong>initialize_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#pedestal-post" class=md-nav__link ><strong>pedestal_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-pedestal-tiff-get" class=md-nav__link ><strong>preview_pedestal_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-bin-get" class=md-nav__link ><strong>preview_plot_bin_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-get" class=md-nav__link ><strong>preview_plot_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#result-scan-get" class=md-nav__link ><strong>result_scan_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#start-post" class=md-nav__link ><strong>start_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-calibration-get" class=md-nav__link ><strong>statistics_calibration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-data-collection-get" class=md-nav__link ><strong>statistics_data_collection_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-get" class=md-nav__link ><strong>statistics_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#status-get" class=md-nav__link ><strong>status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#trigger-post" class=md-nav__link ><strong>trigger_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#version-get" class=md-nav__link ><strong>version_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-till-done-post" class=md-nav__link ><strong>wait_till_done_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-until-running-post" class=md-nav__link ><strong>wait_until_running_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-event-code-get" class=md-nav__link ><strong>xfel_event_code_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-pulse-id-get" class=md-nav__link ><strong>xfel_pulse_id_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/AzimIntSettings.html" class=md-nav__link >AzimIntSettings</a> <li class=md-nav__item > <a href="python_client/docs/BrokerStatus.html" class=md-nav__link >BrokerStatus</a> <li class=md-nav__item > <a href="python_client/docs/CalibrationStatisticsInner.html" class=md-nav__link >CalibrationStatisticsInner</a> <li class=md-nav__item > <a href="python_client/docs/ColorScale.html" class=md-nav__link >ColorScale</a> <li class=md-nav__item > <a href="python_client/docs/DarkMaskSettings.html" class=md-nav__link >DarkMaskSettings</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettings.html" class=md-nav__link >DatasetSettings</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettingsSmargon.html" class=md-nav__link >DatasetSettingsSmargon</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettingsUnitCell.html" class=md-nav__link >DatasetSettingsUnitCell</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettingsXrayFluorescenceSpectrum.html" class=md-nav__link >DatasetSettingsXrayFluorescenceSpectrum</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html" class=md-nav__link >jfjoch_client.DefaultApi</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#cancel-post" class=md-nav__link ><strong>cancel_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-get" class=md-nav__link ><strong>config_azim_int_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-put" class=md-nav__link ><strong>config_azim_int_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-bragg-integration-get" class=md-nav__link ><strong>config_bragg_integration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-bragg-integration-put" class=md-nav__link ><strong>config_bragg_integration_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-get" class=md-nav__link ><strong>config_dark_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-put" class=md-nav__link ><strong>config_dark_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-get" class=md-nav__link ><strong>config_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-put" class=md-nav__link ><strong>config_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-get" class=md-nav__link ><strong>config_file_writer_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-put" class=md-nav__link ><strong>config_file_writer_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-conversion-post" class=md-nav__link ><strong>config_image_format_conversion_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-get" class=md-nav__link ><strong>config_image_format_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-put" class=md-nav__link ><strong>config_image_format_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-raw-post" class=md-nav__link ><strong>config_image_format_raw_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-get" class=md-nav__link ><strong>config_indexing_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-put" class=md-nav__link ><strong>config_indexing_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-get" class=md-nav__link ><strong>config_instrument_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-put" class=md-nav__link ><strong>config_instrument_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-put" class=md-nav__link ><strong>config_internal_generator_image_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-tiff-put" class=md-nav__link ><strong>config_internal_generator_image_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-get" class=md-nav__link ><strong>config_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-tiff-get" class=md-nav__link ><strong>config_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-get" class=md-nav__link ><strong>config_roi_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-put" class=md-nav__link ><strong>config_roi_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-get" class=md-nav__link ><strong>config_select_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-put" class=md-nav__link ><strong>config_select_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-get" class=md-nav__link ><strong>config_spot_finding_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-put" class=md-nav__link ><strong>config_spot_finding_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-get" class=md-nav__link ><strong>config_user_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-put" class=md-nav__link ><strong>config_user_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-get" class=md-nav__link ><strong>config_user_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-put" class=md-nav__link ><strong>config_user_mask_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-get" class=md-nav__link ><strong>config_zeromq_metadata_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-get" class=md-nav__link ><strong>config_zeromq_preview_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-put" class=md-nav__link ><strong>config_zeromq_preview_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#deactivate-post" class=md-nav__link ><strong>deactivate_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#detector-status-get" class=md-nav__link ><strong>detector_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#fpga-status-get" class=md-nav__link ><strong>fpga_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-clear-post" class=md-nav__link ><strong>image_buffer_clear_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-cbor-get" class=md-nav__link ><strong>image_buffer_image_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-jpeg-get" class=md-nav__link ><strong>image_buffer_image_jpeg_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-tiff-get" class=md-nav__link ><strong>image_buffer_image_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-start-cbor-get" class=md-nav__link ><strong>image_buffer_start_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-status-get" class=md-nav__link ><strong>image_buffer_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-pusher-status-get" class=md-nav__link ><strong>image_pusher_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#initialize-post" class=md-nav__link ><strong>initialize_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#pedestal-post" class=md-nav__link ><strong>pedestal_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-pedestal-tiff-get" class=md-nav__link ><strong>preview_pedestal_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-bin-get" class=md-nav__link ><strong>preview_plot_bin_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-get" class=md-nav__link ><strong>preview_plot_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#result-scan-get" class=md-nav__link ><strong>result_scan_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#start-post" class=md-nav__link ><strong>start_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-calibration-get" class=md-nav__link ><strong>statistics_calibration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-data-collection-get" class=md-nav__link ><strong>statistics_data_collection_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-get" class=md-nav__link ><strong>statistics_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#status-get" class=md-nav__link ><strong>status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#trigger-post" class=md-nav__link ><strong>trigger_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#version-get" class=md-nav__link ><strong>version_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-till-done-post" class=md-nav__link ><strong>wait_till_done_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-until-running-post" class=md-nav__link ><strong>wait_until_running_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-event-code-get" class=md-nav__link ><strong>xfel_event_code_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-pulse-id-get" class=md-nav__link ><strong>xfel_pulse_id_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/Detector.html" class=md-nav__link >Detector</a> <li class=md-nav__item > <a href="python_client/docs/DetectorList.html" class=md-nav__link >DetectorList</a> <li class=md-nav__item > <a href="python_client/docs/DetectorListDetectorsInner.html" class=md-nav__link >DetectorListDetectorsInner</a> <li class=md-nav__item > <a href="python_client/docs/DetectorListElement.html" class=md-nav__link >DetectorListElement</a> <li class=md-nav__item > <a href="python_client/docs/DetectorModule.html" class=md-nav__link >DetectorModule</a> <li class=md-nav__item > <a href="python_client/docs/DetectorModuleDirection.html" class=md-nav__link >DetectorModuleDirection</a> <li class=md-nav__item > <a href="python_client/docs/DetectorPowerState.html" class=md-nav__link >DetectorPowerState</a> <li class=md-nav__item > <a href="python_client/docs/DetectorSelection.html" class=md-nav__link >DetectorSelection</a> <li class=md-nav__item > <a href="python_client/docs/DetectorSettings.html" class=md-nav__link >DetectorSettings</a> <li class=md-nav__item > <a href="python_client/docs/DetectorState.html" class=md-nav__link >DetectorState</a> <li class=md-nav__item > <a href="python_client/docs/DetectorStatus.html" class=md-nav__link >DetectorStatus</a> <li class=md-nav__item > <a href="python_client/docs/DetectorTiming.html" class=md-nav__link >DetectorTiming</a> <li class=md-nav__item > <a href="python_client/docs/DetectorType.html" class=md-nav__link >DetectorType</a> <li class=md-nav__item > <a href="python_client/docs/ErrorMessage.html" class=md-nav__link >ErrorMessage</a> <li class=md-nav__item > <a href="python_client/docs/FileWriterFormat.html" class=md-nav__link >FileWriterFormat</a> <li class=md-nav__item > <a href="python_client/docs/FileWriterSettings.html" class=md-nav__link >FileWriterSettings</a> <li class=md-nav__item > <a href="python_client/docs/FpgaStatusInner.html" class=md-nav__link >FpgaStatusInner</a> <li class=md-nav__item > <a href="python_client/docs/GeomRefinementAlgorithm.html" class=md-nav__link >GeomRefinementAlgorithm</a> <li class=md-nav__item > <a href="python_client/docs/GridPlot.html" class=md-nav__link >GridPlot</a> <li class=md-nav__item > <a href="python_client/docs/GridPlots.html" class=md-nav__link >GridPlots</a> <li class=md-nav__item > <a href="python_client/docs/GridScan.html" class=md-nav__link >GridScan</a> <li class=md-nav__item > <a href="python_client/docs/GridScanResult.html" class=md-nav__link >GridScanResult</a> <li class=md-nav__item > <a href="python_client/docs/GridScanResultImagesInner.html" class=md-nav__link >GridScanResultImagesInner</a> <li class=md-nav__item > <a href="python_client/docs/ImageBufferStatus.html" class=md-nav__link >ImageBufferStatus</a> <li class=md-nav__item > <a href="python_client/docs/ImageFormatSettings.html" class=md-nav__link >ImageFormatSettings</a> <li class=md-nav__item > <a href="python_client/docs/ImagePusherStatus.html" class=md-nav__link >ImagePusherStatus</a> <li class=md-nav__item > <a href="python_client/docs/ImagePusherType.html" class=md-nav__link >ImagePusherType</a> <li class=md-nav__item > <a href="python_client/docs/IndexingAlgorithm.html" class=md-nav__link >IndexingAlgorithm</a> <li class=md-nav__item > <a href="python_client/docs/IndexingSettings.html" class=md-nav__link >IndexingSettings</a> <li class=md-nav__item > <a href="python_client/docs/InstrumentMetadata.html" class=md-nav__link >InstrumentMetadata</a> <li class=md-nav__item > <a href="python_client/docs/JfjochBrokerApi.html" class=md-nav__link >jfjoch_client.JfjochBrokerApi</a> <li class=md-nav__item > <a href="python_client/docs/JfjochBrokerApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/JfjochSettings.html" class=md-nav__link >JfjochSettings</a> <li class=md-nav__item > <a href="python_client/docs/JfjochSettingsSsl.html" class=md-nav__link >JfjochSettingsSsl</a> <li class=md-nav__item > <a href="python_client/docs/JfjochStatistics.html" class=md-nav__link >JfjochStatistics</a> <li class=md-nav__item > <a href="python_client/docs/MeasurementStatistics.html" class=md-nav__link >MeasurementStatistics</a> <li class=md-nav__item > <a href="python_client/docs/PcieDevicesInner.html" class=md-nav__link >PcieDevicesInner</a> <li class=md-nav__item > <a href="python_client/docs/PixelMaskStatistics.html" class=md-nav__link >PixelMaskStatistics</a> <li class=md-nav__item > <a href="python_client/docs/Plot.html" class=md-nav__link >Plot</a> <li class=md-nav__item > <a href="python_client/docs/PlotTypeEnum.html" class=md-nav__link >PlotTypeEnum</a> <li class=md-nav__item > <a href="python_client/docs/PlotUnitX.html" class=md-nav__link >PlotUnitX</a> <li class=md-nav__item > <a href="python_client/docs/Plots.html" class=md-nav__link >Plots</a> <li class=md-nav__item > <a href="python_client/docs/PreviewSettings.html" class=md-nav__link >PreviewSettings</a> <li class=md-nav__item > <a href="python_client/docs/RoiAzimList.html" class=md-nav__link >RoiAzimList</a> <li class=md-nav__item > <a href="python_client/docs/RoiAzimuthal.html" class=md-nav__link >RoiAzimuthal</a> <li class=md-nav__item > <a href="python_client/docs/RoiBox.html" class=md-nav__link >RoiBox</a> <li class=md-nav__item > <a href="python_client/docs/RoiBoxList.html" class=md-nav__link >RoiBoxList</a> <li class=md-nav__item > <a href="python_client/docs/RoiCircle.html" class=md-nav__link >RoiCircle</a> <li class=md-nav__item > <a href="python_client/docs/RoiCircleList.html" class=md-nav__link >RoiCircleList</a> <li class=md-nav__item > <a href="python_client/docs/RoiDefinitions.html" class=md-nav__link >RoiDefinitions</a> <li class=md-nav__item > <a href="python_client/docs/RotationAxis.html" class=md-nav__link >RotationAxis</a> <li class=md-nav__item > <a href="python_client/docs/ScanResult.html" class=md-nav__link >ScanResult</a> <li class=md-nav__item > <a href="python_client/docs/ScanResultImagesInner.html" class=md-nav__link >ScanResultImagesInner</a> <li class=md-nav__item > <a href="python_client/docs/SpotFindingSettings.html" class=md-nav__link >SpotFindingSettings</a> <li class=md-nav__item > <a href="python_client/docs/StandardDetectorGeometry.html" class=md-nav__link >StandardDetectorGeometry</a> <li class=md-nav__item > <a href="python_client/docs/TcpSettings.html" class=md-nav__link >TcpSettings</a> <li class=md-nav__item > <a href="python_client/docs/UnitCell.html" class=md-nav__link >UnitCell</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqMetadataSettings.html" class=md-nav__link >ZeromqMetadataSettings</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqPreviewSettings.html" class=md-nav__link >ZeromqPreviewSettings</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqSettings.html" class=md-nav__link >ZeromqSettings</a> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> </div> </div> </div> <div class=md-content > <article class="md-content__inner md-typeset" role=main > <section class="tex2jax_ignore mathjax_ignore" id=changelog > <h1 id=changelog--page-root >Changelog<a class=headerlink href="#changelog--page-root" title="Link to this heading"></a></h1> <section id=id1 > <h2 id=id1 >1.0.0<a class=headerlink href="#id1" title="Link to this heading"></a></h2> <section id=rc-160 > <h3 id=rc-160 >1.0.0-rc.160<a class=headerlink href="#rc-160" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>rugnux: Rotation <strong>geometry post-refinement</strong> is now on by default (<code class="docutils literal notranslate"><span class=pre >--rotation-no-postrefine</span></code> to disable; also a viewer checkbox). A first pass integrates at the header geometry, then the shared detector distance + beam centre and the crystal cell/goniometer-axis are post-refined over all frames (cross-validated, committed only for a small &lt; 1 % move, with the gauge-weak beam centre restrained toward the header); a second pass re-indexes de novo and re-integrates at the refined geometry. The refined pass is the canonical <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;_*</span></code> output; the header-geometry pass is kept as <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;_01_*</span></code>.</p> <li><p>rugnux: Optional per-batch <strong>relative-B</strong> correction for rotation (<code class="docutils literal notranslate"><span class=pre >--relative-b[=deg]</span></code>, default 10°-of-rotation batches when bare, off otherwise) - a cross-validated, curvature-smoothed resolution×dose correction beyond the single global decay slope.</p> <li><p>rugnux: Always-on <strong>radiation-damage report</strong> for rotation - the per-image scale correlation-to-merge and mosaicity versus dose, plus the relative B-factor change over the run (first→last) as a scalar and a per-batch relative-B curve, printed to the log and written to the merged mmCIF. Report-only; it never alters the merge.</p> <li><p>rugnux: De-novo space-group search ranks candidate lattice <strong>centerings by net absences</strong> (systematically-absent minus violating), not the gross absent count, fixing an over-centering of a genuinely C-centred lattice to F.</p> <li><p>rugnux: Record the <strong>producing software</strong> (name and version) and the refined <strong>detector distance and beam centre</strong> in the merged mmCIF (and the software in the MTZ history).</p> <li><p>Bragg integration: Carry the box-sum observed centroid through the profile-fit path, so the observed spot centroid is emitted in every integrator mode.</p> <li><p>rugnux: Report <strong>ISa</strong> as the counting-subtracted strong-reflection asymptote, not <code class="docutils literal notranslate"><span class=pre >1/b</span></code> of the whole-range fit; it also sets the merged-sigma floor. CC1/2, R-meas and per-obs sigmas unchanged.</p> <li><p>Frontend: Azimuthal-integration Q fields (Q spacing / Low Q / High Q) accept 5 decimals (was 3), matching the 1e-5 <code class="docutils literal notranslate"><span class=pre >q_spacing</span></code> minimum; number-field precision is now configurable.</p> <li><p>rugnux: Add a dataset-wide <strong>Wilson B-factor</strong> estimate to the merged output (mmCIF, stats table, log); the per-image viewer Wilson B emits NaN for implausible fits.</p> <li><p>rugnux: De-novo space-group search vetoes a merohedral-twin over-promotion whose systematic error-model <code class="docutils literal notranslate"><span class=pre >b</span></code> balloons past a calibrated bound (keeps R3 as R3, not R32).</p> <li><p>rugnux: De-novo space-group search decides lattice <strong>centering</strong> from the strength (mean I/sigma) of the systematically-absent class, not a per-reflection violation count.</p> <li><p>rugnux: Recover lattice <strong>centering</strong> on weak / low-energy data via a floor-independent test (rate of significant absent vs present reflections), fixing a missed I-centring at 5/13 keV.</p> <li><p>rugnux: Report anomalous signal-to-noise <strong>SigAno</strong> = &lt;|I(+)-I(-)|&gt;/<sigma> per shell and overall (mmCIF PDBx items + stats-table column); anomalous merges only.</sigma></p> <li><p>rugnux: De-novo space-group search recovers a genuine high-symmetry group on weak data with a broken sigma model by confirming on the systematic-<code class="docutils literal notranslate"><span class=pre >b</span></code> test alone (restores an F432 case).</p> <li><p>rugnux: Print the adopted <strong>space group and unit cell</strong> as a one-line summary at the end of the run (de-novo or user-fixed <code class="docutils literal notranslate"><span class=pre >-S</span></code>).</p> <li><p>rugnux: Score the radiation-damage <strong>decay</strong> cross-validation on a sigma-independent (R-meas-like) metric, so a spurious slope cant pass by reshaping sigmas.</p> <li><p>rugnux: Fix de-novo rotation indexing committing a spurious axis-multiple supercell (collapsing to P1) via a cross-scheme smaller-cell tie-break on near-integer volume ratios.</p> <li><p>rugnux: Widen refined-cell angle bounds to [30, 150] deg (rotation candidate and per-frame stills refinement); check refined angles against the reference cell.</p> <li><p>rugnux: <code class="docutils literal notranslate"><span class=pre >-S</span></code>/<code class="docutils literal notranslate"><span class=pre >--space-group</span></code> now accepts a Hermann-Mauguin symbol (e.g. <code class="docutils literal notranslate"><span class=pre >P43212</span></code>) as well as a space-group number.</p> <li><p>rugnux: Warn when the chosen cell/space group carries an indexing (merohedral) ambiguity needing a reference to resolve.</p> <li><p>Indexing: Requesting the FFTW (CPU) indexer on a GPU node now fails with a clear, actionable message (rotation always uses the GPU FFT indexer there).</p> <li><p>rugnux: Stills <code class="docutils literal notranslate"><span class=pre >--refine-geometry[=N|off]</span></code> - first-pass bundle-adjust of beam/distance/cell then re-index (default ON with a reference cell); accepts reference <code class="docutils literal notranslate"><span class=pre >F</span></code>/<code class="docutils literal notranslate"><span class=pre >FP</span></code> columns.</p> <li><p>rugnux: Per-image geometry refinement <code class="docutils literal notranslate"><span class=pre >-r</span> <span class=pre >flex</span></code> tries all three algorithms per image and keeps the best (old name <code class="docutils literal notranslate"><span class=pre >multi</span></code> kept as an alias).</p> <li><p>rugnux: Experimental stills partiality <code class="docutils literal notranslate"><span class=pre >--still-partiality</span></code> (Gaussian excitation-error) and <code class="docutils literal notranslate"><span class=pre >--partiality-uncertainty</span> <span class=pre >&lt;num&gt;</span></code> down-weighting the least-complete partials.</p> <li><p>rugnux: Default the stills Bragg-integration box to r=6 (integration radii 6, 8, 12).</p> <li><p>rugnux: Self-referenced stills scale in a single pass (fixing a weak-data collapse); a reference MTZ (<code class="docutils literal notranslate"><span class=pre >-z</span></code>) fixes SG/cell/ambiguity but never anchors the scale (stills and rotation).</p> <li><p>rugnux: Cap normalised intensity (E^2) on second-lattice overlaps in the de-novo space-group search, so strong overlaps dont skew the symmetry decision.</p> <li><p>rugnux: Fix <code class="docutils literal notranslate"><span class=pre >--scale</span></code> on a self-contained <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> (stored reflections and error model reload correctly).</p> <li><p>rugnux: Add <code class="docutils literal notranslate"><span class=pre >--spot-low-resolution</span> <span class=pre >&lt;num&gt;</span></code> (default 50 A) and <code class="docutils literal notranslate"><span class=pre >--min-pix-per-spot</span> <span class=pre >&lt;num&gt;</span></code> (default 2) to tune spot finding on weak serial data.</p> <li><p>jfjoch_viewer: Expose stills processing settings in the settings dock, rename geometry-refinement <code class="docutils literal notranslate"><span class=pre >multi</span></code> to <code class="docutils literal notranslate"><span class=pre >flex</span></code>, and refit the initial image on resize.</p> <li><p>jfjoch_writer: Remove the CBF and TIFF image writers - only NXmx HDF5 is written (all three layouts remain).</p> <li><p>Reader: Treat a negative <code class="docutils literal notranslate"><span class=pre >total_flux</span></code> in a stored dataset as unknown/absent rather than a valid flux.</p> <li><p>Packaging: Build the self-contained Linux viewer against a static libdbus with glib disabled; add parallel image-build and in-container viewer-verification scripts.</p> <li><p>rugnux: Write anomalous data as a standard CCP4 anomalous MTZ (one row per reflection: <code class="docutils literal notranslate"><span class=pre >IMEAN</span></code>, <code class="docutils literal notranslate"><span class=pre >I(+)</span></code>/<code class="docutils literal notranslate"><span class=pre >I(-)</span></code>, <code class="docutils literal notranslate"><span class=pre >F</span></code>/<code class="docutils literal notranslate"><span class=pre >F(+)</span></code>/<code class="docutils literal notranslate"><span class=pre >F(-)</span></code>), readable by aimless/mtz2sca/ANODE.</p> <li><p>rugnux: Always write merged reflections as both <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;.mtz</span></code> and <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;.cif</span></code>; the <code class="docutils literal notranslate"><span class=pre >--scaling-output</span></code> selector and text <code class="docutils literal notranslate"><span class=pre >.hkl</span></code> output are removed.</p> <li><p>rugnux: Add a detector-plane <strong>modulation</strong> (flat-field) correction surface to rotation scaling (cross-validated, on by default; <code class="docutils literal notranslate"><span class=pre >--no-scaling-corrections</span></code> disables all), dropping R-meas.</p> <li><p>rugnux: Add optional <strong>stills detector-plane modulation</strong> (<code class="docutils literal notranslate"><span class=pre >--stills-modulation</span></code>, default off) - the same cross-validated surface for the on-the-fly stills path.</p> <li><p>Bragg integration: Local background is now a <strong>symmetric trimmed mean</strong> of the ring (<code class="docutils literal notranslate"><span class=pre >--background-trim</span> <span class=pre >&lt;f&gt;</span></code>, default 0.10; monochromatic), improving &lt;I/sigma&gt; and resolution-edge CC1/2.</p> </ul> </section> <section id=rc-159 > <h3 id=rc-159 >1.0.0-rc.159<a class=headerlink href="#rc-159" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>rugnux: Add <code class="docutils literal notranslate"><span class=pre >--model</span> <span class=pre >model.pdb</span></code> - score the merged data against an atomic model and compute initial maps. It reports R-work/R-free (scaling the model to the observed amplitudes with an overall scale, an anisotropic B and a flat bulk solvent - the standard few-parameter model, so a batch of maps stays directly comparable) and writes 2Fo-Fc / Fo-Fc electron-density maps (CCP4) plus a map-coefficient MTZ. The structure itself is not refined; the model is only re-fractionalised into the data cell.</p> <li><p>rugnux: The merged reflection output now carries French-Wilson amplitudes (|F| and its sigma) next to the intensities - MTZ <code class="docutils literal notranslate"><span class=pre >F</span></code>/<code class="docutils literal notranslate"><span class=pre >SIGF</span></code>, mmCIF <code class="docutils literal notranslate"><span class=pre >_refln.F_meas_au</span></code>, and the text HKL - computed with the correct centric/acentric Wilson prior and epsilon multiplicity, so a downstream program (e.g. phenix.refine) can refine against amplitudes. The intensity columns are unchanged.</p> <li><p>rugnux: R-free test-set flags are now assigned deterministically and consistently across symmetry - a Bijvoet pair I(+)/I(-) is never split between the work and free sets, and the assignment is a reproducible per-hkl hash that depends only on the reflection index, so every dataset of one crystal form gets the same ~5% free set (what a multi-dataset campaign such as PanDDA needs). On small data the fraction is floored so the test set stays large enough for a stable R-free (~500 reflections, capped at 10%); it stays flat at 5% on ordinary data. When a reference MTZ carries a <code class="docutils literal notranslate"><span class=pre >FreeR_flag</span></code> column its test set is imported instead, letting a whole campaign inherit one shared free set.</p> <li><p>rugnux: A reference MTZ (<code class="docutils literal notranslate"><span class=pre >--reference-mtz</span></code>) can now fix the space group and cell for rotation data too (previously rejected), without being used to scale - the rotation merge stays self-consistent. When the crystal has an indexing (merohedral) ambiguity - a lattice symmetry higher than its Laue symmetry, e.g. P3/P4/P6/C2 - the reference also resolves it: each candidate reindexing (identity plus the twin-law cosets of the metric symmetry) is scored by its intensity correlation against the reference and the data are re-merged in the best-correlating one. This is a metric-preserving relabelling of hkl (the cell is unchanged) and a no-op for a holohedral crystal (which has no twin laws).</p> <li><p>rugnux: <code class="docutils literal notranslate"><span class=pre >--model</span></code> validation now aligns the data to the model before scoring - the observed reflections are reindexed into the models enantiomorph when the two differ only by hand (indistinguishable from merged intensities). A merohedral indexing ambiguity is resolved against the reference MTZ when one is given (so a whole campaign shares one indexing convention); only with a model and no reference does validation fall back to fitting each candidate reindexing and keeping the lowest R-free.</p> <li><p>rugnux: De-novo symmetry - recover a genuine high-symmetry group whose data are imperfectly scaled. Such a merges within-orbit chi² lands just past the self-consistency bound (each real symmetry step adds a little systematic scatter), right where a merohedral twin also lands, so the chi² ratio alone cannot separate them. The candidate is now rescued when the extra intensity-proportional systematic error it invokes stays small relative to the confirmed subgroup - a genuine symmetry step gains multiplicity without inflating the merge error models b, whereas a twin forces non-equivalent reflections together and b balloons. Fixes a cubic case (I23 instead of I222) with no change to any other crystal in the test battery, including the twins that must stay in their lower symmetry.</p> <li><p>Docs: Document the French-Wilson amplitude estimation, R-free flagging, reference-based space-group/ambiguity resolution, and model-based validation/maps in CPU_DATA_ANALYSIS.md.</p> <li><p>Frontend: The status-bar pill now shows a progress bar during detector calibration (previously only during measurement), and the calibration state and its button are labelled “Calibration”/“CALIBRATE” (the internal <code class="docutils literal notranslate"><span class=pre >Pedestal</span></code> state name is unchanged for back-compatibility).</p> </ul> </section> <section id=rc-158 > <h3 id=rc-158 >1.0.0-rc.158<a class=headerlink href="#rc-158" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>Analysis: The azimuthal-integration solid-angle correction now follows the incidence angle to the detector normal (<code class="docutils literal notranslate"><span class=pre >cos^3</span></code> of that angle) instead of <code class="docutils literal notranslate"><span class=pre >cos^3(2*theta)</span></code>, so it is correct for a tilted detector and matches PyFAI <code class="docutils literal notranslate"><span class=pre >solidAngleArray</span></code> and MAX IV azint (unchanged for an untilted detector). Crystal geometry refinement (<code class="docutils literal notranslate"><span class=pre >XtalOptimizer</span></code>) no longer silently ignores an imported PONI <code class="docutils literal notranslate"><span class=pre >rot3</span></code> (rotation about the beam): it is applied as a fixed rotation in the residual so refinement stays consistent with the rest of the pipeline. Polarization and azimuthal binning already honoured <code class="docutils literal notranslate"><span class=pre >rot3</span></code> through the full PONI rotation.</p> <li><p>jfjoch_viewer: Open datasets on the WSL2/UNC filesystem (paths starting <code class="docutils literal notranslate"><span class=pre >\\</span></code>); write processing outputs next to the input file, with a Browse button and independent <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> / merged <code class="docutils literal notranslate"><span class=pre >.mtz</span></code>/<code class="docutils literal notranslate"><span class=pre >.cif</span></code> toggles; and show the determined space group in the merge-statistics window.</p> <li><p>jfjoch_viewer: Connect to a broker over <code class="docutils literal notranslate"><span class=pre >https</span></code> (an http/https selector in the connect dialog), and keep the HTTP connection alive across reads for faster live-follow.</p> <li><p>jfjoch_viewer: Time out stalled HTTP requests (5 s) so an unreachable broker cannot hang the reader thread, and drop the cached pixel mask when switching data source.</p> <li><p>rugnux: Accept an absolute <code class="docutils literal notranslate"><span class=pre >-o</span></code> output prefix in offline processing.</p> <li><p>rugnux: Faster two-pass rotation indexing - the first pass now runs its FFT indexing and geometry refinement in parallel (results unchanged).</p> <li><p>rugnux: Rotation indexing now works on standard DECTRIS datasets that store no spots - the first pass finds spots itself instead of failing.</p> <li><p>rugnux: De-novo symmetry robustness - dont over-promote a merohedral twin to the holohedral group (keep e.g. R3, not R32), make the intensity second-moment twinning statistic robust on weak/mis-integrated data, and dont flag twinning in holohedral Laue classes where no twin law can exist.</p> <li><p>jfjoch_writer: Fold the refined beam centre into the NXmx detector <code class="docutils literal notranslate"><span class=pre >translation</span></code> vector too (not only the informational <code class="docutils literal notranslate"><span class=pre >beam_center</span></code> fields), so a reprocessed <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> has a self-consistent refined geometry.</p> <li><p>Robustness: Harden size handling of untrusted input in TIFF reading and raw-TCP frames.</p> <li><p>Packaging: The self-contained Linux viewer <code class="docutils literal notranslate"><span class=pre >.tgz</span></code> now bundles cuFFT, so it runs without a system CUDA toolkit (<code class="docutils literal notranslate"><span class=pre >.deb</span></code>/<code class="docutils literal notranslate"><span class=pre >.rpm</span></code> are unchanged, distro-managed).</p> <li><p>Docs: Documentation updated to match the current analysis code and CLI.</p> </ul> </section> <section id=rc-157 > <h3 id=rc-157 >1.0.0-rc.157<a class=headerlink href="#rc-157" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>rugnux: Rebrand the offline data-processing subsystem as <code class="docutils literal notranslate"><span class=pre >rugnux</span></code> and consolidate all offline analysis into the single <code class="docutils literal notranslate"><span class=pre >rugnux</span></code> binary - <code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code> is now <code class="docutils literal notranslate"><span class=pre >rugnux</span></code>, the former <code class="docutils literal notranslate"><span class=pre >jfjoch_azint</span></code> is now <code class="docutils literal notranslate"><span class=pre >rugnux</span> <span class=pre >--azint-only</span></code>, and <code class="docutils literal notranslate"><span class=pre >jfjoch_scale</span></code> is now <code class="docutils literal notranslate"><span class=pre >rugnux</span> <span class=pre >--scale</span></code> (see the new docs/NAMING.md and docs/RUGNUX.md). Scaling and merging are on by default for rotation and stills (<code class="docutils literal notranslate"><span class=pre >--no-merge</span></code> disables them), replacing the previous opt-in <code class="docutils literal notranslate"><span class=pre >-M,</span> <span class=pre >--scale-merge</span></code>.</p> <li><p>rugnux: CLI fixes - default <code class="docutils literal notranslate"><span class=pre >-N</span></code> to all hardware threads, parse numeric option arguments strictly (reject non-numeric or trailing input instead of silently yielding 0), require <code class="docutils literal notranslate"><span class=pre >--wavelength</span> <span class=pre >&gt;</span> <span class=pre >0</span></code>, and correct the reproduced command line and <code class="docutils literal notranslate"><span class=pre >--scale</span></code> reference-cell handling.</p> <li><p>rugnux: De-novo space-group improvements - recover genuine high symmetry and centred Bravais lattices from intensities, add an automatic CC1/2 high-resolution cutoff, and report L-test twinning statistics.</p> <li><p>rugnux: Index weakly-diffracting low-resolution rotation data that previously failed (e.g. F-cubic crystals that diffract only to ~4 A on a detector reaching ~1.5 A). The per-frame indexing gate now measures the indexed fraction only within the resolution range the lattice actually diffracts to, so the many sub-diffraction ice/noise spots no longer make the fraction floor unreachable; the two-pass first pass tries several image-sampling schemes (spread across the whole rotation vs a consecutive wedge whose native stride keeps a reflections rocking curve continuous, letting the FFT resolve a long axis) and keeps the one that indexes the most frames; and the de-novo space-group search no longer discards all reflections (and crashes) when every resolution shell falls below &lt;I/sigma&gt; = 1.</p> <li><p>rugnux: Lower the low-resolution R-meas for strongly-diffracting rotation data - drop edge-of-sweep truncated fulls whose rocking curve was captured below <code class="docutils literal notranslate"><span class=pre >--min-captured-fraction</span></code> (default 0.7 for rotation), and report R-meas only over the observations kept by outlier rejection (matching XDS). The 0.7 default also strips the partiality-extrapolated fulls that dominate the intensity second moment on weakly-diffracting crystals, so the de-novo space-group search is no longer starved by the error-model I/sigma floor and recovers the correct symmetry (e.g. for F-centred cubic lattices that would otherwise be under-assigned).</p> <li><p>rugnux: Write the refined geometry (beam, tilt, axis) to _process.h5 and place non-standard mmCIF items under a reserved <code class="docutils literal notranslate"><span class=pre >jfjoch</span></code> prefix.</p> <li><p>jfjoch_broker: Ordinary acquisition failures (receiver/writer/analysis problems, missed packets, writer disconnect) now return to the Idle state with an Error-severity message, so a run can be retried without an expensive re-initialisation; only failures that leave the detector in an undefined state (new JFJochCriticalException, e.g. PCIe/FPGA faults) go to the Error state and force re-initialisation.</p> <li><p>jfjoch_broker: A synchronous /start now reports its failure to the HTTP caller instead of returning HTTP 200, and an incomplete or truncated dataset (missing packets, writer disconnect) is reported as an error rather than a “reduce frame rate” warning.</p> <li><p>jfjoch_broker: Drop uncollected placeholder rows (number = -1) from the scan_result REST endpoint.</p> <li><p>jfjoch_broker: Fix the inverted per-image compression ratio reported by the Lite receiver (was compressed/uncompressed instead of uncompressed/compressed).</p> <li><p>jfjoch_broker: Bragg integration adds a quantization-noise variance floor with a box-sum fallback, and treats the type-maximum marker as an invalid pixel for unsigned image types.</p> <li><p>jfjoch_writer: Detect file-overwrite conflicts at start for back-channel transports, and reset the writer when end-of-collection finalisation fails.</p> <li><p>jfjoch_viewer: Preview overlays follow the geometry (resolution/ROI arcs, true beam centre, predictions, coral secondary-lattice spots, legend), add save-as-JPEG, and fix an HTTP live-follow memory leak.</p> <li><p>Frontend: Improved aesthetics and usability, and added in-browser pixel-mask and JUNGFRAU-pedestal visualisation.</p> <li><p>CI: Name the Windows installer jfjoch-viewer-* instead of jfjoch-*.</p> </ul> </section> <section id=rc-156 > <h3 id=rc-156 >1.0.0-rc.156<a class=headerlink href="#rc-156" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>jfjoch_process: Major rotation (rot3d) data processing overhaul - robust profile-fit integration, Cauchy-loss scaling with optional absorption surface, de-novo indexing and space-group/centering determination fixes, and merging statistics + ISa in the mmCIF output.</p> <li><p>jfjoch_process: Bragg integration now runs on the GPU in the offline/non-FPGA workflow (one box-sum + profile-fit engine, GPU when available, CPU otherwise); the FPGA workflow integrates on the CPU directly from the assembled image. The previous standalone integrators are removed.</p> <li><p>jfjoch_process: Deterministic Bragg prediction - when more reflections are predicted than fit the output, they are ranked by distance to the Ewald sphere before truncation, so repeated runs produce identical reflections.</p> <li><p>jfjoch_process: Judge systematic absences by resolution-normalised intensity instead of I/sigma alone, so screw axes are no longer missed when the error model under-estimates sigma on weak axial reflections (e.g. the monoclinic 2_1 screw).</p> <li><p>jfjoch_process: GPU-accelerated rotation scaling and merging (RotationScaleMerge), substantially faster than the previous CPU path.</p> <li><p>jfjoch_process: Unify still and rotation processing on a single force-still flag (replaces the -P partiality-model option); rotation is auto-detected from the goniometer and processed as rot3d two-pass by default, the default reflection output is mmCIF, and the experimental reciprocal-profile option is removed.</p> <li><p>jfjoch_process: Add EXPERIMENTAL ice-ring detection (detect-ice-rings) that excludes ice reflections from scaling.</p> <li><p>jfjoch_broker: The Bragg integration model (profile-fit Gaussian, empirical, or box-sum) is now selectable via the REST API (/config/bragg_integration) and the web frontend.</p> <li><p>jfjoch_broker: Write smargon chi/phi goniometer positions to NXmx; read sensor thickness/material from HDF5 metadata.</p> <li><p>jfjoch_writer: Dont write empty grid-scan position arrays when the dataset has no images.</p> <li><p>Compression: Add BSHUF_ZSTD_RLE_HUFF, make compression size-aware (drop frames that dont fit rather than aborting), and add the jfjoch_recompress tool.</p> <li><p>jfjoch_viewer: Report “Multiple lattices detected” and grey out “Analyze dataset” on a live connection.</p> <li><p>jfjoch_viewer: Frontend fixes - detector settings widget, panel/preview overflow, and navigation icons.</p> <li><p>CI: Build Windows (CUDA and non-CUDA) installers.</p> <li><p>CI: Ship jfjoch_viewer to the release as a Linux-agnostic .tgz.</p> </ul> </section> <section id=rc-155 > <h3 id=rc-155 >1.0.0-rc.155<a class=headerlink href="#rc-155" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>jfjoch_process: Remove pixelrefine option (replaced with ProfileIntegrate2D)</p> <li><p>jfjoch_viewer: Some graphical improvements.</p> <li><p>jfjoch_viewer: Simplify und unify data analysis settings.</p> <li><p>jfjoch_writer: Add TCP keepalive to increase robustness if jfjoch_broker “dies” in the middle of data acquisition.</p> </ul> </section> <section id=rc-154 > <h3 id=rc-154 >1.0.0-rc.154<a class=headerlink href="#rc-154" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>jfjoch_broker: Fix to TCP file pusher (remove kernel zero copy to improve reliability)</p> </ul> </section> <section id=rc-153 > <h3 id=rc-153 >1.0.0-rc.153<a class=headerlink href="#rc-153" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use.</p> <ul class=simple > <li><p>jfjoch_broker: Add EXPERIMENTAL pixelrefine mode for image processing</p> <li><p>jfjoch_broker: Allow to load user mask from 8-bit and 16-bit TIFF files</p> <li><p>jfjoch_broker: Add ROI calculation in non-FPGA workflow</p> <li><p>jfjoch_broker: Fixes to TCP image pusher</p> <li><p>jfjoch_broker: Remove NUMA bindings</p> <li><p>jfjoch_broker: Improvements to indexing</p> <li><p>jfjoch_broker: For PSI EIGER, trimming energies are taken from the detector configuration (now compulsory) instead of hardcoded values</p> <li><p>jfjoch_writer: Save ROI definitions and the per-pixel ROI bitmap in the master file; azimuthal ROIs support phi (angular) sectors</p> <li><p>jfjoch_viewer: Major redesign with dockable panels and saved layouts, plus on-canvas creation/move/resize of box, circle and azimuthal ROIs</p> <li><p>jfjoch_viewer: Run jfjoch_process reprocessing jobs from inside the GUI and overlay per-run results</p> </ul> </section> <section id=rc-152 > <h3 id=rc-152 >1.0.0-rc.152<a class=headerlink href="#rc-152" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: Fix bounds for azimuthal integration for Q spacing (allow Q of 1e-5)</p> <li><p>jfjoch_viewer: Adjust Q bounds for azimuthal integration</p> <li><p>jfjoch_azint: Add tool to do quick azimuthal integration</p> </ul> </section> <section id=rc-151 > <h3 id=rc-151 >1.0.0-rc.151<a class=headerlink href="#rc-151" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: For PSI EIGER detector allow to disable individual half-modules by putting empty hostname</p> </ul> </section> <section id=rc-150 > <h3 id=rc-150 >1.0.0-rc.150<a class=headerlink href="#rc-150" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: When in FPGA workflow (with PSI detectors) azimuthal integration might be forced to CPU - this will require more computational power, but it enables more integration bins and reports standard deviation of each bin.</p> <li><p>jfjoch_broker: Raise error if one is in FPGA flow and there are too many azimuthal integration bins.</p> </ul> </section> <section id=rc-149 > <h3 id=rc-149 >1.0.0-rc.149<a class=headerlink href="#rc-149" title="Link to this heading"></a></h3> <ul class=simple > <li><p>XDS plugin: Fix HDF5 mutex to run on multiple processors</p> </ul> </section> <section id=rc-148 > <h3 id=rc-148 >1.0.0-rc.148<a class=headerlink href="#rc-148" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications for data processing - in case of troubles go back to 1.0.0-rc.144.</p> <ul class=simple > <li><p>jfjoch_broker: Improve azimuthal integration (add &lt;I^2&gt; calculation)</p> <li><p>jfjoch_broker: Fixes around indexing, aiming to handle multi-lattice crystals (work in progress, it is not fully integrated)</p> <li><p>jfjoch_writer: Save mean(I), stddev(I), and count(I) for each azimuthal bin</p> </ul> </section> <section id=rc-147 > <h3 id=rc-147 >1.0.0-rc.147<a class=headerlink href="#rc-147" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications for data processing - in case of troubles go back to 1.0.0-rc.144.</p> <ul class=simple > <li><p>CI pipeline builds software with x86_64-v3 architecture, it should be compatible with practically all x86 hardware manufactured after 2015.</p> <li><p>jfjoch_viewer: Add reciprocal space viewer</p> <li><p>jfjoch_process: Two pass algorithm that does spot finding/indexing + integration of full dataset</p> <li><p>jfjoch_process: Improve logic for rotation indexer, to make execution more deterministic (still work in progress)</p> </ul> </section> <section id=rc-146 > <h3 id=rc-146 >1.0.0-rc.146<a class=headerlink href="#rc-146" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications for data processing - in case of troubles go back to 1.0.0-rc.144.</p> <ul class=simple > <li><p>jfjoch_broker: Add a lattice-orientation-only refinement option, in addition to full refinement (beam center, lattice orientation, lattice dimension)</p> <li><p>jfjoch_process: Generate a dedicated file (_process.h5), which can be used as a replacement for the _master.h5 file for a reanalyzed dataset.</p> <li><p>jfjoch_process: Improve the performance of scaling and merging, implement on the fly scaling.</p> <li><p>jfjoch_writer: All final data analysis results are repopulated in the _master.h5 file.</p> <li><p>jfjoch_scale: Dedicated tool for rescaling/merging existing data.</p> <li><p>jfjoch_viewer: Fix bugs where pixel labels where displayed on a wrong pixel.</p> </ul> <p>WARNING! Scaling and merging are experimental at the moment, and may not provide reasonable results for the time being.</p> </section> <section id=rc-145 > <h3 id=rc-145 >1.0.0-rc.145<a class=headerlink href="#rc-145" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications for HDF5 writing logic - in case of troubles go back to 1.0.0-rc.144.</p> <ul class=simple > <li><p><strong>Default HDF5 writing mode is with VDS, not soft-links</strong> - this improves DIALS compatibility and makes format more future-proof, NXmx legacy format might be phased-out in the future.</p> <li><p>XDS plugin: Improve performance of VDS reading.</p> <li><p>jfjoch_writer: Significant improvement on how file systems I/O are handled through a dedicated pass-through VFD.</p> <li><p>jfjoch_writer: Clean-up of HDF5 routines to better handle issues.</p> </ul> </section> <section id=rc-144 > <h3 id=rc-144 >1.0.0-rc.144<a class=headerlink href="#rc-144" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Improve performance of preview JPEG image generator at receiver startup (saving about 150 ms on measurement start for 16M)</p> </ul> </section> <section id=rc-143 > <h3 id=rc-143 >1.0.0-rc.143<a class=headerlink href="#rc-143" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Avoid copying gain calibration together with DiffractionExperiment</p> </ul> </section> <section id=rc-142 > <h3 id=rc-142 >1.0.0-rc.142<a class=headerlink href="#rc-142" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>Support for newer CUDA architectures (notably Blackwell); minimum CUDA version 12.8</p> <li><p>Minor changes to jfjoch_process, jfjoch_fpga_test and jfjoch_lite_perf_test to make them more consistent</p> </ul> </section> <section id=rc-141 > <h3 id=rc-141 >1.0.0-rc.141<a class=headerlink href="#rc-141" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Azimuthal integration mapping is generated with parallel computations, significantly reducing setup times</p> <li><p>frontend: Fix selection of FFTW in indexing settings</p> </ul> </section> <section id=rc-140 > <h3 id=rc-140 >1.0.0-rc.140<a class=headerlink href="#rc-140" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: For DECTRIS detectors, ZeroMQ link is persistent, to save time for establishing new connection</p> <li><p>jfjoch_broker: Minor bug fixes for rare conditions</p> <li><p>jfjoch_process: Significantly improve performance</p> </ul> </section> <section id=rc-139 > <h3 id=rc-139 >1.0.0-rc.139<a class=headerlink href="#rc-139" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Further reduce startup time for DECTRIS detectors by selectively modifying SIMPLON parameters on <code class="docutils literal notranslate"><span class=pre >/start</span></code></p> <li><p>jfjoch_broker: Further reduce startup time for DECTRIS detectors by not setting beam center and detector distance via SIMPLON API on /start</p> <li><p>jfjoch_broker: Add an extra message to ZeroMQ puller ready to monitor Lite worklow preparation time</p> <li><p>jfjoch_broker: Image buffer configuration is postponed for Lite receiver flow till start message is received</p> <li><p>jfjoch_broker: Use nanoseconds internally for frame/image/readout time</p> <li><p>jfjoch_broker: Extra messages added for receiver operation (to be removed after debugging finished)</p> <li><p>jfojch_broker: Improve profiling of different data analysis steps</p> <li><p>jfjoch_broker: Record integration reflection count</p> <li><p>jfjoch_broker: Fix bug where ZeroMQ preview frequency was confusing time units (micro vs. milliseconds)</p> <li><p>jfjoch_broker: Fix bug where /wait_till_done got deadlocked</p> <li><p>jfjoch_writer: Fix confusion between NaN and zero in floating-point datasets</p> </ul> <p><strong>Breaking changes</strong>: detector definition is now using nanoseconds to define minimum frame time, minimum count time and readout time.</p> </section> <section id=rc-138 > <h3 id=rc-138 >1.0.0-rc.138<a class=headerlink href="#rc-138" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Cleanup DECTRIS start-up code to enable a shorter start time</p> <li><p>jfjoch_broker: Allow for asynchronous start to allow overlapping detector configuration with other beamline preparations</p> <li><p>jfjoch_broker: Goniometer axis name is converted to lowercase</p> <li><p>jfjoch_broker: Fix bug, where wrong HTTP error codes were returned</p> <li><p>jfjoch_process: Improve sigma estimation during merging (K. Takaba)</p> <li><p>jfjoch_process: Modify spot finding thresholds</p> </ul> </section> <section id=rc-137 > <h3 id=rc-137 >1.0.0-rc.137<a class=headerlink href="#rc-137" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Better track time for each operation in the processing stack</p> <li><p>jfjoch_broker: Rewrite preprocessing of diffraction images in the non-FPGA workflow to better use GPUs (work in progress)</p> <li><p>jfjoch_broker: Remove ROI calculation in the non-FPGA workflow (work in progress)</p> <li><p>jfjoch_viewer: Toolbar displays image number starting from 1 (instead of 0)</p> </ul> </section> <section id=rc-136 > <h3 id=rc-136 >1.0.0-rc.136<a class=headerlink href="#rc-136" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Improve logic regarding indexing architecture and thread pools (work in progress).</p> </ul> </section> <section id=rc-135 > <h3 id=rc-135 >1.0.0-rc.135<a class=headerlink href="#rc-135" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>Multiple small bug fixes scattered across the whole code base. (detected with GPT-5.4)</p> <li><p>jfjoch_viewer: Improve image render performance</p> </ul> </section> <section id=rc-134 > <h3 id=rc-134 >1.0.0-rc.134<a class=headerlink href="#rc-134" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Add better locking for detector object - should help, when detector initialization takes too long</p> <li><p>jfjoch_writer: Enable writing single, integrated HDF5 file with both data and metadata</p> <li><p>XDS plugin: Add generation of Jungfraujoch plugin for XDS</p> <li><p>CI: Add tests with XDS and DIALS (<code class="docutils literal notranslate"><span class=pre >xia2.ssx</span></code>)</p> </ul> </section> <section id=rc-133 > <h3 id=rc-133 >1.0.0-rc.133<a class=headerlink href="#rc-133" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.</p> <ul class=simple > <li><p>jfjoch_broker: Use httplib for HTTP server instead of Pistache</p> <li><p>jfjoch_broker: Drop OpenSSL support</p> <li><p>jfjoch_broker: Base work for multi-lattice support in the future</p> <li><p>jfjoch_broker: Improve recording time of data analysis steps</p> <li><p>jfjoch_writer: Save per-image information about data analysis timing</p> <li><p>Update dependencies to more recent versions (spdlog, HDF5, Catch2, httplib)</p> </ul> </section> <section id=rc-132 > <h3 id=rc-132 >1.0.0-rc.132<a class=headerlink href="#rc-132" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>Documentation: Fix equation rendering</p> </ul> </section> <section id=rc-131 > <h3 id=rc-131 >1.0.0-rc.131<a class=headerlink href="#rc-131" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug in saving JUNGFRAU calibration (pedestal/pedestalRMS)</p> <li><p>jfjoch_viewer: Fix calibration (pedestal) images being open flipped</p> <li><p>jfjoch_process: Add space group detection (EXPERIMENTAL)</p> </ul> </section> <section id=rc-130 > <h3 id=rc-130 >1.0.0-rc.130<a class=headerlink href="#rc-130" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Rotation indexer has two retries if failes</p> <li><p>jfjoch_broker: Rotation indexer handles small number of rotation images (like test shot)</p> <li><p>jfjoch_broker: Integration calculates background mask based on R2 radius</p> <li><p>jfjoch_process: HDF5 files are not saved by default</p> </ul> </section> <section id=rc-129 > <h3 id=rc-129 >1.0.0-rc.129<a class=headerlink href="#rc-129" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Significant improvements in TCP image socket, as a viable alternative for ZeroMQ sockets (only a single port on broker side, dynamically change number of writers, acknowledgments for written files)</p> <li><p>jfjoch_broker: Delta phi is calculated also for still data in Bragg prediction</p> <li><p>jfjoch_broker: Image pusher statistics are accessible via the REST interface</p> <li><p>jfjoch_writer: Supports TCP image socket and for these auto-forking option</p> </ul> </section> <section id=rc-128 > <h3 id=rc-128 >1.0.0-rc.128<a class=headerlink href="#rc-128" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Handle properly reuse of image buffer locations</p> <li><p>jfjoch_broker: Fix bug in counting idle slots</p> <li><p>jfjoch_broker: Force obtuse angle for monoclinic cells</p> <li><p>jfjoch_process: Change scaling refinement tolerance</p> </ul> </section> <section id=rc-127 > <h3 id=rc-127 >1.0.0-rc.127<a class=headerlink href="#rc-127" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Default EIGER readout time is 20 microseconds</p> <li><p>jfjoch_broker: Multiple improvements regarding performance</p> <li><p>jfjoch_broker: Image buffer allows to track frames in preparation and sending</p> <li><p>jfjoch_broker: Dedicated thread for ZeroMQ transmission to better utilize the image buffer</p> <li><p>jfjoch_broker: Experimental implementation of transmission with raw TCP/IP sockets</p> <li><p>jfjoch_writer: Fixes regarding properly closing files in long data collections</p> <li><p>jfjoch_process: Scale &amp; merge has been significantly improved, but it is not yet integrated into mainstream code</p> </ul> </section> <section id=rc-126 > <h3 id=rc-126 >1.0.0-rc.126<a class=headerlink href="#rc-126" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. If things go wrong with analysis, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug for monoclinic space groups being wrongly refined when beta is much different from 90 deg.</p> </ul> </section> <section id=rc-125 > <h3 id=rc-125 >1.0.0-rc.125<a class=headerlink href="#rc-125" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This version adds scalign and merging. These are experimental at the moment, and should not be used for production analysis. If things go wrong with analysis, it is better to revert to 1.0.0-rc.124.</p> <ul class=simple > <li><p>jfjoch_broker: Improve logic on switching on/off spot finding</p> <li><p>jfjoch_broker: Increase maximum spot count for FFBIDX to 65536</p> <li><p>jfjoch_broker: Increase default maximum unit cell for FFT to 500 A (could have performance impact, TBD)</p> <li><p>jfjoch_process: Add scalign and merging functionality - program is experimental at the moment and should not be used for production analysis</p> <li><p>jfjoch_viewer: Display partiality and reciprocal Lorentz-polarization correction for each reflection</p> <li><p>jfjoch_writer: Save more information about each reflection</p> </ul> </section> <section id=rc-124 > <h3 id=rc-124 >1.0.0-rc.124<a class=headerlink href="#rc-124" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This version significantly rewrites code to predict reflection position and integrate them, especially in case of rotation crystallography. If things go wrong with analysis, it is better to revert to 1.0.0-rc.123.</p> <ul class=simple > <li><p>jfjoch_broker: Improve refection position prediction and Bragg integration code.</p> <li><p>jfjoch_broker: Align with XDS way of calculating Lorentz correction and general notation.</p> <li><p>jfjoch_writer: Fix saving mosaicity properly in HDF5 file.</p> <li><p>jfjoch_viewer: Introduce high-dynamic range mode for images</p> <li><p>jfjoch_viewer: Ctrl+mouse wheel has exponential change in foreground (+/-15%)</p> <li><p>jfjoch_viewer: Zoom-in numbers have better readability</p> </ul> </section> <section id=rc-123 > <h3 id=rc-123 >1.0.0-rc.123<a class=headerlink href="#rc-123" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Use newer version of Google Ceres for (potential) CUDA 13 compatibility</p> <li><p>jfjoch_broker: Improve performance of generating preview images, especially for large detectors (9M-16M)</p> <li><p>jfjoch_viewer: Improve performance of displaying images, especially for large detectors (9M-16M)</p> <li><p>jfjoch_viewer: Add more color schemes for better image readability</p> <li><p>HDF5: Common mutex for reading and writing HDF5 if both operations were to happen in the same executable</p> <li><p>HDF5: suppress warning if path (upstream group) doesnt exists when checking if leaf exists</p> </ul> </section> <section id=rc-122 > <h3 id=rc-122 >1.0.0-rc.122<a class=headerlink href="#rc-122" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Add thresholding to prefer shorter vectors after FFT</p> <li><p>jfjoch_broker: Add experimental mosaicity estimation for rotation experiments (this is work in progress)</p> <li><p>jfjoch_broker: Update nlohmann::json to 3.12.0</p> <li><p>jfjoch_viewer: Display file opening errors</p> <li><p>jfjoch_viewer: When loading files over DBus add retry/back-off till the file is available</p> </ul> </section> <section id=rc-121 > <h3 id=rc-121 >1.0.0-rc.121<a class=headerlink href="#rc-121" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Report changes in the image buffer, so viewer doesnt reload constantly</p> <li><p>jfjoch_viewer: Improve performance of loading images</p> <li><p>jfjoch_viewer: Auto-throttle image loading in HTTP-sync / movie modes</p> <li><p>jfjoch_viewer: Auto-foreground calculated with histogram</p> <li><p>jfjoch_viewer: Fix rare segmentation fault</p> </ul> </section> <section id=rc-120 > <h3 id=rc-120 >1.0.0-rc.120<a class=headerlink href="#rc-120" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Improve performance of binary plot export</p> </ul> </section> <section id=rc-119 > <h3 id=rc-119 >1.0.0-rc.119<a class=headerlink href="#rc-119" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_broker: Add binary export of data analysis plots over OpenAPI</p> <li><p>jfjoch_broker: Minor fixes to HTTP error handling</p> <li><p>jfjoch_viewer: Prefer binary plots over JSON plots</p> <li><p>jfjoch_viewer: Change foreground with F button + wheel</p> <li><p>jfjoch_viewer: Change way how angles are displayed</p> <li><p>jfjoch_viewer: Display resolution of the mouse cursor in top left corner</p> </ul> </section> <section id=rc-118 > <h3 id=rc-118 >1.0.0-rc.118<a class=headerlink href="#rc-118" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_viewer: Fix issue when HTTP sync silently disconnected when it was enabled when the broker was starting measurement.</p> <li><p>jfjoch_broker: Add protections on time of geometry optimization and reduce rotation recalculations</p> </ul> </section> <section id=rc-117 > <h3 id=rc-117 >1.0.0-rc.117<a class=headerlink href="#rc-117" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_viewer: Add ROI results to the dataset info plots</p> <li><p>jfjoch_writer: Remove HTTP interface, as it is not needed/used at the moment</p> </ul> </section> <section id=rc-116 > <h3 id=rc-116 >1.0.0-rc.116<a class=headerlink href="#rc-116" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_viewer: Add binning options in the context menu</p> </ul> </section> <section id=rc-115 > <h3 id=rc-115 >1.0.0-rc.115<a class=headerlink href="#rc-115" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_broker: Default spot finding settings can be configured via config JSON</p> <li><p>jfjoch_viewer: FFT analysis of data in the dataset plot</p> </ul> </section> <section id=rc-114 > <h3 id=rc-114 >1.0.0-rc.114<a class=headerlink href="#rc-114" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_broker: Fix generating JPEG images with resolution estimation</p> </ul> </section> <section id=rc-113 > <h3 id=rc-113 >1.0.0-rc.113<a class=headerlink href="#rc-113" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_broker: Improve handling of rotation indexing</p> <li><p>jfjoch_broker: More information saved in CBOR end message (WIP)</p> <li><p>jfjoch_writer: Save rotation indexing lattice parameters and Niggli class</p> <li><p>jfjoch_viewer: Remove (for now) primitive cell information</p> <li><p>jfjoch_viewer: Use angle for dataset info plot for rotation scans</p> </ul> </section> <section id=rc-112 > <h3 id=rc-112 >1.0.0-rc.112<a class=headerlink href="#rc-112" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.111 instead).</p> <ul class=simple > <li><p>jfjoch_broker: Experimental rotation (3D) indexing</p> <li><p>jfjoch_broker: Minor fix to error in optimizer potentially returning NaN values</p> </ul> </section> <section id=rc-111 > <h3 id=rc-111 >1.0.0-rc.111<a class=headerlink href="#rc-111" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Remove 3D lattice viewer (not really useful at this moment)</p> <li><p>jfjoch_viewer: Fix auto contrast not refreshing image</p> </ul> </section> <section id=rc-110 > <h3 id=rc-110 >1.0.0-rc.110<a class=headerlink href="#rc-110" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Add auto-contrast option for preview images</p> <li><p>Frontend: Add logo image</p> <li><p>jfjoch_viewer: Add logo image</p> <li><p>jfjoch_viewer: For image chart allow to set min value to zero</p> <li><p>jfjoch_viewer: For resolution estimation plots, visualization uses 1/d^2 as measure</p> <li><p>jfjoch_viewer: Add 3D unit cell visualization (experimental/WIP/not really there)</p> <li><p>Documentation: Add logo image</p> </ul> </section> <section id=rc-109 > <h3 id=rc-109 >1.0.0-rc.109<a class=headerlink href="#rc-109" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Add keyboard shortcuts and option to copy image to clipboard</p> <li><p>jfjoch_broker: Fix bit-width and exposure time for PSI EIGER detectors</p> </ul> </section> <section id=rc-108 > <h3 id=rc-108 >1.0.0-rc.108<a class=headerlink href="#rc-108" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Fix bug when resolution estimation/B-Factor/Profile radius were not set (NaN)</p> <li><p>jfjoch_viewer: Show spots is off by default, resolution ring mode is enabled by default</p> <li><p>jfjoch_viewer: Fit to window of image is now default when size of the grid changes</p> </ul> </section> <section id=rc-107 > <h3 id=rc-107 >1.0.0-rc.107<a class=headerlink href="#rc-107" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Minor polishing of new functionality</p> <li><p>jfjoch_broker: User NaN for empty azimuthal bins</p> </ul> </section> <section id=rc-106 > <h3 id=rc-106 >1.0.0-rc.106<a class=headerlink href="#rc-106" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Allow for multiple dataset info plots</p> <li><p>jfjoch_viewer: Highlight current element in grid</p> </ul> </section> <section id=rc-105 > <h3 id=rc-105 >1.0.0-rc.105<a class=headerlink href="#rc-105" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Clean-up widgets slightly</p> <li><p>jfjoch_viewer: Limit right panel to 600 pixels</p> <li><p>jfjoch_viewer: Parse crystal symmetry type</p> <li><p>jfjoch_viewer: Grid scan view takes color map and can be fit to zoom</p> </ul> </section> <section id=rc-104 > <h3 id=rc-104 >1.0.0-rc.104<a class=headerlink href="#rc-104" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_writer: Fix and improve the way grid scan geometry is saved (non-NXmx extension makes it way easier)</p> <li><p>jfjoch_viewer: Display grid scan results in 2D (work in progress)</p> <li><p>jfjoch_viewer: Improve auto-scaling on start of images (work in progress)</p> <li><p>jfjoch_viewer: Add B-factor and resolution estimate to the dataset info plots</p> </ul> </section> <section id=rc-103 > <h3 id=rc-103 >1.0.0-rc.103<a class=headerlink href="#rc-103" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Minor improvements to the viewer</p> <li><p>jfjoch_broker: Change behavior for modular detectors: coordinates of 0-th pixel can be now arbitrary and detector will be cropped to the smallest rectangle limited by module coordinates</p> </ul> </section> <section id=rc-102 > <h3 id=rc-102 >1.0.0-rc.102<a class=headerlink href="#rc-102" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Minor improvements to the viewer</p> </ul> </section> <section id=rc-101 > <h3 id=rc-101 >1.0.0-rc.101<a class=headerlink href="#rc-101" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Auto load is better handling change of states</p> <li><p>jfjoch_viewer: Fix DBus registration</p> <li><p>jfjoch_viewer: Handle charts better with vertical lines on hover and status bar update</p> <li><p>jfjoch_viewer: Calculate ROI in a more efficient way</p> </ul> </section> <section id=rc-100 > <h3 id=rc-100 >1.0.0-rc.100<a class=headerlink href="#rc-100" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Fix dbus registration</p> <li><p>jfjoch_viewer: Remove background slider for diffraction image</p> <li><p>jfjoch_viewer: Adjustments for 2D azimuthal image viewer</p> </ul> </section> <section id=rc-99 > <h3 id=rc-99 >1.0.0-rc.99<a class=headerlink href="#rc-99" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix output during mask data collection</p> </ul> </section> <section id=rc-98 > <h3 id=rc-98 >1.0.0-rc.98<a class=headerlink href="#rc-98" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.96 instead).</p> <ul class=simple > <li><p>jfjoch_broker: For DECTRIS detectors fix dark data collection during initialization</p> </ul> </section> <section id=rc-97 > <h3 id=rc-97 >1.0.0-rc.97<a class=headerlink href="#rc-97" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release and not recommended for production use (please use rc.96 instead).</p> <ul class=simple > <li><p>jfjoch_broker: For DECTRIS detectors add dark data collection during initialization for bad pixel mask</p> <li><p>jfjoch_broker: Refactor of calibration logic for more clear code (likely to introduce problems)</p> <li><p>jfjoch_viewer: Add option to handle user pixel mask (experimental)</p> <li><p>jfjoch_viewer: More options for ROI</p> <li><p>jfjoch_viewer: Add window to display calibration</p> </ul> </section> <section id=rc-96 > <h3 id=rc-96 >1.0.0-rc.96<a class=headerlink href="#rc-96" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>Fixes in CI pipeline</p> <li><p>jfjoch_broker: Remove PNG preview, no dependency on libpng</p> <li><p>jfjoch_writer: Fix UTC timestamp being generated wrong (mix between milli- and microseconds)</p> <li><p>jfjoch_viewer: Show data collection time in dataset tooltip</p> <li><p>jfjoch_viewer: Allow to choose the calibrant (presets for LaB6 and silver behenate)</p> <li><p>jfjoch_viewer: Auto foreground value</p> <li><p>Use external libjpeg-turbo and libtiff: simpler build stack, these are built and linked statically in automated Docker builds</p> <li><p>Remove OpenBLAS dependency</p> </ul> </section> <section id=rc-95 > <h3 id=rc-95 >1.0.0-rc.95<a class=headerlink href="#rc-95" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>Fixes in CI pipeline</p> <li><p>Add git-lfs to Rocky8 docker image</p> </ul> <p>Previous releases (91-94) had a wrong FPGA image upload to Gitlab release. This is now solved.</p> </section> <section id=rc-94 > <h3 id=rc-94 >1.0.0-rc.94<a class=headerlink href="#rc-94" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>FFTIndexer: Add limit on angles to avoid colinear vectors</p> <li><p>Docker images: Add 3D Qt</p> <li><p>Gitea: Fixes to the pipeline</p> </ul> </section> <section id=rc-93 > <h3 id=rc-93 >1.0.0-rc.93<a class=headerlink href="#rc-93" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>CI: Fixes to Gitlab based pipeline</p> <li><p>PCIe driver: Fix PCIe revision being hex number</p> </ul> </section> <section id=rc-92 > <h3 id=rc-92 >1.0.0-rc.92<a class=headerlink href="#rc-92" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix code that predicted Bragg reflections scattering back from the sample.</p> </ul> </section> <section id=rc-91 > <h3 id=rc-91 >1.0.0-rc.91<a class=headerlink href="#rc-91" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release introduces new features, which usually means these need more field testing before enough maturity. For production use we recommend waiting for a future bug-fix release.</p> <ul class=simple > <li><p>FPGA: Implement high pixel value threshold - pixels above the given value will be considered saturated</p> <li><p>jfjoch_broker: Spot finding and integration predictions are ported to a GPU</p> <li><p>jfjoch_broker: Estimate resolution</p> <li><p>jfjoch_broker: Lattice search</p> <li><p>jfjoch_broker: Many more improvements in image analysis</p> </ul> </section> <section id=rc-90 > <h3 id=rc-90 >1.0.0-rc.90<a class=headerlink href="#rc-90" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: for indexing min index spots for a viable cells can be changed via OpenAPI</p> <li><p>jfjoch_viewer: Optional auto-reanalyze images</p> <li><p>jfjoch_writer: Add option where no files at all are saved</p> <li><p>Documentation: improvements</p> </ul> </section> <section id=rc-89 > <h3 id=rc-89 >1.0.0-rc.89<a class=headerlink href="#rc-89" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix resolution estimation code</p> <li><p>jfjoch_broker: Fix Wilson B-factor calculation code</p> <li><p>jfjoch_viewer: Improve display of plots</p> <li><p>jfjoch_viewer: Fix segmentation fault</p> <li><p>jfjoch_viewer: Display missing metadata when using HTTP</p> <li><p>jfjoch_viewer: Fix bug when opening the same file twice</p> </ul> </section> <section id=rc-88 > <h3 id=rc-88 >1.0.0-rc.88<a class=headerlink href="#rc-88" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Add resolution estimation to the image information</p> <li><p>jfjoch_broker: Minor changes to resolution estimate routine</p> </ul> </section> <section id=rc-87 > <h3 id=rc-87 >1.0.0-rc.87<a class=headerlink href="#rc-87" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Display more image metadata (angle / exposure time)</p> <li><p>jfjoch_viewer: Improve I/sigma and B-factor plots</p> <li><p>jfjoch_broker: Estimate resolution based on visible spots</p> </ul> </section> <section id=rc-86 > <h3 id=rc-86 >1.0.0-rc.86<a class=headerlink href="#rc-86" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Update logic when initializing detector to make it a bit more resilient</p> <li><p>Gitea pipelines have nocuda option for all architectures</p> </ul> </section> <section id=rc-85 > <h3 id=rc-85 >1.0.0-rc.85<a class=headerlink href="#rc-85" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: When using online view, dataset info plots are not switched back to the first category for each image</p> <li><p>jfjoch_viewer: Handle spot count better in dataset info plots</p> <li><p>jfjoch_viewer: Highlight spots in ice ring resolutions in cyan, when detection is enabled</p> </ul> </section> <section id=rc-84 > <h3 id=rc-84 >1.0.0-rc.84<a class=headerlink href="#rc-84" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Write in log which detector is being initialized</p> <li><p>Changes to automated build system</p> </ul> </section> <section id=rc-83 > <h3 id=rc-83 >1.0.0-rc.83<a class=headerlink href="#rc-83" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Fix in generating preview image for signed data (wrong bit-width was assumed before)</p> <li><p>CI: Fix script to generate python client</p> </ul> </section> <section id=rc-82 > <h3 id=rc-82 >1.0.0-rc.82<a class=headerlink href="#rc-82" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Enable FFTW based indexing in viewer (very slow at the moment)</p> <li><p>Frontend: Minor fixes</p> <li><p>Build scripts: Minor fixes to FFTW</p> </ul> </section> <section id=rc-81 > <h3 id=rc-81 >1.0.0-rc.81<a class=headerlink href="#rc-81" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release introduces new features, which usually means these need more field testing before enough maturity. For production use we recommend waiting for a future bug-fix release.</p> <ul class=simple > <li><p>jfjoch_broker: Add option to detect ice rings, adjust width of ice ring and change of logic to exclude ice rings in indexing</p> <li><p>jfjoch_broker: Add FFTW based indexer for CPU only indexing</p> <li><p>jfjoch_broker: Enable saving X-ray fluorescence spectra</p> <li><p>jfjoch_writer: Write total spot count (before filtering)</p> <li><p>jfjoch_viewer: Add more information on source, sample, and buttom to show ice rings</p> <li><p>jfjoch_viewer: Enable data processing inside the viewer</p> </ul> <p>CI: Moving from Gitlab to Gitea at PSI</p> </section> <section id=rc-80 > <h3 id=rc-80 >1.0.0-rc.80<a class=headerlink href="#rc-80" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug when wrong value for a plot (NaN or infinity) would lead to a null in a plot, which cannot be parsed by viewer</p> </ul> </section> <section id=rc-79 > <h3 id=rc-79 >1.0.0-rc.79<a class=headerlink href="#rc-79" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Fix bug when loading new dataset was creating a cascade of signals leading to poor performance</p> <li><p>jfjoch_writer: Save nimages_per_trigger in detectorSpecific</p> </ul> </section> <section id=rc-78 > <h3 id=rc-78 >1.0.0-rc.78<a class=headerlink href="#rc-78" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Using a single event loop (reading images is not in dedicated thread anymore)</p> </ul> </section> <section id=rc-77 > <h3 id=rc-77 >1.0.0-rc.77<a class=headerlink href="#rc-77" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Display detector and dataset settings with tooltips</p> <li><p>jfjoch_viewer: Clean excessive HDF5 warnings</p> <li><p>jfjoch_viewer: Display unit cell</p> <li><p>jfjoch_extract_hkl: Write a tool to extract reflection intensity from a dataset</p> </ul> </section> <section id=rc-76 > <h3 id=rc-76 >1.0.0-rc.76<a class=headerlink href="#rc-76" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Increase predicted hkl to 100.0, use lighter math to exclude too-high resolution ones</p> <li><p>jfjoch_broker: Use standard deviation formula to find profile radius (not the one using median)</p> <li><p>jfjoch_writer: Save space group number (non-NXmx addition) in addition to name</p> <li><p>jfjoch_viewer: Fix the bug on reading space_group as string</p> <li><p>jfjoch_viewer: Add missing resolution labels on rings</p> <li><p>jfjoch_viewer: Remove Q value from the status bar</p> </ul> </section> <section id=rc-75 > <h3 id=rc-75 >1.0.0-rc.75<a class=headerlink href="#rc-75" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: EIGER2 missing minimum threshold - hardcoded to 2.7 keV for the time being</p> </ul> </section> <section id=rc-74 > <h3 id=rc-74 >1.0.0-rc.74<a class=headerlink href="#rc-74" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix for EIGER UDP port settings (vertical half of the module missing)</p> <li><p>jfjoch_broker: Detector settings were not applied for EIGER/DECTRIS detector when changed after initialization</p> </ul> </section> <section id=rc-73 > <h3 id=rc-73 >1.0.0-rc.73<a class=headerlink href="#rc-73" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Space group number treatment in OpenAPI was wrong, zero value is no longer allowed and no longer default</p> </ul> </section> <section id=rc-72 > <h3 id=rc-72 >1.0.0-rc.72<a class=headerlink href="#rc-72" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release introduces new features, which usually means these need more field testing before enough maturity. For production use we recommend waiting for a future bug-fix release.</p> <ul class=simple > <li><p>jfjoch_broker: Refactor of indexing and geometry refinement code</p> <li><p>jfjoch_broker: Handle space group/centering in refinement code</p> <li><p>jfjoch_broker: Replace mosaicity with profile radius: refining the former is difficult with still images</p> <li><p>jfjoch_broker: There is no longer 0.5 pxl offset for spots-to-reciprocal-space conversion</p> <li><p>jfjoch_writer: Experimental saving of reflections</p> <li><p>jfjoch_writer: Save space group name as string</p> <li><p>jfjoch_viewer: Add profile radius and B-factor</p> <li><p>jfjoch_viewer: Show 4 digits for wavelength</p> <li><p>jfjoch_viewer: Match rings between calibrant and observation (will handle missing/wrong rings)</p> <li><p>FPGA: Use UDP destination port to distinguish between detector modules and data streams</p> <li><p>FPGA: Add experimental PTP core (PTP over L2, only Sync/Follow_up)</p> <li><p>FPGA driver: Fix for Linux kernel 6.12+ (thanks to Tim Gruene)</p> </ul> </section> <section id=rc-71 > <h3 id=rc-71 >1.0.0-rc.71<a class=headerlink href="#rc-71" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Remove resolution estimation via machine learning</p> <li><p>jfjoch_broker: Harmonize code to analyze spot finding results (indexing/refinement/integration) between CPU and FPGA receivers</p> <li><p>jfjoch_viewer: Fix error when HDF5 files with indexing results couldnt be loaded on a machine without GPU</p> </ul> </section> <section id=rc-70 > <h3 id=rc-70 >1.0.0-rc.70<a class=headerlink href="#rc-70" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release introduces new features (geometry refinement), which usually means these need more field testing before enough maturity. For production use we recommend waiting for a future bug-fix release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug when PSI EIGER frame time was not set properly at the start of the measurement</p> <li><p>jfjoch_broker: Fix PONI rot2 angle rotating detector in a wrong direction (PyFAI convention is for this angle to rotate detector downwards)</p> <li><p>jfjoch_broker: Enable geometry refinement - first try (work in progress)</p> <li><p>jfjoch_viewer: Fix deadlock when opening HTTP connections</p> <li><p>jfjoch_viewer: Display rings as ellipses with detector tilt</p> <li><p>jfjoch_viewer: Add button to calibrate detector geometry based on LaB6 image</p> <li><p>jfjoch_writer: Save detector tilt angles (rot1, rot2, rot3)</p> <li><p>Add Google Ceres a non-linear least-square optimization library to Jungfraujoch</p> <li><p>Add experimental detector calibration routines (for LaB6)</p> <li><p>Improve documentation on the ZeroMQ writer notification socket and detector geometry</p> </ul> </section> <section id=rc-69 > <h3 id=rc-69 >1.0.0-rc.69<a class=headerlink href="#rc-69" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Metadata can be modified for an open dataset (no option to save)</p> <li><p>jfjoch_viewer: Refactor multiple issues in the viewer regarding image reading code to allow for further developments</p> <li><p>jfjoch_viewer: Resolution rings not enabled by default</p> <li><p>jfjoch_broker: Handle properly PONI rotations in dataset settings though still not updated properly in the HDF5 file</p> </ul> </section> <section id=rc-68 > <h3 id=rc-68 >1.0.0-rc.68<a class=headerlink href="#rc-68" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Temperature threshold can be changed for JUNGFRAU detector</p> <li><p>jfjoch_broker: Default detector settings can be configured for each detector separately</p> <li><p>jfjoch_broker: Refactor spot filtering code, max spot count can be modified for dataset settings</p> <li><p>jfjoch_broker: Refactor indexing refinement, make it the same for both FFBIDX and FFT indexing</p> <li><p>jfjoch_broker: Reference unit cell will be taken into account for FFT indexing to filter</p> <li><p>jfjoch_broker: Review PONI rotation angles and azimuthal angle conventions along with PyFAI</p> </ul> </section> <section id=rc-67 > <h3 id=rc-67 >1.0.0-rc.67<a class=headerlink href="#rc-67" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Enable SSL</p> <li><p>jfjoch_broker: Wilson B-factor only provided is fit is relatively OK (R^2 &gt; 0.3); this will be refined much more in the future</p> </ul> </section> <section id=rc-66 > <h3 id=rc-66 >1.0.0-rc.66<a class=headerlink href="#rc-66" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Indexers operate as thread pool, which is operating</p> <li><p>jfjoch_viewer: Increase interval between loading images + fix too many verbose messages</p> </ul> </section> <section id=rc-65 > <h3 id=rc-65 >1.0.0-rc.65<a class=headerlink href="#rc-65" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Print information regarding used image pushers</p> <li><p>jfjoch_viewer: Allow syncing with Jungfraujoch server</p> <li><p>OpenAPI: Clarify licensing terms in the file</p> </ul> </section> <section id=rc-64 > <h3 id=rc-64 >1.0.0-rc.64<a class=headerlink href="#rc-64" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix issue in receiver light with very long preparation time for threads</p> <li><p>jfjoch_broker: Add verbose option</p> <li><p>jfjoch_broker: Dont trigger pedestal if critical settings are not changed when loading detector settings</p> <li><p>jfjoch_broker: Detector left in busy state when detector settings were improper</p> <li><p>jfjoch_viewer: Modify DBus interface to avoid loading same file and image 0 multiple times</p> <li><p>jfjoch_lite_perf_test: Add verbose option</p> </ul> </section> <section id=rc-63 > <h3 id=rc-63 >1.0.0-rc.63<a class=headerlink href="#rc-63" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Save NX/NY for grid scan result</p> <li><p>jfjoch_broker: Add processing time to CBOR output and plot</p> <li><p>jfjoch_writer: Add processing time to data file</p> </ul> </section> <section id=rc-62 > <h3 id=rc-62 >1.0.0-rc.62<a class=headerlink href="#rc-62" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug where low resolution spots were not counted properly</p> <li><p>jfjoch_broker: Spot count is provided prior to filtering of spots to max_spot_count</p> <li><p>jfjoch_broker: Add more spot count information to CBOR</p> <li><p>jfjoch_viewer: Fix issue with ROI drawing resulting in multiple overlapping rectangles</p> </ul> </section> <section id=rc-61 > <h3 id=rc-61 >1.0.0-rc.61<a class=headerlink href="#rc-61" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug where FFT indexing could result in a very short or even zero length vector</p> <li><p>jfjoch_broker: Ice ring and indexed spot count enabled as plots and saved in grid scan results</p> <li><p>jfjoch_broker: High resolution limit for low res. spot counting can be adjusted</p> </ul> </section> <section id=rc-60 > <h3 id=rc-60 >1.0.0-rc.60<a class=headerlink href="#rc-60" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug when the neural network inference client was busy and this status was never released</p> <li><p>jfjoch_broker: Revert the indexing threshold with distance from integer for Miller indices</p> <li><p>jfjoch_broker: Fix bug in scattering vector calculation, resulting in indexing not working outside 1.0 A X-ray wavelength</p> </ul> </section> <section id=rc-59 > <h3 id=rc-59 >1.0.0-rc.59<a class=headerlink href="#rc-59" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug when broker was waiting for notification message before sending end message, resulting in deadlock.</p> <li><p>jfjoch_writer: Verbose option for debugging.</p> </ul> </section> <section id=rc-58 > <h3 id=rc-58 >1.0.0-rc.58<a class=headerlink href="#rc-58" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Fix memory leak</p> <li><p>jfjoch_writer: Add detector_number/serial_number to master file</p> </ul> </section> <section id=rc-57 > <h3 id=rc-57 >1.0.0-rc.57<a class=headerlink href="#rc-57" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fix bug when enabling ML resolution estimation was not possible</p> <li><p>jfjoch_viewer: “Movie” mode</p> </ul> </section> <section id=rc-56 > <h3 id=rc-56 >1.0.0-rc.56<a class=headerlink href="#rc-56" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fixing more bugs related to neural network inference for ML estimation</p> </ul> </section> <section id=rc-55 > <h3 id=rc-55 >1.0.0-rc.55<a class=headerlink href="#rc-55" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Fixing minor bugs related to neural network inference for ML estimation</p> </ul> </section> <section id=rc-54 > <h3 id=rc-54 >1.0.0-rc.54<a class=headerlink href="#rc-54" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Indexing with AUTO settings (FFBIDX if unit cell provided; FFT if not)</p> <li><p>jfjoch_broker: Dont remove shared memory area when deactivating detector</p> <li><p>jfjoch_writer: Save writer release</p> <li><p>jfjoch_viewer: Increase time for the messages in the status bar</p> </ul> </section> <section id=rc-53 > <h3 id=rc-53 >1.0.0-rc.53<a class=headerlink href="#rc-53" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>PCIe driver: Imperfect solution for RHEL 9.5+ changes</p> <li><p>jfjoch_writer: Fix to angle containers for AutoProc compatibility</p> <li><p>jfjoch_fpga_test: Use consecutive number for devices, not interleaved</p> </ul> </section> <section id=rc-52 > <h3 id=rc-52 >1.0.0-rc.52<a class=headerlink href="#rc-52" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: Use warmer colors to distinguish from AareGUI</p> <li><p>jfjoch_viewer: Minor adjustments to DBus setting image number</p> <li><p>jfjoch_broker: Fix in low resolution spot count plotting</p> </ul> </section> <section id=rc-51 > <h3 id=rc-51 >1.0.0-rc.51<a class=headerlink href="#rc-51" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Send preview in PNG format</p> <li><p>jfjoch_broker: Provide count of spots in 50.0 - 5.0 A range</p> <li><p>jfjoch_broker: Provide ML resolution estimation in scan result</p> <li><p>jfjoch_broker: Allow removing beam center in web preview</p> </ul> </section> <section id=rc-50 > <h3 id=rc-50 >1.0.0-rc.50<a class=headerlink href="#rc-50" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>The release fixes some of many bugs introduced in recent releases</p> <li><p>jfjoch_viewer: display predictions for indexed cells</p> </ul> </section> <section id=rc-49 > <h3 id=rc-49 >1.0.0-rc.49<a class=headerlink href="#rc-49" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Handle sample temperature (K) and ring current (mA) to metadata</p> <li><p>jfjoch_writer: For angle containers in NXmx add _end dataset, sample temp. and ring current</p> </ul> </section> <section id=rc-48 > <h3 id=rc-48 >1.0.0-rc.48<a class=headerlink href="#rc-48" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: fix the bug when a unit cell was not exported for a scan result.</p> </ul> </section> <section id=rc-47 > <h3 id=rc-47 >1.0.0-rc.47<a class=headerlink href="#rc-47" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: fix dbus service path</p> <li><p>jfjoch_writer: fix CBF/TIFF writing</p> </ul> </section> <section id=rc-46 > <h3 id=rc-46 >1.0.0-rc.46<a class=headerlink href="#rc-46" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_viewer: remove dependency on image analysis</p> </ul> </section> <section id=rc-45 > <h3 id=rc-45 >1.0.0-rc.45<a class=headerlink href="#rc-45" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Detector list returns pixel size (mm)</p> </ul> </section> <section id=rc-44 > <h3 id=rc-44 >1.0.0-rc.44<a class=headerlink href="#rc-44" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: more general definition of scan result export</p> </ul> <p>Braking changes:</p> <ul class=simple > <li><p>It removes additions to OpenAPI from 1.0.0-rc.43</p> <li><p>It makes changes to the “unit_cell” definition in OpenAPI specs. It might be harmless in some languages and may result in errors in other implementations.</p> </ul> </section> <section id=rc-43 > <h3 id=rc-43 >1.0.0-rc.43<a class=headerlink href="#rc-43" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Export grid scan results into a single data structure</p> </ul> </section> <section id=rc-42 > <h3 id=rc-42 >1.0.0-rc.42<a class=headerlink href="#rc-42" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release.</p> <ul class=simple > <li><p>jfjoch_broker: Add pixel_sum to CBOR output.</p> <li><p>jfjoch_broker: Changes to sigma estimation in QuickIntegrate routine</p> <li><p>jfjoch_writer: Save pixel_sum</p> </ul> </section> <section id=rc-41 > <h3 id=rc-41 >1.0.0-rc.41<a class=headerlink href="#rc-41" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release includes multiple new features, it should not be used in production at the moment.</p> <ul class=simple > <li><p>jfjoch_broker: Estimate B-factor, mosaicity to evaluate crystal diffraction</p> <li><p>jfjoch_broker: Export GPU count via OpenAPI</p> <li><p>jfjoch_broker: Enable 2D azimuthal integration and PONI rotations for detector</p> <li><p>FPGA: Increase the number of integration bins to 2048</p> </ul> </section> <section id=rc-40 > <h3 id=rc-40 >1.0.0-rc.40<a class=headerlink href="#rc-40" title="Link to this heading"></a></h3> <p>This is an UNSTABLE release. This release includes multiple new features, it should not be used in production at the moment.</p> <ul class=simple > <li><p>jfjoch_broker: Jungfraujoch supports grid scan metadata, including dedicated plotting schemes and NXmx structures</p> <li><p>jfjoch_broker: Improve metadata for rotation data collection</p> <li><p>jfjoch_broker: Better handling of plotting</p> <li><p>jfjoch_broker: FFT based indexing</p> <li><p>jfjoch_broker: Integration, first try, results not saved at the moment</p> <li><p>jfjoch_broker: Internal improvements in image handling</p> <li><p>jfjoch_writer: Multiple adjustments adapt to changes in this release for new features</p> <li><p>jfjoch_writer: New state management model to improve clarity of error reporting</p> <li><p>jfjoch_viewer: Remote control via DBus</p> <li><p>Frontend: Multiple adjustments for new features</p> <li><p>Frontend: Grid scan plots</p> </ul> <p>WARNING! OpenAPI contains breaking changes in regard to plotting results, so care has to be taken.</p> </section> <section id=rc-39 > <h3 id=rc-39 >1.0.0-rc.39<a class=headerlink href="#rc-39" title="Link to this heading"></a></h3> <ul class=simple > <li><p>FPGA: Bugfix for pixel masked for data analysis if summation was on</p> <li><p>jfjoch_viewer: Fix segmentation fault when cursor was outside of image</p> </ul> </section> <section id=rc-38 > <h3 id=rc-38 >1.0.0-rc.38<a class=headerlink href="#rc-38" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: Neural net model is not linked with C++ code due to deployment issues, it is rather distributed as python code, connected via RES</p> <li><p>jfjoch_broker: Neural net model can use all 4 quadrants of the detector</p> <li><p>jfjoch_broker: For EIGER image time can be provided through /start</p> <li><p>jfjoch_viewer: Add image list option</p> <li><p>jfjoch_viewer: Drawing circular ROIs with shift</p> <li><p>jfjoch_viewer: Enable image summation</p> <li><p>jfjoch_viewer: Image reader is significantly reworked, hopefully without affecting the viewer</p> </ul> </section> <section id=rc-37 > <h3 id=rc-37 >1.0.0-rc.37<a class=headerlink href="#rc-37" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: Make locking rules more flexible</p> <li><p>jfjoch_broker: Load mask via SIMPLON interface for DECTRIS detectors</p> <li><p>jfjoch_viewer: Add status bar</p> </ul> </section> <section id=rc-36 > <h3 id=rc-36 >1.0.0-rc.36<a class=headerlink href="#rc-36" title="Link to this heading"></a></h3> <p>This is UNSTABLE release. Wait for new version to use in a production environment.</p> <ul class=simple > <li><p>jfjoch_broker: Support for Jungfraujoch Lite is enabled - software-based receiver for DECTRIS detectors (required a lot of refactoring, potentially leading to unstable code)</p> <li><p>jfjoch_broker: Enable Resonet support (ML-based diffraction resolution estimation)</p> <li><p>jfjoch_broker: Fix error in compression, where bitshuffle/LZ4 and bitshuffle/Zstd HDF5 headers were wrongly generated for 8-bit and 32-bit data</p> <li><p>jfjoch_writer: Increase buffering to 1000 images in the receiver</p> <li><p>jfjoch_writer: Images can be written as CBF or TIFF in addition to HDF5</p> </ul> </section> <section id=rc-35 > <h3 id=rc-35 >1.0.0-rc.35<a class=headerlink href="#rc-35" title="Link to this heading"></a></h3> <p>This is UNSTABLE release, not properly tested. Wait for new version for using production.</p> <ul class=simple > <li><p>jfjoch_broker: If module is delayed by more than 50 frames versus other modules, it will be ignored and receiver is not waiting.</p> <li><p>jfjoch_writer: Save EIGER energy threshold</p> <li><p>jfjoch_writer: Add <code class="docutils literal notranslate"><span class=pre >/entry/sample/goniometer</span></code> for compatibility with <code class="docutils literal notranslate"><span class=pre >eiger2cbf</span></code> program</p> </ul> </section> <section id=rc-34 > <h3 id=rc-34 >1.0.0-rc.34<a class=headerlink href="#rc-34" title="Link to this heading"></a></h3> <p>This is UNSTABLE release - introducing new features, but not properly tested. Wait for new version for using production.</p> <ul class=simple > <li><p>jfjoch_broker: More consistency for file format definition (breaking change in API from 1.0.0-rc.31 for file writer settings)</p> <li><p>jfjoch_broker: For storage cells mask is logical sum of detector bad pixels for all storage cells</p> <li><p>jfjoch_broker: Handle situation when detector doesnt want to gracefully stop (to be tested)</p> <li><p>jfjoch_broker: Center-of-mass position and mean for ROI is added to available plots</p> <li><p>jfjoch_viewer: Can extract data analysis results from “legacy” format</p> <li><p>jfjoch_viewer: Display dataset name</p> <li><p>FPGA: Pixel mask is used for data analysis part even if it is not applied to pixels</p> <li><p>FPGA: Add pixel sum to module statistics</p> <li><p>FPGA: ROI number is reduced to 16, but pixel can belong to every defined ROI</p> <li><p>FPGA: Spot finder is back to full dynamic range (24-bit)</p> <li><p>FPGA: More debug features for internal FIFOs</p> </ul> <p>Known issues:</p> <ul class=simple > <li><p>ROI count flag was added to firmware. For the time being the flag will be wrongly set to 10 due to mismatch of FPGA build scripts.</p> <li><p>EIGER data acquisition has an issue that is currently debugged</p> </ul> </section> <section id=rc-33 > <h3 id=rc-33 >1.0.0-rc.33<a class=headerlink href="#rc-33" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: Fix issue with EIGER settings being loaded improperly</p> </ul> </section> <section id=rc-32 > <h3 id=rc-32 >1.0.0-rc.32<a class=headerlink href="#rc-32" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: Refactor code for azimuthal integration for further improvements</p> <li><p>jfjoch_broker: Minor fix for EIGER (trim energies are manually set for E9M, to be fixed properly later)</p> <li><p>jfjoch_writer: Fix too much verbose information</p> <li><p>FPGA: Minor fixes to spot finder (enable two-pass operation and limit number range to int20)</p> </ul> </section> <section id=rc-31 > <h3 id=rc-31 >1.0.0-rc.31<a class=headerlink href="#rc-31" title="Link to this heading"></a></h3> <p>This is UNSTABLE release - introducing many features, but still needs more testing. Expecting soon to put bugfix release.</p> <ul class=simple > <li><p>jfjoch_writer: Allow to enable overwriting existing files (not enabled by default)</p> <li><p>jfjoch_writer: Add new HDF5 master file format, which uses HDF5 virtual data sets and links processing results to data files (not enabled by default)</p> <li><p>jfjoch_viewer: Image viewer work early test version</p> <li><p>jfjoch_broker: Fixes to counting packets per dataset/image</p> <li><p>jfjoch_broker: Image buffer is accessible for outside to check images</p> <li><p>jfjoch_broker: error/saturated pixels and dedicated ROI “beam” can be tracked online</p> <li><p>jfjoch_broker: Fix bug in handling pedestal G1/G2 count time for JUNGFRAU</p> <li><p>jfjoch_broker: Fix bug in applying pixel mask interfering with pedestal calculation</p> <li><p>jfjoch_broker: Fix bug in EIGER initializing</p> <li><p>jfjoch_broker: Save maximum pixel value to HDF5 file and export as Web plot</p> <li><p>PCIe driver: Add PCIe link speed and width</p> <li><p>FPGA: Improve counting error/saturated/min/max pixels</p> <li><p>FPGA: Spot finder is gradual column-wise (15 columns up/down) and fixed row-wise (32 pixel boxes); previously it was fixed both column- and row-wise with 32x32 pixel areas</p> <li><p>FPGA: Require Vivado 2022.2</p> </ul> <p>Warning: There are breaking changes to HDF5 file format, renaming entries regarding image storage cell number and image collection efficiency.</p> </section> <section id=rc-30 > <h3 id=rc-30 >1.0.0-rc.30<a class=headerlink href="#rc-30" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_writer: replace non-blocking with blocking operation on internal queues - less likely to “loose” images within the writer</p> </ul> </section> <section id=rc-29 > <h3 id=rc-29 >1.0.0-rc.29<a class=headerlink href="#rc-29" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: refactor logic regarding frame time and count time for more flexibility for EIGER and JUNGFRAU</p> <li><p>jfjoch_broker: readout time for EIGER is 3 us and JUNGFRAU is 20 us, this can be changed in input file</p> <li><p>jfjoch_broker: OpenAPI interface includes more ways to provide information on the status (error/warning/info)</p> <li><p>jfjoch_broker: ROIs handling via OpenAPI and frontend is more user friendly</p> </ul> <p>Warning - two breaking changes to OpenAPI:</p> <ul class=simple > <li><p>Handling of ROIs is through <code class="docutils literal notranslate"><span class=pre >/config/roi</span></code> path only for both circle and box ROIs, path in <code class="docutils literal notranslate"><span class=pre >/roi</span></code> are no longer accessible</p> <li><p><code class="docutils literal notranslate"><span class=pre >broker_status</span></code> structure introduced in 1.0.0-rc.28 has member <code class="docutils literal notranslate"><span class=pre >message</span></code> and not <code class="docutils literal notranslate"><span class=pre >error_message</span></code> to allow handling info/warning messages as well</p> </ul> </section> <section id=rc-28 > <h3 id=rc-28 >1.0.0-rc.28<a class=headerlink href="#rc-28" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: save error message for initialization and data collection and provide these with OpenAPI</p> <li><p>jfjoch_broker: fixed issue when in error state, response to /wait_till_done was not complaint to OpenAPI specs</p> <li><p>jfjoch_test: remove header that failed when CUDA is absent during compilation</p> <li><p>frontend: add soft trigger button in data collection tab</p> <li><p>frontend: show error message when in error state</p> <li><p>CMake: add option to force compilation without CUDA (-DJFJOCH_USE_CUDA=OFF)</p> </ul> </section> <section id=rc-27 > <h3 id=rc-27 >1.0.0-rc.27<a class=headerlink href="#rc-27" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: add option to select electron source in instrument metadata, adapt wavelength calculation</p> <li><p>jfjoch_broker: update pistache web server version</p> <li><p>jfjoch_writer: minor changes to republish logic</p> <li><p>Improvements to documentation</p> </ul> </section> <section id=rc-26 > <h3 id=rc-26 >1.0.0-rc.26<a class=headerlink href="#rc-26" title="Link to this heading"></a></h3> <ul class=simple > <li><p>jfjoch_broker: implement ZeroMQ stream for image metadata information</p> <li><p>jfjoch_broker: refactor ZeroMQ stream for preview: start/end messages always sent</p> <li><p>jfjoch_broker: add crystal lattice plots</p> <li><p>jfjoch_broker: remove empty bins from the plots</p> <li><p>jfjoch_broker: Fix bugs in ModuleSummation and MXAnalyzer for CPU “long” summation</p> <li><p>jfjoch_broker: Fix bug when mean background estimation / indexing rate where affected by previous experiment</p> <li><p>jfjoch_writer: fix missing “-w” parameter</p> <li><p>jfjoch_writer: temporary files have “.tmp” suffix</p> <li><p>jfjoch_writer: refactor logic for watermarks</p> <li><p>jfjoch_writer: report on internal FIFO utilization</p> <li><p>jfjoch_writer: clean-up naming for azimuthal integration and background estimate</p> <li><p>jfjoch_writer: write final background estimate and indexing rate in the master file</p> <li><p>tools/: remove unnecessary tools, make naming consistent</p> <li><p>CBOR: Add indexing rate and background estimate to end message</p> <li><p>CBOR: Clean-up documentation</p> </ul> </section> <section id=rc-25 > <h3 id=rc-25 >1.0.0-rc.25<a class=headerlink href="#rc-25" title="Link to this heading"></a></h3> <ul class=simple > <li><p>Updates to documentation</p> <li><p>License set to GPLv3 / OHL-S</p> <li><p>Fix bug in DiffractionExperiment::GetDefaultPlotBinning() - resulting in division by 0 if image time longer than 500ms</p> <li><p>Add information on JUNGFRAU conversion and geometry transformation to CBOR and HDF5</p> </ul> </section> <section id=rc-24 > <h3 id=rc-24 >1.0.0-rc.24<a class=headerlink href="#rc-24" title="Link to this heading"></a></h3> <p>New FPGA functionality:</p> <ul class=simple > <li><p>EIGER supports 8, 16 and 32-bit data input (for 8-bit mode at half performance; for 32-bit “real” depth is 23-bit + 1-bit signed)</p> <li><p>Output possible to 8, 16 and 32-bit data</p> <li><p>Threshold is applied before summation</p> <li><p>Pixel mask can be applied on FPGA</p> <li><p>Mark pixels with ADC content = 0 as bad pixels</p> <li><p>FPGA stores semantic version information (access via /sys/class/misc/jfjoch…/version)</p> </ul> <p>New software functionality:</p> <ul class=simple > <li><p>Long summation (above 256 frames) done on CPU</p> <li><p>Mechanism to save arbitrary data to HDF5 file</p> <li><p>ZeroMQ preview has option to send start message</p> <li><p>Rework pixel mask + add statistics displayed in web interface</p> </ul> <p>Bug fixes:</p> <ul class=simple > <li><p>Web frontend: Update preview image automatically during data acquisition</p> <li><p>jfjoch_broker: Error handling if CUDA driver is not installed</p> <li><p>jfjoch_broker: Correctly update progress during pedestal</p> <li><p>jfjoch_broker: Provide proper error when uploaded file is not a proper TIFF</p> <li><p>jfjoch_action_test: enable HLS simulation</p> </ul> <p>Documentation improvement and placement in a dedicated directory</p> </section> </section> </section> </article> </div> </div> </main> </div> <footer class=md-footer > <div class=md-footer-nav > <nav class="md-footer-nav__inner md-grid"> <a href=NAMING.html title=Naming class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel=prev > <div class="md-flex__cell md-flex__cell--shrink"> <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> </div> <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> <span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Previous" </span> Naming </span> </div> </a> <a href=JFJOCH_BROKER.html title=jfjoch_broker class="md-flex md-footer-nav__link md-footer-nav__link--next" rel=next > <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"><span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Next" </span> jfjoch_broker </span> </div> <div class="md-flex__cell md-flex__cell--shrink"><i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright > <div class=md-footer-copyright__highlight > &#169; Copyright 2024, Paul Scherrer Institute. </div> Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 8.1.3. and <a href="https://github.com/bashtage/sphinx-material/">Material for Sphinx</a> </div> </div> </div> </footer> <script src="_static/javascripts/application.js"></script> <script>app.initialize({version: "1.0.4", url: {base: ".."}})</script>