Dawn Framework 1.0
Universal data acquisition framework for embedded systems
common.hxx
1// dawn/include/dawn/prog/common.hxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#pragma once
7
8#include <cstdlib>
9
10#include "dawn/common/bindable.hxx"
11#include "dawn/porting/config.hxx"
12
13namespace dawn
14{
15// Forward declaration
16
17class CIOCommon;
18
27{
28public:
31 enum
32 {
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
109 PROG_CLASS_BITSPLIT = 20,
110 PROG_CLASS_TOGGLE = 21,
111 PROG_CLASS_COUNTER = 22,
112 PROG_CLASS_SWITCH = 23,
113 PROG_CLASS_EXPRESSION = 24,
114 PROG_CLASS_SELECTOR = 25,
115 PROG_CLASS_BITPACK = 26,
116 PROG_CLASS_CONFIGWRITER = 27,
117 PROG_CLASS_VECPACK = 28,
118 PROG_CLASS_VECSPLIT = 29,
119 PROG_CLASS_MANYTOONE = 30,
120 PROG_CLASS_ONETOMANY = 31,
121 PROG_CLASS_IOMUX = 32,
122 PROG_CLASS_IODEMUX = 33,
123
127 PROG_CLASS_LAST
128 } typedef EProgClass;
129
130 static_assert(PROG_CLASS_LAST - 1 <= SObjectId::CLS_MAX);
131
134 enum
135 {
136 PROG_CFG_FIRST = 0,
137 PROG_CFG_LAST = 31
138 };
139
148 explicit CProgCommon(CDescObject &desc);
149
150protected:
151 int prepareWritableTarget(CIOCommon *io, size_t dim, bool notify);
152};
153} // Namespace dawn
Base object with bindable object map support.
Definition bindable.hxx:25
Base class for all PROG (processing) objects.
Definition common.hxx:27
EProgClass
Program object class types.
Definition common.hxx:32
@ PROG_CLASS_LATEST
Cache latest notified sample for fetch-based readers.
Definition common.hxx:79
@ PROG_CLASS_MOVING_AVG
Moving average filter.
Definition common.hxx:87
@ PROG_CLASS_IIR_FILTER
First-order IIR filter.
Definition common.hxx:91
@ PROG_CLASS_DUMMY
Dummy program (test/helper).
Definition common.hxx:67
@ PROG_CLASS_THRESHOLD_VALUE
Threshold comparator returning gated source value.
Definition common.hxx:99
@ PROG_CLASS_STATS_MAX
Maximum value tracker.
Definition common.hxx:43
@ PROG_CLASS_USER
User-defined PROG types start here.
Definition common.hxx:126
@ PROG_CLASS_STATS_MIN
Minimum value tracker.
Definition common.hxx:39
@ PROG_CLASS_GATEWAY
Protocol-to-protocol IO gateway.
Definition common.hxx:75
@ PROG_CLASS_SEQUENCER
Periodic state sequencer.
Definition common.hxx:107
@ PROG_CLASS_ANY
Generic PROG type.
Definition common.hxx:35
@ PROG_CLASS_STATS_SUM
Sum accumulator.
Definition common.hxx:51
@ PROG_CLASS_BUFFER
Notify-driven history capture buffer.
Definition common.hxx:103
@ PROG_CLASS_SAMPLING
Periodic data sampler.
Definition common.hxx:63
@ PROG_CLASS_THRESHOLD
Threshold and hysteresis comparator.
Definition common.hxx:95
@ PROG_CLASS_REDIRECT
Generic input-to-output routing bridge.
Definition common.hxx:83
@ PROG_CLASS_STATS_RMS
Running RMS (root mean square) calculator.
Definition common.hxx:59
@ PROG_CLASS_ADJUST
Scale/offset adjustment.
Definition common.hxx:71
@ PROG_CLASS_STATS_COUNT
Sample counter.
Definition common.hxx:55
@ PROG_CLASS_STATS_AVG
Running average calculator.
Definition common.hxx:47
Out-of-tree user-extension hooks for Dawn.
Definition bindable.hxx:13