v1.0.0-rc.129 (#36)
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m43s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m35s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 9m20s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 10m23s
Build Packages / Generate python client (push) Successful in 39s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m24s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 1m0s
Build Packages / build:rpm (rocky8) (push) Successful in 10m35s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m35s
Build Packages / build:rpm (rocky9) (push) Successful in 11m17s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m9s
Build Packages / Unit tests (push) Failing after 1h18m57s

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.

* 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)
* jfjoch_broker: Delta phi is calculated also for still data in Bragg prediction
* jfjoch_broker: Image pusher statistics are accessible via the REST interface
* jfjoch_writer: Supports TCP image socket and for these auto-forking option

Reviewed-on: #36
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
This commit was merged in pull request #36.
This commit is contained in:
2026-03-05 22:13:12 +01:00
committed by leonarski_f
parent 3036b1d37f
commit 64002f1e29
231 changed files with 5401 additions and 1064 deletions

View File

@@ -22,8 +22,8 @@ communicate through network calls or other mechanisms.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 1.0.0-rc.128
- Package version: 1.0.0-rc.128
- API version: 1.0.0-rc.129
- Package version: 1.0.0-rc.129
- Generator version: 7.20.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
@@ -145,6 +145,7 @@ Class | Method | HTTP request | Description
*DefaultApi* | [**image_buffer_image_tiff_get**](docs/DefaultApi.md#image_buffer_image_tiff_get) | **GET** /image_buffer/image.tiff | Get preview image in TIFF format
*DefaultApi* | [**image_buffer_start_cbor_get**](docs/DefaultApi.md#image_buffer_start_cbor_get) | **GET** /image_buffer/start.cbor | Get Start message in CBOR format
*DefaultApi* | [**image_buffer_status_get**](docs/DefaultApi.md#image_buffer_status_get) | **GET** /image_buffer/status | Get status of the image buffers
*DefaultApi* | [**image_pusher_status_get**](docs/DefaultApi.md#image_pusher_status_get) | **GET** /image_pusher/status | Get status of image pusher
*DefaultApi* | [**initialize_post**](docs/DefaultApi.md#initialize_post) | **POST** /initialize | Initialize detector and data acquisition
*DefaultApi* | [**pedestal_post**](docs/DefaultApi.md#pedestal_post) | **POST** /pedestal | Collect dark current for the detector
*DefaultApi* | [**preview_pedestal_tiff_get**](docs/DefaultApi.md#preview_pedestal_tiff_get) | **GET** /preview/pedestal.tiff | Get pedestal in TIFF format
@@ -191,6 +192,7 @@ Class | Method | HTTP request | Description
- [GridScan](docs/GridScan.md)
- [ImageBufferStatus](docs/ImageBufferStatus.md)
- [ImageFormatSettings](docs/ImageFormatSettings.md)
- [ImagePusherStatus](docs/ImagePusherStatus.md)
- [ImagePusherType](docs/ImagePusherType.md)
- [IndexingAlgorithm](docs/IndexingAlgorithm.md)
- [IndexingSettings](docs/IndexingSettings.md)
@@ -216,6 +218,7 @@ Class | Method | HTTP request | Description
- [ScanResultImagesInner](docs/ScanResultImagesInner.md)
- [SpotFindingSettings](docs/SpotFindingSettings.md)
- [StandardDetectorGeometry](docs/StandardDetectorGeometry.md)
- [TcpSettings](docs/TcpSettings.md)
- [UnitCell](docs/UnitCell.md)
- [ZeromqMetadataSettings](docs/ZeromqMetadataSettings.md)
- [ZeromqPreviewSettings](docs/ZeromqPreviewSettings.md)

View File

@@ -10,6 +10,7 @@ Name | Type | Description | Notes
**message** | **str** | Message to display besides state of the jfjoch_broker; mostly used for errors and warnings This matters especially for async functions (start/initialize), where API won&#39;t return reason for the error during async operation. | [optional]
**message_severity** | **str** | Level of the message to display | [optional] [default to 'error']
**gpu_count** | **int** | Number of installed GPUs | [optional]
**broker_version** | **str** | Version of the jfjoch_broker | [optional]
## Example

View File

@@ -48,6 +48,7 @@ Method | HTTP request | Description
[**image_buffer_image_tiff_get**](DefaultApi.md#image_buffer_image_tiff_get) | **GET** /image_buffer/image.tiff | Get preview image in TIFF format
[**image_buffer_start_cbor_get**](DefaultApi.md#image_buffer_start_cbor_get) | **GET** /image_buffer/start.cbor | Get Start message in CBOR format
[**image_buffer_status_get**](DefaultApi.md#image_buffer_status_get) | **GET** /image_buffer/status | Get status of the image buffers
[**image_pusher_status_get**](DefaultApi.md#image_pusher_status_get) | **GET** /image_pusher/status | Get status of image pusher
[**initialize_post**](DefaultApi.md#initialize_post) | **POST** /initialize | Initialize detector and data acquisition
[**pedestal_post**](DefaultApi.md#pedestal_post) | **POST** /pedestal | Collect dark current for the detector
[**preview_pedestal_tiff_get**](DefaultApi.md#preview_pedestal_tiff_get) | **GET** /preview/pedestal.tiff | Get pedestal in TIFF format
@@ -3007,6 +3008,69 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **image_pusher_status_get**
> ImagePusherStatus image_pusher_status_get()
Get status of image pusher
### Example
```python
import jfjoch_client
from jfjoch_client.models.image_pusher_status import ImagePusherStatus
from jfjoch_client.rest import ApiException
from pprint import pprint
# Defining the host is optional and defaults to http://localhost:5232
# See configuration.py for a list of all supported configuration parameters.
configuration = jfjoch_client.Configuration(
host = "http://localhost:5232"
)
# Enter a context with an instance of the API client
with jfjoch_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = jfjoch_client.DefaultApi(api_client)
try:
# Get status of image pusher
api_response = api_instance.image_pusher_status_get()
print("The response of DefaultApi->image_pusher_status_get:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling DefaultApi->image_pusher_status_get: %s\n" % e)
```
### Parameters
This endpoint does not need any parameter.
### Return type
[**ImagePusherStatus**](ImagePusherStatus.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json, text/plain
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | Everything OK | - |
**500** | Error encountered when trying to read status | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **initialize_post**
> initialize_post()

View File

@@ -0,0 +1,35 @@
# ImagePusherStatus
Informs about status of the image pusher.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**pusher_type** | [**ImagePusherType**](ImagePusherType.md) | | [default to ImagePusherType.NONE]
**addr** | **List[str]** | List of addresses of image pushers. For HDF5 socket - no addresses will be returned. For ZeroMQ - list of addresses for each socket will be provided. For TCP/IP - single address to connect all writers will be provided. |
**connected_writers** | **int** | Number of connected writers For ZeroMQ image socket: number is constant For TCP/IP image socket: number is updated live during operation |
**images_written** | **int** | Number of images written to the image socket. This number is updated live during operation for TCP/IP image socket and direct HDF5 writer. It is updated at the end of experiment for ZeroMQ image socket. | [optional]
**images_write_error** | **int** | Number of images that could not be written to the image socket. This number is updated live during operation for TCP/IP image socket. No other socket use it. | [optional]
**writer_fifo_utilization** | **List[int]** | Utilization of internal writer FIFO. This number is updated live during operation for TCP/IP image socket. No other socket use it. | [optional]
## Example
```python
from jfjoch_client.models.image_pusher_status import ImagePusherStatus
# TODO update the JSON string below
json = "{}"
# create an instance of ImagePusherStatus from a JSON string
image_pusher_status_instance = ImagePusherStatus.from_json(json)
# print the JSON string representation of the object
print(ImagePusherStatus.to_json())
# convert the object into a dict
image_pusher_status_dict = image_pusher_status_instance.to_dict()
# create an instance of ImagePusherStatus from a dict
image_pusher_status_from_dict = ImagePusherStatus.from_dict(image_pusher_status_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -8,6 +8,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**pcie** | [**List[PcieDevicesInner]**](PcieDevicesInner.md) | | [optional]
**zeromq** | [**ZeromqSettings**](ZeromqSettings.md) | | [optional]
**tcp** | [**TcpSettings**](TcpSettings.md) | | [optional]
**instrument** | [**InstrumentMetadata**](InstrumentMetadata.md) | | [optional]
**file_writer** | [**FileWriterSettings**](FileWriterSettings.md) | | [optional]
**detector** | [**List[Detector]**](Detector.md) | |

View File

@@ -25,6 +25,7 @@ Name | Type | Description | Notes
**az_int** | [**AzimIntSettings**](AzimIntSettings.md) | | [optional]
**buffer** | [**ImageBufferStatus**](ImageBufferStatus.md) | | [optional]
**indexing** | [**IndexingSettings**](IndexingSettings.md) | | [optional]
**image_pusher** | [**ImagePusherStatus**](ImagePusherStatus.md) | | [optional]
## Example

View File

@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**images_expected** | **int** | | [optional]
**images_collected** | **int** | Images collected by the receiver. This number will be lower than images expected if there were issues with data collection performance. | [optional]
**images_sent** | **int** | Images sent to the writer. The value does not include images discarded by lossy compression filter and images not forwarded due to full ZeroMQ queue. | [optional]
**images_written** | **int** | Images successfully written to disk. The value is live updated for TCP/IP socket and direct HDF5 writer, while for ZeroMQ it is only updated at the end of experiment. | [optional]
**images_discarded_lossy_compression** | **int** | Images discarded by the lossy compression filter | [optional]
**max_image_number_sent** | **int** | | [optional]
**collection_efficiency** | **float** | | [optional]

View File

@@ -0,0 +1,32 @@
# TcpSettings
TCP image stream configuration for Jungfraujoch software. This structure is used to provide default settings using configuration JSON file and is not used in HTTP.
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**send_buffer_size** | **int** | Send buffer size for TCP/IP socket | [optional]
**image_socket** | **str** | tcp://&lt;IP address&gt;:&lt;port&gt; 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces | [optional]
**nwriters** | **int** | Number of TCP/IP writers to be used for streaming images | [optional] [default to 32]
## Example
```python
from jfjoch_client.models.tcp_settings import TcpSettings
# TODO update the JSON string below
json = "{}"
# create an instance of TcpSettings from a JSON string
tcp_settings_instance = TcpSettings.from_json(json)
# print the JSON string representation of the object
print(TcpSettings.to_json())
# convert the object into a dict
tcp_settings_dict = tcp_settings_instance.to_dict()
# create an instance of TcpSettings from a dict
tcp_settings_from_dict = TcpSettings.from_dict(tcp_settings_dict)
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)