MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/schematic/SignalValidation.hh
2024-06-07 11:12:56 +03:00

92 lines
1.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* SignalValidation.hh
*
* Created on: 28 апр. 2022 г.
* Author: titov
*/
#ifndef UMLIBRARY_SCHEMATIC_SIGNALVALIDATION_HH_
#define UMLIBRARY_SCHEMATIC_SIGNALVALIDATION_HH_
#include "../systemic/IStatus.hh"
#include "../systemic/ISignal.hh"
namespace systemic { namespace detail {
class SignalValidationPrevious : public ISignal {
private:
ISignal & raw;
IStatus & valid;
mutable float prev;
public:
SignalValidationPrevious( ISignal & raw, IStatus & valid ) : raw(raw), valid(valid) {}
virtual ~SignalValidationPrevious() = default;
operator float() const final;
};
class SignalValidationFixed : public ISignal {
private:
ISignal & raw;
IStatus & valid;
const float fixed;
public:
SignalValidationFixed( ISignal & raw, IStatus & valid, float fixed ) : raw(raw), valid(valid), fixed(fixed) {}
virtual ~SignalValidationFixed() = default;
operator float() const final;
};
class SignalValidationPreset : public ISignal {
private:
ISignal & raw;
IStatus & valid;
float preset;
public:
SignalValidationPreset( ISignal & raw, IStatus & valid ) : raw(raw), valid(valid) {}
virtual ~SignalValidationPreset() = default;
operator float() const final;
struct Setting {
float preset_value; //!<Предустановленное значение.
bool isValid();
};
void configure( Setting & config );
};
class SignalValidationAnother: public ISignal {
private:
ISignal & raw;
IStatus & valid;
ISignal & another;
public:
SignalValidationAnother( ISignal & raw, IStatus & valid, ISignal & another ) : raw(raw), valid(valid), another(another) {}
virtual ~SignalValidationAnother() = default;
operator float() const final;
};
} /* namespace detail */
} /* namespace systemic */
#endif /* UMLIBRARY_SCHEMATIC_SIGNALVALIDATION_HH_ */