This commit is contained in:
2026-05-21 18:27:43 +03:00
parent 4b5a390987
commit 304464dbda
2 changed files with 30 additions and 15 deletions

View File

@@ -290,7 +290,7 @@ public:
return MccKeyValueHolderErrorCode::ERROR_DESERIAL;
}
_changedKey.insert(key_hash);
// _changedKey.insert(key_hash);
return MccKeyValueHolderErrorCode::ERROR_OK;
});

View File

@@ -111,6 +111,9 @@ public:
: KIND == MccAltLimitKind::MAX_ALT_LIMIT ? "MAXALT-ZONE"
: "ALTLIMIT-UNKNOWN";
MccAltLimitPZ& operator=(MccAltLimitPZ&&) = default;
MccAltLimitPZ& operator=(const MccAltLimitPZ&) = default;
template <mcc_angle_c T>
T altLimit() const
requires(!std::derived_from<T, MccAngle>)
@@ -390,25 +393,28 @@ struct MccDeserializer<MccAltLimitPZ<KIND>> : MccDeserializerBase {
MccAltLimitPZ<KIND>& value,
ParamsT const& params = mcc_serialization_params_t{})
{
std::string_view s;
std::vector<std::string_view> s;
MccDeserializer<MccAngle> ades;
auto seq = std::views::split(params.seq_delim);
if (std::ranges::size(seq) < 2) {
s = utils::trimSpaces(seq, utils::TrimType::TRIM_BOTH);
auto seq = std::views::split(input, params.seq_delim);
if (std::ranges::distance(seq.begin(), seq.end()) < 2) {
for (auto const& seq_el : seq) {
s.push_back(utils::trimSpaces(seq_el, utils::TrimType::TRIM_BOTH));
}
MccAngle alt, lat;
auto err = ades(input, alt, params);
auto err = ades(s[0], alt, params);
if (err) {
return MccDeserializerErrorCode::ERROR_UNDERLYING_DESERIALIZER;
}
err = ades(input, lat, params);
err = ades(s[1], lat, params);
if (err) {
return MccDeserializerErrorCode::ERROR_UNDERLYING_DESERIALIZER;
}
value = MccAltLimitPZ<KIND>{alt, lat};
value = MccAltLimitPZ<KIND>(alt, lat);
} else {
return MccDeserializerErrorCode::ERROR_INVALID_SERIALIZED_VALUE;
}
@@ -469,6 +475,11 @@ public:
: axisKind == MccCoordKind::COORDS_KIND_DEC_OBS ? "DEC-AXIS-LIMITSWITCH-ZONE"
: "UKNOWN";
MccAxisLimitSwitchPZ(const MccAxisLimitSwitchPZ&) = default;
MccAxisLimitSwitchPZ(MccAxisLimitSwitchPZ&&) = default;
MccAxisLimitSwitchPZ& operator=(const MccAxisLimitSwitchPZ&) = default;
MccAxisLimitSwitchPZ& operator=(MccAxisLimitSwitchPZ&&) = default;
template <mcc_angle_c T>
T minLimit() const
@@ -645,26 +656,30 @@ struct MccDeserializer<MccAxisLimitSwitchPZ<AXIS_KIND>> : MccDeserializerBase {
MccAxisLimitSwitchPZ<AXIS_KIND>& value,
ParamsT const& params = mcc_serialization_params_t{})
{
std::string_view s;
std::vector<std::string_view> s;
MccDeserializer<MccAngle> ades;
auto seq = std::views::split(params.seq_delim);
if (std::ranges::size(seq) < 2) {
s = utils::trimSpaces(seq, utils::TrimType::TRIM_BOTH);
auto seq = std::views::split(input, params.seq_delim);
// if (std::ranges::size(seq) < 2) {
if (std::ranges::distance(seq.begin(), seq.end()) < 2) {
for (auto const& seq_el : seq) {
s.push_back(utils::trimSpaces(seq_el, utils::TrimType::TRIM_BOTH));
}
MccAngle minLim, maxLim;
auto err = ades(input, minLim, params);
auto err = ades(s[0], minLim, params);
if (err) {
return MccDeserializerErrorCode::ERROR_UNDERLYING_DESERIALIZER;
}
err = ades(input, maxLim, params);
err = ades(s[1], maxLim, params);
if (err) {
return MccDeserializerErrorCode::ERROR_UNDERLYING_DESERIALIZER;
}
// WARNING: the class below is created without the PCM-class pointer!!!
value = MccAxisLimitSwitchPZ<AXIS_KIND>{minLim, maxLim};
value = MccAxisLimitSwitchPZ<AXIS_KIND>(minLim, maxLim, nullptr);
} else {
return MccDeserializerErrorCode::ERROR_INVALID_SERIALIZED_VALUE;
}