API: serial live analysis is on the DECTRIS stream, not the FPGA workflow

The descriptions of rugnux_settings and rugnux_live_stills still said serial collections were
those converted by the FPGA. They now say what is true: live mode acts on collections from a
DECTRIS detector, rotation by rugnux and serial on the GPU after a pre-pass, and leaves the FPGA
workflow alone. Text only; the schema does not change. Generated C++ model, Python client docs,
TypeScript client and Redoc page regenerated with openapi-generator 7.20.0 from the same YAML.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
leonarski_fandClaude Opus 5.5 committed 2026-11-07 14:52:23 +01:00
1 parent 8bad85f9f4
commit a6050681dc
8 files changed
+30 -27

No files matched your search

+2 -2
View File
@@ -12,7 +12,7 @@
/*
* Rugnux_live_stills.h
*
* Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
* Serial frames analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
*/
#ifndef Rugnux_live_stills_H_
@@ -26,7 +26,7 @@ namespace org::openapitools::server::model
{
/// <summary>
/// Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
/// Serial frames analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
/// </summary>
class Rugnux_live_stills
{
+3 -3
View File
@@ -12,7 +12,7 @@
/*
* Rugnux_settings.h
*
* Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (&#x60;stills&#x60; in &#x60;/rugnux/status&#x60;).
* Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (&#x60;stills&#x60; in &#x60;/rugnux/status&#x60;), and merged as they go. Collections in the FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
*/
#ifndef Rugnux_settings_H_
@@ -25,7 +25,7 @@ namespace org::openapitools::server::model
{
/// <summary>
/// Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (&#x60;stills&#x60; in &#x60;/rugnux/status&#x60;).
/// Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (&#x60;stills&#x60; in &#x60;/rugnux/status&#x60;), and merged as they go. Collections in the FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
/// </summary>
class Rugnux_settings
{
@@ -58,7 +58,7 @@ public:
/// Rugnux_settings members
/// <summary>
/// Process DECTRIS rotation collections with rugnux live, and FPGA serial collections on the GPU after a pre-pass
/// Process DECTRIS collections with rugnux live; rotation by rugnux, serial on the GPU after a pre-pass
/// </summary>
bool isEnable() const;
void setEnable(bool const value);
+7 -6
View File
@@ -2775,15 +2775,16 @@ components:
rugnux_settings:
type: object
description: |
Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux
inside the broker while they arrive, and the merged result is sent to the writer. Serial
collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their
first images that decides the beam centre, distance and mask (`stills` in `/rugnux/status`).
Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by
rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial
collections are analysed on the GPU after a pre-pass on their first images that decides the beam
centre, distance and mask (`stills` in `/rugnux/status`), and merged as they go. Collections in the
FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
properties:
enable:
type: boolean
default: false
description: Process DECTRIS rotation collections with rugnux live, and FPGA serial collections on the GPU after a pre-pass
description: Process DECTRIS collections with rugnux live; rotation by rugnux, serial on the GPU after a pre-pass
reserved_cpus:
type: integer
format: int64
@@ -3044,7 +3045,7 @@ components:
rugnux_live_stills:
type: object
description: |
Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam
Serial frames analysed on the GPU: the pre-pass on the first images (the beam
centre, distance and mask the whole collection is analysed with), and the analysis since.
required:
- prepass
+2 -2
View File
@@ -844,7 +844,7 @@ Changing detector will set detector to <code>Inactive</code> state and will requ
</div></div><div><h3 class="sc-fMMURN egoxtT">Responses</h3><div><button class="sc-kzqdkY jgSwKD"><svg class="sc-cwHptR hWEnWx" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-dSIIpw bpEYcE">200<!-- --> </strong><div class="sc-eeDRCY sc-eBMEME sc-dCFHLb gTGgei kekOtA kCaLQd"><p>Everything OK</p>
</div></button></div></div></div><div class="sc-iGgWBj sc-gsFSXq ibAZSi eDeKjd"><div class="sc-ejfMa-d bNUPQg"><button class="sc-EgOXT cFEcOl"><span type="get" class="sc-eZYNyq qGfV http-verb get">get</span><span class="sc-iEXKAA gUNSDu">/config/select_detector</span><svg class="sc-cwHptR iVFMLx" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-dlWCHZ kWacYr"><div class="sc-hHOBiw cndTNO"><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Test Jungfraujoch system</p>
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/config/select_detector</div></div></div></div></div><div><h3 class="sc-kpDqfm eBBgSB"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLTC dHowgL" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jifq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jifq_0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jifq_0" aria-labelledby="tab_R_jifq_0"><div><div class="sc-bbSZdi gCVTxk"><span class="sc-fjvvzt jWReSk">Content type</span><div class="sc-JrDLc iTKzPJ">application/json</div></div><div class="sc-uVWWZ gQROPU"><div class="sc-esYiGF dWQNJI"><div class="sc-koXPp efufqz"><button><div class="sc-fhzFiK kwZDms">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-eeDRCY gTGgei sc-fXSgeo bnrBiz"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"detectors"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"id"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"description"</span>: <span class="token string">&quot;JUNGFRAU 4 Mpixel&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"serial_number"</span>: <span class="token string">&quot;JF17T16V01&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"base_ipv4_addr"</span>: <span class="token string">&quot;10.10.10.1&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"udp_interface_count"</span>: <span class="token number">2</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"nmodules"</span>: <span class="token number">18</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"width"</span>: <span class="token number">2068</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"height"</span>: <span class="token number">2164</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"pixel_size_mm"</span>: <span class="token number">0.075</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"readout_time_ns"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"min_frame_time_ns"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"min_count_time_ns"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"type"</span>: <span class="token string">&quot;EIGER&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"current_id"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1config~1rugnux/put" data-section-id="/paths/~1config~1rugnux/put" class="sc-dcJsrY cqVkUp"><div class="sc-kAyceB hBQWIZ"><div class="sc-fqkvVR oJKYx"><h2 class="sc-jXbUNg fWnwAh"><a class="sc-jlZhew kbdRLs" href="#/paths/~1config~1rugnux/put" aria-label="/paths/~1config~1rugnux/put"></a>Change rugnux live mode settings<!-- --> </h2><div class="sc-bVVIoq icSMtY"><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"><p>This can only be done when detector is <code>Idle</code>, <code>Error</Line truncated
</div></div><h5 class="sc-dAlyuH jbQuod">Request Body schema: <span class="sc-cWSHoV fzNksy">application/json</span></h5><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"></div><table class="sc-dAbbOL ccPhmY"><tbody><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="enable"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">enable</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">boolean</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">false</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Process DECTRIS rotation collections with rugnux live, and FPGA serial collections on the GPU after a pre-pass</p>
</div></div><h5 class="sc-dAlyuH jbQuod">Request Body schema: <span class="sc-cWSHoV fzNksy">application/json</span></h5><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"></div><table class="sc-dAbbOL ccPhmY"><tbody><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="enable"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">enable</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">boolean</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">false</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Process DECTRIS collections with rugnux live; rotation by rugnux, serial on the GPU after a pre-pass</p>
</div></div></div></td></tr><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="reserved_cpus"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">reserved_cpus</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">integer</span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr"> <!-- -->&lt;<!-- -->int64<!-- -->&gt;<!-- --> </span><span> <span class="sc-Nxspf sc-fxwrCY cXxAXt eMVOei"> <!-- -->&gt;= 0<!-- --> </span></span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">4</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>CPU threads left to the receiver and the image pusher while rugnux runs</p>
</div></div></div></td></tr><tr class="last "><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="deadline_s"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">deadline_s</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">number</span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr"> <!-- -->&lt;<!-- -->double<!-- -->&gt;<!-- --> </span><span> <span class="sc-Nxspf sc-fxwrCY cXxAXt eMVOei"> <!-- -->&gt;= 0<!-- --> </span></span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">60</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Fixed cutoff: this long after the last image the analysis is cut, and the collection ends
with what it has established (as <code>POST /cancel</code> after the last image does). 0 means no cutoff.</p>
@@ -1131,7 +1131,7 @@ then image might be replaced in the buffer between calling /images and /image.cb
</div></button></div></div></div><div class="sc-iGgWBj sc-gsFSXq ibAZSi eDeKjd"><div class="sc-ejfMa-d bNUPQg"><button class="sc-EgOXT cFEcOl"><span type="get" class="sc-eZYNyq qGfV http-verb get">get</span><span class="sc-iEXKAA gUNSDu">/version</span><svg class="sc-cwHptR iVFMLx" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-dlWCHZ kWacYr"><div class="sc-hHOBiw cndTNO"><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Test Jungfraujoch system</p>
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/version</div></div></div></div></div></div></div></div></div><div class="sc-dExYaf gZbfaQ"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).\nJungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.\nJungfraujoch uses FPGA boards to acquire data at high data rates.\n\n# License Clarification\n\nWhile this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply**\nwhen this file is used solely to generate OpenAPI clients or when implementing applications that\ninteract with the API. Generated client code and applications using this API definition are not\nsubject to the GPL license requirements and may be distributed under terms of your choosing.\n\nThis exception is similar in spirit to the Linux Kernel's approach to userspace API headers and\nthe GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that\nuser programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not\nderivative works of the kernel and are not subject to the terms of the GPL.\n\nThis exception is intended to allow wider use of this API specification without imposing GPL\nrequirements on applications that merely interact with the API, regardless of whether they\ncommunicate through network calls or other mechanisms.\n","version":"1.0.0-rc.184","contact":{"name":"Filip Leonarski (Paul Scherrer Institute)","email":"filip.leonarski@psi.ch"},"license":{"name":"GPL-3.0","url":"https://www.gnu.org/licenses/gpl-3.0.html"}},"servers":[{"url":"http://localhost:5232","description":"Test Jungfraujoch system"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Per-dataset secret. `/start` may carry one or more equivalent `tokens`; while the current\ndataset has any, the operations marked with this scheme require `Authorization: Bearer <token>`\nand answer 401 otherwise. A dataset started without `tokens` is not protected and the header is ignored.\n"}},"parameters":{"binning":{"in":"query","name":"binning","required":false,"schema":{"default":1,"type":"integer"},"description":"Binning of frames for the plot (0 = default binning)"},"experimental_coord":{"in":"query","name":"experimental_coord","required":false,"schema":{"type":"boolean","default":false},"description":"If measurement has goniometer axis defined, plot X-axis will represent rotation angle\nIf measurement has grid scan defined, plot X-axis and Y-axis will represent grid position, Z will be used as the final value\nFor still measurement the number is ignored\n"},"azint_unit":{"in":"query","name":"azint_unit","required":false,"schema":{"type":"string","enum":["Q_recipA","d_A","two_theta_deg"],"default":"Q_recipA"},"description":"Unit used for azim int.\n"},"fill_value":{"in":"query","name":"fill","required":false,"schema":{"type":"number","format":"float"},"description":"Fill value for elements that were missed during data collection\n"},"plot_type":{"in":"query","name":"type","required":true,"description":"Type of requested plot","schema":{"type":"string","enum":["bkg_estimate","spindle_blind_fraction","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","indexing_lattice_count","indexing_unit_cell_length","indexing_unit_cell_angle","profile_radius","mosaicity","b_factor","error_pixels","saturated_pixels","image_collection_efficiency","receiver_delay","receiver_free_send_buf","strong_pixels","roi_sum","roi_mean","roi_max_count","roi_pixels","roi_weighted_x","roi_weighted_y","packets_received","max_pixel_value","resolution_estimate","pixel_sum","processing_time","beam_center_x","beam_center_y","integrated_reflections","image_scale_factor","image_scale_cc","compression_ratio","ice_ring_score"]}},"roi":{"in":"query","name":"roi","required":false,"schema":{"type":"string","minLength":1},"description":"Name of ROI for which plot is requested"},"image_id":{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int64","default":-1,"minimum":-2},"description":"Image ID in the image buffer. Special values: -1 - last image in the buffer, -2: last indexed image in the buffer"},"saturation":{"in":"query","name":"saturation","required":false,"schema":{"type":"number","format":"float","minimum":-32767,"maximum":32767},"description":"Saturation value to set contrast in the preview image; if not provided, then autocontrast procedure is used"},"background":{"in":"query","name":"background","required":false,"schema":{"type":"number","format":"float","default":0,"minimum":-32767,"maximum":32767},"description":"Background value to set contrast in the preview image"},"show_spots":{"in":"query","name":"show_spots","schema":{"type":"boolean","default":true},"description":"Show spot finding results on the image"},"show_predictions":{"in":"query","name":"show_predictions","schema":Line truncated
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).\nJungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.\nJungfraujoch uses FPGA boards to acquire data at high data rates.\n\n# License Clarification\n\nWhile this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply**\nwhen this file is used solely to generate OpenAPI clients or when implementing applications that\ninteract with the API. Generated client code and applications using this API definition are not\nsubject to the GPL license requirements and may be distributed under terms of your choosing.\n\nThis exception is similar in spirit to the Linux Kernel's approach to userspace API headers and\nthe GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that\nuser programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not\nderivative works of the kernel and are not subject to the terms of the GPL.\n\nThis exception is intended to allow wider use of this API specification without imposing GPL\nrequirements on applications that merely interact with the API, regardless of whether they\ncommunicate through network calls or other mechanisms.\n","version":"1.0.0-rc.184","contact":{"name":"Filip Leonarski (Paul Scherrer Institute)","email":"filip.leonarski@psi.ch"},"license":{"name":"GPL-3.0","url":"https://www.gnu.org/licenses/gpl-3.0.html"}},"servers":[{"url":"http://localhost:5232","description":"Test Jungfraujoch system"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Per-dataset secret. `/start` may carry one or more equivalent `tokens`; while the current\ndataset has any, the operations marked with this scheme require `Authorization: Bearer <token>`\nand answer 401 otherwise. A dataset started without `tokens` is not protected and the header is ignored.\n"}},"parameters":{"binning":{"in":"query","name":"binning","required":false,"schema":{"default":1,"type":"integer"},"description":"Binning of frames for the plot (0 = default binning)"},"experimental_coord":{"in":"query","name":"experimental_coord","required":false,"schema":{"type":"boolean","default":false},"description":"If measurement has goniometer axis defined, plot X-axis will represent rotation angle\nIf measurement has grid scan defined, plot X-axis and Y-axis will represent grid position, Z will be used as the final value\nFor still measurement the number is ignored\n"},"azint_unit":{"in":"query","name":"azint_unit","required":false,"schema":{"type":"string","enum":["Q_recipA","d_A","two_theta_deg"],"default":"Q_recipA"},"description":"Unit used for azim int.\n"},"fill_value":{"in":"query","name":"fill","required":false,"schema":{"type":"number","format":"float"},"description":"Fill value for elements that were missed during data collection\n"},"plot_type":{"in":"query","name":"type","required":true,"description":"Type of requested plot","schema":{"type":"string","enum":["bkg_estimate","spindle_blind_fraction","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","indexing_lattice_count","indexing_unit_cell_length","indexing_unit_cell_angle","profile_radius","mosaicity","b_factor","error_pixels","saturated_pixels","image_collection_efficiency","receiver_delay","receiver_free_send_buf","strong_pixels","roi_sum","roi_mean","roi_max_count","roi_pixels","roi_weighted_x","roi_weighted_y","packets_received","max_pixel_value","resolution_estimate","pixel_sum","processing_time","beam_center_x","beam_center_y","integrated_reflections","image_scale_factor","image_scale_cc","compression_ratio","ice_ring_score"]}},"roi":{"in":"query","name":"roi","required":false,"schema":{"type":"string","minLength":1},"description":"Name of ROI for which plot is requested"},"image_id":{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int64","default":-1,"minimum":-2},"description":"Image ID in the image buffer. Special values: -1 - last image in the buffer, -2: last indexed image in the buffer"},"saturation":{"in":"query","name":"saturation","required":false,"schema":{"type":"number","format":"float","minimum":-32767,"maximum":32767},"description":"Saturation value to set contrast in the preview image; if not provided, then autocontrast procedure is used"},"background":{"in":"query","name":"background","required":false,"schema":{"type":"number","format":"float","default":0,"minimum":-32767,"maximum":32767},"description":"Background value to set contrast in the preview image"},"show_spots":{"in":"query","name":"show_spots","schema":{"type":"boolean","default":true},"description":"Show spot finding results on the image"},"show_predictions":{"in":"query","name":"show_predictions","schema":Line truncated
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
+1 -1
View File
@@ -1,6 +1,6 @@
# RugnuxLiveStills
Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
Serial frames analysed on the GPU: the pre-pass on the first images (the beam centre, distance and mask the whole collection is analysed with), and the analysis since.
## Properties
+2 -2
View File
@@ -1,12 +1,12 @@
# RugnuxSettings
Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (`stills` in `/rugnux/status`).
Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial collections are analysed on the GPU after a pre-pass on their first images that decides the beam centre, distance and mask (`stills` in `/rugnux/status`), and merged as they go. Collections in the FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**enable** | **bool** | Process DECTRIS rotation collections with rugnux live, and FPGA serial collections on the GPU after a pre-pass | [optional] [default to False]
**enable** | **bool** | Process DECTRIS collections with rugnux live; rotation by rugnux, serial on the GPU after a pre-pass | [optional] [default to False]
**reserved_cpus** | **int** | CPU threads left to the receiver and the image pusher while rugnux runs | [optional] [default to 4]
**deadline_s** | **float** | Fixed cutoff: this long after the last image the analysis is cut, and the collection ends with what it has established (as &#x60;POST /cancel&#x60; after the last image does). 0 means no cutoff. | [optional] [default to 60.0]
+7 -6
View File
@@ -1959,15 +1959,16 @@ export type jfjoch_settings = {
};
/**
* Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux
* inside the broker while they arrive, and the merged result is sent to the writer. Serial
* collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their
* first images that decides the beam centre, distance and mask (`stills` in `/rugnux/status`).
* Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by
* rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial
* collections are analysed on the GPU after a pre-pass on their first images that decides the beam
* centre, distance and mask (`stills` in `/rugnux/status`), and merged as they go. Collections in the
* FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
*
*/
export type rugnux_settings = {
/**
* Process DECTRIS rotation collections with rugnux live, and FPGA serial collections on the GPU after a pre-pass
* Process DECTRIS collections with rugnux live; rotation by rugnux, serial on the GPU after a pre-pass
*/
enable?: boolean;
/**
@@ -2187,7 +2188,7 @@ export type rugnux_live_blob = {
};
/**
* Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam
* Serial frames analysed on the GPU: the pre-pass on the first images (the beam
* centre, distance and mask the whole collection is analysed with), and the analysis since.
*
*/
+6 -5
View File
@@ -834,10 +834,11 @@ export const zBraggIntegrationSettings = z.object({
});
/**
* Rugnux live mode: rotation collections from a DECTRIS detector are processed by rugnux
* inside the broker while they arrive, and the merged result is sent to the writer. Serial
* collections converted by the FPGA (JUNGFRAU) are analysed on the GPU after a pre-pass on their
* first images that decides the beam centre, distance and mask (`stills` in `/rugnux/status`).
* Rugnux live mode, for collections from a DECTRIS detector: rotation collections are processed by
* rugnux inside the broker while they arrive, and the merged result is sent to the writer. Serial
* collections are analysed on the GPU after a pre-pass on their first images that decides the beam
* centre, distance and mask (`stills` in `/rugnux/status`), and merged as they go. Collections in the
* FPGA workflow (JUNGFRAU, PSI EIGER) are not affected.
*
*/
export const zRugnuxSettings = z.object({
@@ -941,7 +942,7 @@ export const zRugnuxLiveModel = z.object({
});
/**
* Serial frames converted by the FPGA and analysed on the GPU: the pre-pass on the first images (the beam
* Serial frames analysed on the GPU: the pre-pass on the first images (the beam
* centre, distance and mask the whole collection is analysed with), and the analysis since.
*
*/