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

126 lines
4.0 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: 29 апр. 2022 г.
* Author: titov
*/
#ifndef UMLIBRARY_APPLICATION_SCHEMATIC_SIGNALVALIDATION_HH_
#define UMLIBRARY_APPLICATION_SCHEMATIC_SIGNALVALIDATION_HH_
#include "../ISetupStep.hh"
#include "../../systemic/ISignal.hh"
#include "../../systemic/IStatus.hh"
#include "../../schematic/SignalValidation.hh"
namespace application { namespace schematic {
//!Валидация сигнала - замена невалидного значения предыдущим валидным.
struct SignalValidationPrevious : public ISetupStep {
systemic::ISignal * origin = nullptr;
systemic::IStatus * validity = nullptr;
bool input( Environment & env );
void build( Environment & env );
struct Links {
Environment::SignalId origin; //!<Исходный сигнал.
Environment::StatusId validity; //!<Признак валидности сигнала.
Environment::SignalId validated;//!<Валидированный сигнал.
};
const Links & links;
SignalValidationPrevious( const Links & links ) : links(links) {}
};
//!Валидация сигнала - замена невалидного значения фиксированным значением.
struct SignalValidationFixed : public ISetupStep {
systemic::ISignal * origin = nullptr;
systemic::IStatus * validity = nullptr;
bool input( Environment & env );
void build( Environment & env );
struct Links {
Environment::SignalId origin; //!<Исходный сигнал.
Environment::StatusId validity; //!<Признак валидности сигнала.
Environment::SignalId validated;//!<Валидированный сигнал.
};
struct Setting {
float fixed; //!<Фиксированное валидное значение.
};
const Links & links;
const Setting & setting;
SignalValidationFixed( const Links & links, const Setting & config ) : links(links), setting(config) {}
};
//!Валидация сигнала - замена невалидного значения преднастроенным значением.
struct SignalValidationPreset : public ISetupStep {
static const Environment::Id provider = 0;
systemic::ISignal * origin = nullptr;
systemic::IStatus * validity = nullptr;
typedef ::systemic::detail::SignalValidationPreset Object;
systemic::Parameter<Object> parameter;
bool input( Environment & env );
void build( Environment & env );
struct Links {
Environment::SignalId origin; //!<Исходный сигнал.
Environment::StatusId validity; //!<Признак валидности сигнала.
Environment::SignalId validated;//!<Валидированный сигнал.
Environment::SettingId preset; //!<Предзаданное значение.ы
};
const Links & links;
SignalValidationPreset( const Links & links ) : links(links) {}
};
//!Валидация сигнала - замена невалидного значения резервным значением.
struct SignalValidationAnother : public ISetupStep {
systemic::ISignal * origin = nullptr;
systemic::ISignal * alternate = nullptr;
systemic::IStatus * validity = nullptr;
bool input( Environment & env );
void build( Environment & env );
struct Links {
Environment::SignalId origin; //!<Исходный сигнал.
Environment::StatusId validity; //!<Признак валидности сигнала.
Environment::SignalId validated;//!<Валидированный сигнал.
Environment::SignalId alternate; //!<Запасное значение.
};
const Links & links;
SignalValidationAnother( const Links & links ) : links(links) {}
};
} /* namespace schematic */
} /* namespace application */
#endif /* UMLIBRARY_APPLICATION_SCHEMATIC_SIGNALVALIDATION_HH_ */