Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F375479
State.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
3 KB
Referenced Files
None
Subscribers
None
State.hpp
View Options
//===-- rosa/agent/State.hpp ------------------------------------*- C++ -*-===//
//
// The RoSA Framework
//
// Distributed under the terms and conditions of the Boost Software License 1.0.
// See accompanying file LICENSE.
//
// If you did not receive a copy of the license file, see
// http://www.boost.org/LICENSE_1_0.txt.
//
//===----------------------------------------------------------------------===//
///
/// \file rosa/agent/State.hpp
///
/// \author Maximilian Götzinger (maximilian.goetzinger@tuwien.ac.at)
///
/// \date 2019
///
/// \brief Definition of *state* *functionality*.
///
//===----------------------------------------------------------------------===//
#ifndef ROSA_AGENT_STATE_HPP
#define ROSA_AGENT_STATE_HPP
#include
"rosa/agent/Functionality.h"
//#include "rosa/agent/FunctionAbstractions.hpp"
//#include "rosa/agent/History.hpp"
#include
"rosa/support/debug.hpp"
#include
<stdint.h>
//#include <vector>
namespace
rosa
{
namespace
agent
{
/// State conditions defining how the condition of a \c rosa::agent::State is
/// saved in \c rosa::agent::StateInformation.
enum
StateConditions
:
char
{
UNKNOWN
=
0
,
///< The state is unknown
STABLE
=
1
,
///< The state is stable
DRIFTING
=
2
,
///< The state is drifting
MALFUNCTIONING
=
3
///< Malfunction
};
template
<
typename
CONFDATATYPE
>
struct
StateInformation
{
// Make sure the actual type arguments are matching our expectations.
STATIC_ASSERT
((
std
::
is_arithmetic
<
CONFDATATYPE
>::
value
),
"confidence type is not to arithmetic"
);
/// The StateID stores the ID of the state.
unsigned
int
StateID
;
/// The StateCondition shows the condition of a state (stable, drifting, or
/// unknown)
StateConditions
StateCondition
;
/// The StateIsValid shows whether a state is valid or invalid. In this
/// context, valid means that enough samples which are in close proximitry
/// have been inserted into the state.
bool
StateIsValid
;
/// The StateJustGotValid shows whether a state got valid (toggled from
/// invalid to valid) during the current inserted sample.
bool
StateJustGotValid
;
/// The StateIsValidAfterReentrance shows whether a state is valid after the
/// variable changed back to it again.
bool
StateIsValidAfterReentrance
;
/// TODO: describe
CONFDATATYPE
ConfidenceStateIsValid
;
CONFDATATYPE
ConfidenceStateIsInvalid
;
CONFDATATYPE
ConfidenceStateIsStable
;
CONFDATATYPE
ConfidenceStateIsDrifting
;
};
template
<
typename
INDATATYPE
,
typename
CONFDATATYPE
,
typename
PROCDATATYPE
>
class
State
:
public
Functionality
{
// Make sure the actual type arguments are matching our expectations.
STATIC_ASSERT
((
std
::
is_arithmetic
<
INDATATYPE
>::
value
),
"input data type not arithmetic"
);
STATIC_ASSERT
((
std
::
is_arithmetic
<
CONFDATATYPE
>::
value
),
"confidence abstraction type is not to arithmetic"
);
STATIC_ASSERT
((
std
::
is_arithmetic
<
PROCDATATYPE
>::
value
),
"process type is not to arithmetic"
);
protected
:
};
}
// End namespace agent
}
// End namespace rosa
#endif
// ROSA_AGENT_SIGNALSTATEDETECTOR_HPP
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Jun 8, 1:36 AM (1 d, 4 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
149937
Default Alt Text
State.hpp (3 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment