Detector read-out time can be in nanoseconds (this is work in progress, need to adapt count time and frame time to serious units)
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m23s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m29s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m49s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m52s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m55s
Build Packages / build:rpm (rocky8) (push) Successful in 17m57s
Build Packages / build:rpm (rocky9) (push) Successful in 18m44s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m58s
Build Packages / Generate python client (push) Successful in 1m28s
Build Packages / Build documentation (push) Successful in 1m56s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m0s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m1s
Build Packages / XDS test (neggia plugin) (push) Successful in 8m53s
Build Packages / XDS test (durin plugin) (push) Successful in 10m13s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m28s
Build Packages / DIALS test (push) Successful in 12m28s
Build Packages / Unit tests (push) Failing after 3h0m17s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m23s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m29s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m49s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m52s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m55s
Build Packages / build:rpm (rocky8) (push) Successful in 17m57s
Build Packages / build:rpm (rocky9) (push) Successful in 18m44s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m58s
Build Packages / Generate python client (push) Successful in 1m28s
Build Packages / Build documentation (push) Successful in 1m56s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m0s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m1s
Build Packages / XDS test (neggia plugin) (push) Successful in 8m53s
Build Packages / XDS test (durin plugin) (push) Successful in 10m13s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m28s
Build Packages / DIALS test (push) Successful in 12m28s
Build Packages / Unit tests (push) Failing after 3h0m17s
This commit is contained in:
1 parent
f9433eee38
commit
9fe5fc7e4c
23 files changed
+100
-90
No files matched your search
@@ -124,8 +124,8 @@ DetectorSetup ParseDetectorSetup(const org::openapitools::server::model::Detecto
|
||||
.SerialNumber(d.getSerialNumber())
|
||||
.ModuleSync(d.isModuleSync());
|
||||
|
||||
if (d.readoutTimeUsIsSet())
|
||||
setup.ReadOutTime(std::chrono::microseconds(d.getReadoutTimeUs()));
|
||||
if (d.readoutTimeNsIsSet())
|
||||
setup.ReadOutTime(std::chrono::nanoseconds(d.getReadoutTimeNs()));
|
||||
|
||||
if (d.baseDataIpv4AddressIsSet())
|
||||
setup.BaseIPv4Addr(d.getBaseDataIpv4Address());
|
||||
|
||||
@@ -25,7 +25,7 @@ struct DetectorListElement {
|
||||
int64_t nmodules;
|
||||
int64_t width;
|
||||
int64_t height;
|
||||
std::chrono::microseconds readout_time;
|
||||
std::chrono::nanoseconds readout_time;
|
||||
std::chrono::microseconds min_frame_time;
|
||||
std::chrono::microseconds min_count_time;
|
||||
DetectorType detector_type;
|
||||
|
||||
@@ -372,7 +372,7 @@ org::openapitools::server::model::Detector_list Convert(const DetectorList &inpu
|
||||
d.setUdpInterfaceCount(input.detector[i].udp_interface_count);
|
||||
d.setMinFrameTimeUs(input.detector[i].min_frame_time.count());
|
||||
d.setMinCountTimeUs(input.detector[i].min_count_time.count());
|
||||
d.setReadoutTimeUs(input.detector[i].readout_time.count());
|
||||
d.setReadoutTimeNs(input.detector[i].readout_time.count());
|
||||
d.setPixelSizeMm(input.detector[i].pixel_size_mm);
|
||||
d.setType(Convert(input.detector[i].detector_type));
|
||||
dets.emplace_back(std::move(d));
|
||||
|
||||
@@ -33,8 +33,8 @@ Detector::Detector()
|
||||
m_Module_syncIsSet = false;
|
||||
m_Sensor_thickness_um = 320.0f;
|
||||
m_Sensor_thickness_umIsSet = false;
|
||||
m_Readout_time_us = 0L;
|
||||
m_Readout_time_usIsSet = false;
|
||||
m_Readout_time_ns = 0L;
|
||||
m_Readout_time_nsIsSet = false;
|
||||
m_Minimum_count_time_us = 0L;
|
||||
m_Minimum_count_time_usIsSet = false;
|
||||
m_Minimum_frame_time_us = 0L;
|
||||
@@ -158,10 +158,10 @@ bool Detector::validate(std::stringstream& msg, const std::string& pathPrefix) c
|
||||
|
||||
}
|
||||
|
||||
if (readoutTimeUsIsSet())
|
||||
if (readoutTimeNsIsSet())
|
||||
{
|
||||
const int64_t& value = m_Readout_time_us;
|
||||
const std::string currentValuePath = _pathPrefix + ".readoutTimeUs";
|
||||
const int64_t& value = m_Readout_time_ns;
|
||||
const std::string currentValuePath = _pathPrefix + ".readoutTimeNs";
|
||||
|
||||
|
||||
if (value < 1ll)
|
||||
@@ -333,7 +333,7 @@ bool Detector::operator==(const Detector& rhs) const
|
||||
((!sensorThicknessUmIsSet() && !rhs.sensorThicknessUmIsSet()) || (sensorThicknessUmIsSet() && rhs.sensorThicknessUmIsSet() && getSensorThicknessUm() == rhs.getSensorThicknessUm())) &&
|
||||
|
||||
|
||||
((!readoutTimeUsIsSet() && !rhs.readoutTimeUsIsSet()) || (readoutTimeUsIsSet() && rhs.readoutTimeUsIsSet() && getReadoutTimeUs() == rhs.getReadoutTimeUs())) &&
|
||||
((!readoutTimeNsIsSet() && !rhs.readoutTimeNsIsSet()) || (readoutTimeNsIsSet() && rhs.readoutTimeNsIsSet() && getReadoutTimeNs() == rhs.getReadoutTimeNs())) &&
|
||||
|
||||
|
||||
((!minimumCountTimeUsIsSet() && !rhs.minimumCountTimeUsIsSet()) || (minimumCountTimeUsIsSet() && rhs.minimumCountTimeUsIsSet() && getMinimumCountTimeUs() == rhs.getMinimumCountTimeUs())) &&
|
||||
@@ -398,8 +398,8 @@ void to_json(nlohmann::json& j, const Detector& o)
|
||||
j["module_sync"] = o.m_Module_sync;
|
||||
if(o.sensorThicknessUmIsSet())
|
||||
j["sensor_thickness_um"] = o.m_Sensor_thickness_um;
|
||||
if(o.readoutTimeUsIsSet())
|
||||
j["readout_time_us"] = o.m_Readout_time_us;
|
||||
if(o.readoutTimeNsIsSet())
|
||||
j["readout_time_ns"] = o.m_Readout_time_ns;
|
||||
if(o.minimumCountTimeUsIsSet())
|
||||
j["minimum_count_time_us"] = o.m_Minimum_count_time_us;
|
||||
if(o.minimumFrameTimeUsIsSet())
|
||||
@@ -462,10 +462,10 @@ void from_json(const nlohmann::json& j, Detector& o)
|
||||
j.at("sensor_thickness_um").get_to(o.m_Sensor_thickness_um);
|
||||
o.m_Sensor_thickness_umIsSet = true;
|
||||
}
|
||||
if(j.find("readout_time_us") != j.end())
|
||||
if(j.find("readout_time_ns") != j.end())
|
||||
{
|
||||
j.at("readout_time_us").get_to(o.m_Readout_time_us);
|
||||
o.m_Readout_time_usIsSet = true;
|
||||
j.at("readout_time_ns").get_to(o.m_Readout_time_ns);
|
||||
o.m_Readout_time_nsIsSet = true;
|
||||
}
|
||||
if(j.find("minimum_count_time_us") != j.end())
|
||||
{
|
||||
@@ -645,22 +645,22 @@ void Detector::unsetSensor_thickness_um()
|
||||
{
|
||||
m_Sensor_thickness_umIsSet = false;
|
||||
}
|
||||
int64_t Detector::getReadoutTimeUs() const
|
||||
int64_t Detector::getReadoutTimeNs() const
|
||||
{
|
||||
return m_Readout_time_us;
|
||||
return m_Readout_time_ns;
|
||||
}
|
||||
void Detector::setReadoutTimeUs(int64_t const value)
|
||||
void Detector::setReadoutTimeNs(int64_t const value)
|
||||
{
|
||||
m_Readout_time_us = value;
|
||||
m_Readout_time_usIsSet = true;
|
||||
m_Readout_time_ns = value;
|
||||
m_Readout_time_nsIsSet = true;
|
||||
}
|
||||
bool Detector::readoutTimeUsIsSet() const
|
||||
bool Detector::readoutTimeNsIsSet() const
|
||||
{
|
||||
return m_Readout_time_usIsSet;
|
||||
return m_Readout_time_nsIsSet;
|
||||
}
|
||||
void Detector::unsetReadout_time_us()
|
||||
void Detector::unsetReadout_time_ns()
|
||||
{
|
||||
m_Readout_time_usIsSet = false;
|
||||
m_Readout_time_nsIsSet = false;
|
||||
}
|
||||
int64_t Detector::getMinimumCountTimeUs() const
|
||||
{
|
||||
|
||||
@@ -111,12 +111,12 @@ public:
|
||||
bool sensorThicknessUmIsSet() const;
|
||||
void unsetSensor_thickness_um();
|
||||
/// <summary>
|
||||
/// Minimum difference between frame time and count time in microseconds Defaults are 3 us for EIGER and 20 us for JUNGFRAU
|
||||
/// Minimum difference between frame time and count time in microseconds Defaults are 3'000 ns for EIGER and 20'000 ns for JUNGFRAU
|
||||
/// </summary>
|
||||
int64_t getReadoutTimeUs() const;
|
||||
void setReadoutTimeUs(int64_t const value);
|
||||
bool readoutTimeUsIsSet() const;
|
||||
void unsetReadout_time_us();
|
||||
int64_t getReadoutTimeNs() const;
|
||||
void setReadoutTimeNs(int64_t const value);
|
||||
bool readoutTimeNsIsSet() const;
|
||||
void unsetReadout_time_ns();
|
||||
/// <summary>
|
||||
/// Minimum count time available for the detector.
|
||||
/// </summary>
|
||||
@@ -226,8 +226,8 @@ protected:
|
||||
bool m_Module_syncIsSet;
|
||||
float m_Sensor_thickness_um;
|
||||
bool m_Sensor_thickness_umIsSet;
|
||||
int64_t m_Readout_time_us;
|
||||
bool m_Readout_time_usIsSet;
|
||||
int64_t m_Readout_time_ns;
|
||||
bool m_Readout_time_nsIsSet;
|
||||
int64_t m_Minimum_count_time_us;
|
||||
bool m_Minimum_count_time_usIsSet;
|
||||
int64_t m_Minimum_frame_time_us;
|
||||
|
||||
@@ -31,7 +31,7 @@ Detector_list_element::Detector_list_element()
|
||||
m_Height = 0L;
|
||||
m_Pixel_size_mm = 0.0f;
|
||||
m_Pixel_size_mmIsSet = false;
|
||||
m_Readout_time_us = 0L;
|
||||
m_Readout_time_ns = 0L;
|
||||
m_Min_frame_time_us = 0L;
|
||||
m_Min_count_time_us = 0L;
|
||||
m_TypeIsSet = false;
|
||||
@@ -107,7 +107,7 @@ bool Detector_list_element::operator==(const Detector_list_element& rhs) const
|
||||
|
||||
((!pixelSizeMmIsSet() && !rhs.pixelSizeMmIsSet()) || (pixelSizeMmIsSet() && rhs.pixelSizeMmIsSet() && getPixelSizeMm() == rhs.getPixelSizeMm())) &&
|
||||
|
||||
(getReadoutTimeUs() == rhs.getReadoutTimeUs())
|
||||
(getReadoutTimeNs() == rhs.getReadoutTimeNs())
|
||||
&&
|
||||
|
||||
(getMinFrameTimeUs() == rhs.getMinFrameTimeUs())
|
||||
@@ -140,7 +140,7 @@ void to_json(nlohmann::json& j, const Detector_list_element& o)
|
||||
j["height"] = o.m_Height;
|
||||
if(o.pixelSizeMmIsSet())
|
||||
j["pixel_size_mm"] = o.m_Pixel_size_mm;
|
||||
j["readout_time_us"] = o.m_Readout_time_us;
|
||||
j["readout_time_ns"] = o.m_Readout_time_ns;
|
||||
j["min_frame_time_us"] = o.m_Min_frame_time_us;
|
||||
j["min_count_time_us"] = o.m_Min_count_time_us;
|
||||
if(o.typeIsSet())
|
||||
@@ -163,7 +163,7 @@ void from_json(const nlohmann::json& j, Detector_list_element& o)
|
||||
j.at("pixel_size_mm").get_to(o.m_Pixel_size_mm);
|
||||
o.m_Pixel_size_mmIsSet = true;
|
||||
}
|
||||
j.at("readout_time_us").get_to(o.m_Readout_time_us);
|
||||
j.at("readout_time_ns").get_to(o.m_Readout_time_ns);
|
||||
j.at("min_frame_time_us").get_to(o.m_Min_frame_time_us);
|
||||
j.at("min_count_time_us").get_to(o.m_Min_count_time_us);
|
||||
if(j.find("type") != j.end())
|
||||
@@ -255,13 +255,13 @@ void Detector_list_element::unsetPixel_size_mm()
|
||||
{
|
||||
m_Pixel_size_mmIsSet = false;
|
||||
}
|
||||
int64_t Detector_list_element::getReadoutTimeUs() const
|
||||
int64_t Detector_list_element::getReadoutTimeNs() const
|
||||
{
|
||||
return m_Readout_time_us;
|
||||
return m_Readout_time_ns;
|
||||
}
|
||||
void Detector_list_element::setReadoutTimeUs(int64_t const value)
|
||||
void Detector_list_element::setReadoutTimeNs(int64_t const value)
|
||||
{
|
||||
m_Readout_time_us = value;
|
||||
m_Readout_time_ns = value;
|
||||
}
|
||||
int64_t Detector_list_element::getMinFrameTimeUs() const
|
||||
{
|
||||
|
||||
@@ -109,8 +109,8 @@ public:
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
int64_t getReadoutTimeUs() const;
|
||||
void setReadoutTimeUs(int64_t const value);
|
||||
int64_t getReadoutTimeNs() const;
|
||||
void setReadoutTimeNs(int64_t const value);
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -150,7 +150,7 @@ protected:
|
||||
|
||||
float m_Pixel_size_mm;
|
||||
bool m_Pixel_size_mmIsSet;
|
||||
int64_t m_Readout_time_us;
|
||||
int64_t m_Readout_time_ns;
|
||||
|
||||
int64_t m_Min_frame_time_us;
|
||||
|
||||
|
||||
@@ -1083,7 +1083,7 @@ components:
|
||||
- serial_number
|
||||
- base_ipv4_addr
|
||||
- udp_interface_count
|
||||
- readout_time_us
|
||||
- readout_time_ns
|
||||
- min_frame_time_us
|
||||
- min_count_time_us
|
||||
properties:
|
||||
@@ -1121,7 +1121,7 @@ components:
|
||||
type: number
|
||||
format: float
|
||||
example: 0.075
|
||||
readout_time_us:
|
||||
readout_time_ns:
|
||||
type: integer
|
||||
format: int64
|
||||
min_frame_time_us:
|
||||
@@ -2060,13 +2060,13 @@ components:
|
||||
format: float
|
||||
minimum: 0
|
||||
default: 320
|
||||
readout_time_us:
|
||||
readout_time_ns:
|
||||
type: integer
|
||||
format: int64
|
||||
minimum: 1
|
||||
description: |
|
||||
Minimum difference between frame time and count time in microseconds
|
||||
Defaults are 3 us for EIGER and 20 us for JUNGFRAU
|
||||
Defaults are 3'000 ns for EIGER and 20'000 ns for JUNGFRAU
|
||||
minimum_count_time_us:
|
||||
type: integer
|
||||
format: int64
|
||||
|
||||
@@ -733,7 +733,7 @@ Changing detector will set detector to <code>Inactive</code> state and will requ
|
||||
</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"> <!-- -->Request samples<!-- --> </h3><div class="sc-bXCLTC dHowgL" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99ea_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99ea_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99ea_0" aria-labelledby="tab_R_99ea_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></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">"id"</span>: <span class="token number">1</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></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-error react-tabs__tab--selected" role="tab" id="tab_R_9pea_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pea_0" tabindex="0" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pea_0" aria-labelledby="tab_R_9pea_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></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">"msg"</span>: <span class="token string">"Detector in wrong state"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"reason"</span>: <span class="token string">"WrongDAQState"</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~1select_detector/get" data-section-id="/paths/~1config~1select_detector/get" 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~1select_detector/get" aria-label="/paths/~1config~1select_detector/get"></a>List available detectors<!-- --> </h2><div class="sc-bVVIoq icSMtY"><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"><p>Configured detectors that can be selected by used</p>
|
||||
</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_9peq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9peq_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_9peq_0" aria-labelledby="tab_R_9peq_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">"JUNGFRAU 4 Mpixel"</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">"JF17T16V01"</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">"10.10.10.1"</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_us"</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_us"</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_us"</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">"EIGER"</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~1zeromq_preview/put" data-section-id="/paths/~1config~1zeromq_preview/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~1zeromq_preview/put" aria-label="/paths/~1config~1zeromq_preview/put"></a>Set ZeroMQ preview settings<!-- --> </h2><div class="sc-bVVIoq icSMtY"><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"><p>Jungfraujoch can generate preview message stLine truncated
|
||||
</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_9peq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9peq_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_9peq_0" aria-labelledby="tab_R_9peq_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">"JUNGFRAU 4 Mpixel"</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">"JF17T16V01"</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">"10.10.10.1"</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_us"</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_us"</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">"EIGER"</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~1zeromq_preview/put" data-section-id="/paths/~1config~1zeromq_preview/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~1zeromq_preview/put" aria-label="/paths/~1config~1zeromq_preview/put"></a>Set ZeroMQ preview settings<!-- --> </h2><div class="sc-bVVIoq icSMtY"><div class="sc-eeDRCY sc-eBMEME gTGgei fMmru"><p>Jungfraujoch can generate preview message stLine truncated
|
||||
Here settings of the socket can be adjusted.
|
||||
While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request.
|
||||
Options set with this PUT request have no effect on HTTP based preview.</p>
|
||||
@@ -811,7 +811,7 @@ This can only be done when detector is <code>Idle</code>, <code>Error</code> or
|
||||
</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="put" class="sc-eZYNyq cnqpVw http-verb put">put</span><span class="sc-iEXKAA gUNSDu">/config/roi</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/roi</div></div></div></div></div><div><h3 class="sc-kpDqfm eBBgSB"> <!-- -->Request samples<!-- --> </h3><div class="sc-bXCLTC dHowgL" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99lq_0" aria-labelledby="tab_R_99lq_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">"box"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"rois"</span>: <button class="collapser" aria-label="expand"></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">"name"</span>: <span class="token string">"string"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"min_x_pxl"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_x_pxl"</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_y_pxl"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_y_pxl"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</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">"circle"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"rois"</span>: <button class="collapser" aria-label="expand"></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">"name"</span>: <span class="token string">"string"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"center_x_pxl"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"center_y_pxl"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"radius_pxl"</span>: <span class="token number">0.1</span></div></li></ul><span class="token punctuation">}</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">"azim"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"rois"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="eLine truncated
|
||||
</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">/statistics</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>/statistics</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_9pma_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pma_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_9pma_0" aria-labelledby="tab_R_9pma_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">"detector"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"state"</span>: <span class="token string">"Idle"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"powerchip"</span>: <span class="token string">"PowerOn"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"server_version"</span>: <span class="token string">"string"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"number_of_triggers_left"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fpga_temp_degC"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"high_voltage_V"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0</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">"detector_list"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"detectors"</span>: <button class="collapser" aria-label="expand"></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">"JUNGFRAU 4 Mpixel"</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">"JF17T16V01"</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">"10.10.10.1"</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 punctuationLine truncated
|
||||
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/statistics</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_9pma_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pma_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_9pma_0" aria-labelledby="tab_R_9pma_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">"detector"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"state"</span>: <span class="token string">"Idle"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"powerchip"</span>: <span class="token string">"PowerOn"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"server_version"</span>: <span class="token string">"string"</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"number_of_triggers_left"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fpga_temp_degC"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"high_voltage_V"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0</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">"detector_list"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"detectors"</span>: <button class="collapser" aria-label="expand"></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">"JUNGFRAU 4 Mpixel"</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">"JF17T16V01"</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">"10.10.10.1"</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 punctuationLine truncated
|
||||
</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><button class="sc-kzqdkY gnmLmb" disabled=""><strong class="sc-dSIIpw bpEYcE">404<!-- --> </strong><div class="sc-eeDRCY sc-eBMEME sc-dCFHLb gTGgei kekOtA kCaLQd"><p>No data collection performed so far</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">/statistics/data_collection</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>
|
||||
@@ -932,7 +932,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.139","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":{"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","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","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"]}},"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_beam_center":{"in":"query","name":"show_beam_center","schema":{"type":"boolean","default":true},"description":"Show beam center on the image"},"show_roi":{"in":"query","name":"show_roi","schema":{"type":"boolean","default":false},"description":"Show ROI areas on the image"},"jpeg_quality":{"in":"query","name":"jpeg_quality","description":"Quality of JPEG image (100 - highest; 0 - lowest)","schema":{"type":"integer","format":"int64","default":100,"minimum":0,"maximum":100}},"show_user_mask":{"in":"query","name":"show_user_mask","schema":{"type":"boolean","default":false},"description"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.139","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":{"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","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","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"]}},"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_beam_center":{"in":"query","name":"show_beam_center","schema":{"type":"boolean","default":true},"description":"Show beam center on the image"},"show_roi":{"in":"query","name":"show_roi","schema":{"type":"boolean","default":false},"description":"Show ROI areas on the image"},"jpeg_quality":{"in":"query","name":"jpeg_quality","description":"Quality of JPEG image (100 - highest; 0 - lowest)","schema":{"type":"integer","format":"int64","default":100,"minimum":0,"maximum":100}},"show_user_mask":{"in":"query","name":"show_user_mask","schema":{"type":"boolean","default":false},"description"Line truncated
|
||||
|
||||
var container = document.getElementById('redoc');
|
||||
Redoc.hydrate(__redoc_state, container);
|
||||
|
||||
@@ -264,7 +264,7 @@ DetectorSetup &DetectorSetup::ModuleSync(bool input) {
|
||||
return *this;
|
||||
}
|
||||
|
||||
DetectorSetup & DetectorSetup::ReadOutTime(std::chrono::microseconds input) {
|
||||
DetectorSetup & DetectorSetup::ReadOutTime(std::chrono::nanoseconds input) {
|
||||
if (input.count() < 0)
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
|
||||
"Read out time has to be non-negative");
|
||||
@@ -272,7 +272,7 @@ DetectorSetup & DetectorSetup::ReadOutTime(std::chrono::microseconds input) {
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::chrono::microseconds DetectorSetup::GetReadOutTime() const {
|
||||
std::chrono::nanoseconds DetectorSetup::GetReadOutTime() const {
|
||||
return read_out_time;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class DetectorSetup {
|
||||
int32_t high_voltage = 120.0;
|
||||
uint32_t ipv4_base_addr = 0x010a0a0a;
|
||||
bool module_sync = true;
|
||||
std::chrono::microseconds read_out_time;
|
||||
std::chrono::nanoseconds read_out_time;
|
||||
std::chrono::microseconds min_count_time;
|
||||
std::chrono::microseconds min_frame_time;
|
||||
float min_energy_threshold_keV = 2.7f;
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
DetectorSetup& SerialNumber(const std::string &input);
|
||||
DetectorSetup& BaseIPv4Addr(const std::string &input);
|
||||
DetectorSetup& ModuleSync(bool input);
|
||||
DetectorSetup& ReadOutTime(std::chrono::microseconds input);
|
||||
DetectorSetup& ReadOutTime(std::chrono::nanoseconds input);
|
||||
DetectorSetup& Geometry(const DetectorGeometryFixed& input);
|
||||
DetectorSetup& BitDepthReadout(int64_t input);
|
||||
DetectorSetup& BitDepthImage(int64_t input);
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
[[nodiscard]] uint32_t GetSrcIPv4Addr(uint32_t half_module) const;
|
||||
[[nodiscard]] std::string GetBaseIPv4Addr() const;
|
||||
[[nodiscard]] bool IsModuleSync() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetReadOutTime() const;
|
||||
[[nodiscard]] std::chrono::nanoseconds GetReadOutTime() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetMinFrameTime() const;
|
||||
[[nodiscard]] std::chrono::microseconds GetMinCountTime() const;
|
||||
[[nodiscard]] std::optional<int64_t> GetBitDepthReadout() const;
|
||||
|
||||
@@ -300,21 +300,25 @@ int64_t DiffractionExperiment::GetFrameNumPerTrigger() const {
|
||||
}
|
||||
}
|
||||
|
||||
std::chrono::microseconds DiffractionExperiment::GetFrameCountTime() const {
|
||||
std::chrono::nanoseconds DiffractionExperiment::GetFrameCountTime() const {
|
||||
if ((GetDetectorType() != DetectorType::JUNGFRAU)
|
||||
&& dataset.GetImageTime().has_value()
|
||||
&& !detector_settings.GetCountTime().has_value())
|
||||
return dataset.GetImageTime().value() - detector.GetReadOutTime();
|
||||
return std::chrono::duration_cast<std::chrono::nanoseconds>(dataset.GetImageTime().value())
|
||||
- detector.GetReadOutTime();
|
||||
|
||||
return detector_settings.GetCountTime()
|
||||
.value_or(detector_settings.GetFrameTime() - detector.GetReadOutTime());
|
||||
if (detector_settings.GetCountTime().has_value())
|
||||
return detector_settings.GetCountTime().value();
|
||||
|
||||
return std::chrono::duration_cast<std::chrono::nanoseconds>(detector_settings.GetFrameTime())
|
||||
- detector.GetReadOutTime();
|
||||
}
|
||||
|
||||
bool DiffractionExperiment::GetFrameCountTimeAuto() const {
|
||||
return !detector_settings.GetCountTime().has_value();
|
||||
}
|
||||
|
||||
std::chrono::microseconds DiffractionExperiment::GetImageCountTime() const {
|
||||
std::chrono::nanoseconds DiffractionExperiment::GetImageCountTime() const {
|
||||
return GetFrameCountTime() * GetSummation();
|
||||
}
|
||||
|
||||
@@ -1252,7 +1256,7 @@ DiffractionExperiment &DiffractionExperiment::ImportDetectorSettings(const Detec
|
||||
if (!input.GetCountTime().has_value()) {
|
||||
// implicit count time
|
||||
check_max("Frame time [us]", input.GetFrameTime().count(),
|
||||
MAX_COUNT_TIME_JUNGFRAU_IN_US + detector.GetReadOutTime().count());
|
||||
MAX_COUNT_TIME_JUNGFRAU_IN_US + std::chrono::duration_cast<std::chrono::microseconds>(detector.GetReadOutTime()).count());
|
||||
} else {
|
||||
// explicit count time
|
||||
check_max("Count time [us]", input.GetCountTime().value().count(),
|
||||
|
||||
@@ -210,8 +210,8 @@ public:
|
||||
std::chrono::microseconds GetDetectorPeriod() const;
|
||||
std::chrono::microseconds GetImageTime() const;
|
||||
|
||||
std::chrono::microseconds GetImageCountTime() const;
|
||||
std::chrono::microseconds GetFrameCountTime() const;
|
||||
std::chrono::nanoseconds GetImageCountTime() const;
|
||||
std::chrono::nanoseconds GetFrameCountTime() const;
|
||||
bool GetFrameCountTimeAuto() const;
|
||||
|
||||
DiffractionExperiment& StorageCellDelay(std::chrono::nanoseconds input);
|
||||
|
||||
@@ -175,6 +175,11 @@ nlohmann::json DectrisSimplonClient::GetStatus(SimplonModule element, const std:
|
||||
return GetConfig(element, SimplonTask::Status, key).val;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T float2time(float time_in_seconds) {
|
||||
return std::chrono::duration_cast<T>(std::chrono::duration<float>(time_in_seconds));
|
||||
}
|
||||
|
||||
void DectrisSimplonClient::ReadDetectorConfig(DetectorSetup &setup) {
|
||||
// Need to initialize to read configuration information
|
||||
|
||||
@@ -191,9 +196,10 @@ void DectrisSimplonClient::ReadDetectorConfig(DetectorSetup &setup) {
|
||||
|
||||
setup.BitDepthReadout(GetDetCfg("bit_depth_readout").val.get<int64_t>());
|
||||
setup.BitDepthImage(GetDetCfg("bit_depth_image").val.get<int64_t>());
|
||||
setup.MinFrameTime(std::chrono::microseconds(std::lround(GetDetCfg("frame_time").min.get<float>() * 1e6f)));
|
||||
setup.MinCountTime(std::chrono::microseconds(std::lround(GetDetCfg("count_time").min.get<float>() * 1e6f)));
|
||||
setup.ReadOutTime(std::chrono::microseconds(std::lround(GetDetCfg("detector_readout_time").val.get<float>() * 1e6f)));
|
||||
setup.MinFrameTime(float2time<std::chrono::microseconds>(GetDetCfg("frame_time").min.get<float>()));
|
||||
setup.MinCountTime(float2time<std::chrono::microseconds>(GetDetCfg("count_time").min.get<float>()));
|
||||
setup.ReadOutTime(float2time<std::chrono::nanoseconds>(GetDetCfg("detector_readout_time").val.get<float>()));
|
||||
|
||||
nlohmann::json min_threshold_energy = GetDetCfg("threshold_energy").min;
|
||||
if (min_threshold_energy.is_number())
|
||||
setup.MinThreshold_keV(min_threshold_energy.get<float>() / 1000.0f);
|
||||
@@ -237,14 +243,8 @@ void DectrisSimplonClient::EndAcquisitionFinished() {
|
||||
}
|
||||
|
||||
void DectrisSimplonClient::StartAcquisition(const DiffractionExperiment& experiment) {
|
||||
// For DECTRIS detectors we assume frame_time == count_time
|
||||
// but give it 100 ns resolution
|
||||
if (experiment.GetFrameCountTimeAuto())
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "count_time", experiment.GetFrameTime().count() / 1e6f, 1e-7);
|
||||
else
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "count_time", experiment.GetFrameCountTime().count() / 1e6f, 1e-9);
|
||||
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "frame_time", experiment.GetFrameTime().count() / 1e6f, 1e-9);
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "count_time", std::chrono::duration<float>(experiment.GetFrameCountTime()).count(), 1e-9);
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "frame_time", std::chrono::duration<float>(experiment.GetFrameTime()).count(), 1e-9);
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "nimages", experiment.GetFrameNumPerTrigger());
|
||||
SetConfigIfDifferent(SimplonModule::Detector, "ntrigger", experiment.GetNumTriggers());
|
||||
|
||||
@@ -277,7 +277,7 @@ void DectrisSimplonClient::ConfigureDetector(const DiffractionExperiment &experi
|
||||
"Burst mode not supported with DECTRIS sytems");
|
||||
}
|
||||
|
||||
SetConfig(SimplonModule::Detector, "trigger_start_delay", experiment.GetDetectorDelay().count() / 1e9);
|
||||
SetConfig(SimplonModule::Detector, "trigger_start_delay", std::chrono::duration<float>(experiment.GetDetectorDelay()).count());
|
||||
}
|
||||
|
||||
SimplonState DectrisSimplonClient::GetState() {
|
||||
|
||||
@@ -148,7 +148,7 @@ void SLSDetectorWrapper::Start(const DiffractionExperiment& experiment) {
|
||||
// For EIGER exposure time needs to be updated for every measurements
|
||||
det.setDynamicRange(experiment.GetEigerBitDepth());
|
||||
det.setPeriod(experiment.GetDetectorPeriod());
|
||||
det.setExptime(std::chrono::microseconds(experiment.GetFrameCountTime()));
|
||||
det.setExptime(experiment.GetFrameCountTime());
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -410,7 +410,7 @@ void SLSDetectorWrapper::Configure(const DiffractionExperiment &experiment) {
|
||||
}
|
||||
|
||||
det.setPeriod(experiment.GetDetectorPeriod());
|
||||
det.setExptime(std::chrono::microseconds(experiment.GetFrameCountTime()));
|
||||
det.setExptime(experiment.GetFrameCountTime());
|
||||
}
|
||||
|
||||
void SLSDetectorWrapper::LoadPixelMask(PixelMask &mask) {
|
||||
|
||||
@@ -12,7 +12,7 @@ Name | Type | Description | Notes
|
||||
**udp_interface_count** | **int** | | [optional] [default to 1]
|
||||
**module_sync** | **bool** | Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER). | [optional] [default to True]
|
||||
**sensor_thickness_um** | **float** | | [optional] [default to 320]
|
||||
**readout_time_us** | **int** | Minimum difference between frame time and count time in microseconds Defaults are 3 us for EIGER and 20 us for JUNGFRAU | [optional]
|
||||
**readout_time_ns** | **int** | Minimum difference between frame time and count time in microseconds Defaults are 3'000 ns for EIGER and 20'000 ns for JUNGFRAU | [optional]
|
||||
**minimum_count_time_us** | **int** | Minimum count time available for the detector. | [optional]
|
||||
**minimum_frame_time_us** | **int** | Minimum frame time available for the detector. | [optional]
|
||||
**calibration_file** | **List[str]** | Can be empty for all detectors - default calibration used. For JUNGFRAU: list of gain files, one entry per module. For EIGER: one directory (with detector settings) or list of trim bit files, one entry per half-module. | [optional]
|
||||
|
||||
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
|
||||
**width** | **int** | |
|
||||
**height** | **int** | |
|
||||
**pixel_size_mm** | **float** | | [optional]
|
||||
**readout_time_us** | **int** | |
|
||||
**readout_time_ns** | **int** | |
|
||||
**min_frame_time_us** | **int** | |
|
||||
**min_count_time_us** | **int** | |
|
||||
**type** | [**DetectorType**](DetectorType.md) | | [optional]
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "jungfraujoch-frontend",
|
||||
"version": "1.0.0-rc.138",
|
||||
"version": "1.0.0-rc.139",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "jungfraujoch-frontend",
|
||||
"version": "1.0.0-rc.138",
|
||||
"version": "1.0.0-rc.139",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.10.4",
|
||||
|
||||
@@ -37,7 +37,7 @@ const default_detector_element: detector_list_element = {
|
||||
nmodules: 0,
|
||||
width: 0,
|
||||
height: 0,
|
||||
readout_time_us: 0,
|
||||
readout_time_ns: 0,
|
||||
min_frame_time_us: 0,
|
||||
min_count_time_us: 0
|
||||
}
|
||||
@@ -75,7 +75,7 @@ class DetectorSelection extends Component<MyProps, MyState> {
|
||||
{title: "UDP interfaces", val: `${x.udp_interface_count}`},
|
||||
{title: "Min. frame time", val: `${x.min_frame_time_us} µs`},
|
||||
{title: "Min. count time", val: `${x.min_count_time_us} µs`},
|
||||
{title: "Readout time", val: `${x.readout_time_us} µs`}
|
||||
{title: "Readout time", val: `${x.readout_time_ns} ns`}
|
||||
];
|
||||
|
||||
return <TableContainer
|
||||
|
||||
@@ -21,10 +21,10 @@ export type detector = {
|
||||
sensor_thickness_um?: number;
|
||||
/**
|
||||
* Minimum difference between frame time and count time in microseconds
|
||||
* Defaults are 3 us for EIGER and 20 us for JUNGFRAU
|
||||
* Defaults are 3'000 ns for EIGER and 20'000 ns for JUNGFRAU
|
||||
*
|
||||
*/
|
||||
readout_time_us?: number;
|
||||
readout_time_ns?: number;
|
||||
/**
|
||||
* Minimum count time available for the detector.
|
||||
*/
|
||||
|
||||
@@ -18,7 +18,7 @@ export type detector_list_element = {
|
||||
width: number;
|
||||
height: number;
|
||||
pixel_size_mm?: number;
|
||||
readout_time_us: number;
|
||||
readout_time_ns: number;
|
||||
min_frame_time_us: number;
|
||||
min_count_time_us: number;
|
||||
type?: detector_type;
|
||||
|
||||
@@ -421,12 +421,17 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
|
||||
detector.SaturationLimit(master_file->GetInt("/entry/instrument/detector/saturation_value"));
|
||||
detector.MinFrameTime(std::chrono::microseconds(0));
|
||||
detector.MinCountTime(std::chrono::microseconds(0));
|
||||
detector.ReadOutTime(std::chrono::microseconds (0));
|
||||
detector.ReadOutTime(std::chrono::nanoseconds (0));
|
||||
dataset->experiment.Detector(detector);
|
||||
|
||||
dataset->experiment.FrameTime(
|
||||
std::chrono::microseconds(std::lround(master_file->GetFloat("/entry/instrument/detector/frame_time") * 1e6)),
|
||||
std::chrono::microseconds(std::lround(master_file->GetFloat("/entry/instrument/detector/count_time") * 1e6)));
|
||||
std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::duration<float>(
|
||||
master_file->GetFloat("/entry/instrument/detector/frame_time"))),
|
||||
std::chrono::duration_cast<std::chrono::microseconds>(
|
||||
std::chrono::duration<float>(
|
||||
master_file->GetFloat("/entry/instrument/detector/count_time")))
|
||||
);
|
||||
|
||||
if (master_file->Exists("/entry/instrument/detector/calibration")) {
|
||||
dataset->calibration_data = master_file->FindLeafs("/entry/instrument/detector/calibration");
|
||||
|
||||
@@ -141,8 +141,9 @@ QString TrimZeros(double number, int precision) {
|
||||
return s;
|
||||
}
|
||||
|
||||
QString FormatTime(std::chrono::microseconds time) {
|
||||
return TrimZeros(time.count()/1e6, 6);
|
||||
template <typename Duration>
|
||||
QString FormatTime(Duration time, int precision = 6) {
|
||||
return TrimZeros(std::chrono::duration<float>(time).count(), precision);
|
||||
}
|
||||
|
||||
void JFJochViewerImageStatistics::loadImage(std::shared_ptr<const JFJochReaderImage> image) {
|
||||
|
||||
Reference in new issue
Block a user