v1.0.0-rc.81
This commit is contained in:
@@ -478,6 +478,25 @@ namespace {
|
||||
cborErr(cbor_value_leave_container(&value, &array_value));
|
||||
}
|
||||
|
||||
XrayFluorescenceSpectrum GetCBORFluorescenceSpectrum(CborValue &value) {
|
||||
std::vector<float> data, energy;
|
||||
CborValue map_value;
|
||||
cborErr(cbor_value_enter_container(&value, &map_value));
|
||||
while (!cbor_value_at_end(&map_value)) {
|
||||
auto key = GetCBORString(map_value);
|
||||
if (key == "energy")
|
||||
GetCBORFloatArray(map_value, energy);
|
||||
else if (key == "data")
|
||||
GetCBORFloatArray(map_value, data);
|
||||
}
|
||||
cborErr(cbor_value_leave_container(&value, &map_value));
|
||||
|
||||
if (data.size() == energy.size() && data.size() > 0)
|
||||
return {energy, data};
|
||||
else
|
||||
return {};
|
||||
}
|
||||
|
||||
CBORImageType DecodeType(CborValue &value) {
|
||||
if (cbor_value_at_end(&value))
|
||||
throw JFJochException(JFJochExceptionCategory::CBORError, "Message empty");
|
||||
@@ -584,7 +603,7 @@ namespace {
|
||||
else if (key == "spot_count_low_res")
|
||||
message.spot_count_low_res = GetCBORUInt(value);
|
||||
else if (key == "spot_count_indexed")
|
||||
message.indexing_spot_count = GetCBORUInt(value);
|
||||
message.spot_count_indexed = GetCBORUInt(value);
|
||||
else if (key == "spot_count_ice_rings")
|
||||
message.spot_count_ice_rings = GetCBORUInt(value);
|
||||
else if (key == "az_int_profile")
|
||||
@@ -934,11 +953,15 @@ namespace {
|
||||
message.poni_rot2 = j["poni_rot2"];
|
||||
if (j.contains("poni_rot3"))
|
||||
message.poni_rot3 = j["poni_rot3"];
|
||||
if (j.contains("detect_ice_rings"))
|
||||
message.detect_ice_rings = j["detect_ice_rings"];
|
||||
if (j.contains("images_per_trigger"))
|
||||
message.images_per_trigger = j["images_per_trigger"];
|
||||
if (j.contains("indexing_algorithm")) {
|
||||
if (j["indexing_algorithm"] == "fft")
|
||||
message.indexing_algorithm = IndexingAlgorithmEnum::FFT;
|
||||
else if (j["indexing_algorithm"] == "fftw")
|
||||
message.indexing_algorithm = IndexingAlgorithmEnum::FFTW;
|
||||
else if (j["indexing_algorithm"] == "ffbidx")
|
||||
message.indexing_algorithm = IndexingAlgorithmEnum::FFBIDX;
|
||||
else
|
||||
@@ -1035,6 +1058,8 @@ namespace {
|
||||
message.jungfrau_conversion_factor = GetCBORFloat(value);
|
||||
else if (key == "arm_date")
|
||||
message.arm_date = GetCBORDateTime(value);
|
||||
else if (key == "fluorescence")
|
||||
message.fluorescence_spectrum = GetCBORFluorescenceSpectrum(value);
|
||||
else if (key == "user_data")
|
||||
ProcessStartUserData(message, value);
|
||||
else if (key == "unit_cell")
|
||||
|
||||
Reference in New Issue
Block a user