ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcdcsSENS.hpp
Go to the documentation of this file.
1
8#ifndef ngcdcsSENS_H
9#define ngcdcsSENS_H
10
11
12#ifndef __cplusplus
13#error This is a C++ include file and cannot be used from plain C
14#endif
15
16#include <ngc/core/ngcb.h>
17#include <ngc/core/ngcbOBJ.hpp>
20
24#define ngcdcsSENS_NORMAL 0 //< normal state
25#define ngcdcsSENS_ERR 1 //< sensor error
26#define ngcdcsSENS_OOR 2 //< sensor out of range
27
31#define ngcdcsSENS_MAXFAULT 10
32
37 int enable; //< Enable range check
38 double min; //< Minumum value
39 double max; //< Maximum value
40 double hyst; //< Hysteresis
41
44 enable = 0; min = 0.0; max = 0.0; hyst = 0.0;
45 }
46
48 int OOR(double value) {
49 if (enable && ((value < min) || (value > max))) return (1);
50 else return (0);
51 }
52
54 int InRange(double value) {
55 if ((value > (min + hyst)) && (value < (max - hyst))) return (1);
56 else return (0);
57 }
58};
59
64{
65public:
67 double value;
68
70 int error;
71
73 int active;
74
76 int faults;
77
80
82 char unit[8];
83
85 char format[8];
86
88 char name[32];
89
92
94 ngcdcsSENS &operator=(const ngcdcsSENS &other);
95
97 explicit ngcdcsSENS(int filterSize = 9);
98
100 ngcdcsSENS(const ngcdcsSENS &other);
101
103 virtual ~ngcdcsSENS();
104
106 void AttachLogging(ngcbOBJ *obj);
107
109 char *ErrMsg() {return (erms_);}
110
112 void Prefix(const char *s);
113
115 void Reset();
116
118 void ClearFilter(int prefill);
119
121 int FilterStatus();
122
124 int Process(const int *r, ngcbALARM_SYS *alarmSystem);
125
126protected:
128 int valid;
129
131 virtual int Value(const int *r, double *data);
132
134 void OpsLog(const char *msg);
135
136private:
138 char erms_[256];
139
141 ngcbALARM *alarm_;
142
144 char prefix_[32];
145
147 ngcbOBJ *log_;
148
150 void RangeCheck_(double data, ngcbALARM_SYS *alarmSystem);
151
152};
153
158{
159public:
160 // Constructor
161 explicit ngcdcsSHTx_TEMP(int filterSize = 9);
162
164 virtual ~ngcdcsSHTx_TEMP();
165
166protected:
168 int Value(const int *r, double *data);
169
170private:
171};
172
177{
178public:
179 // Constructor
180 explicit ngcdcsSHTx_RHUM(int filterSize = 9);
181
183 virtual ~ngcdcsSHTx_RHUM();
184
185protected:
187 int Value(const int *r, double *data);
188
189private:
190};
191
196{
197public:
198 // Constructor
199 explicit ngcdcsSHT31_TEMP(int filterSize = 9);
200
202 virtual ~ngcdcsSHT31_TEMP();
203
204protected:
206 int Value(const int *r, double *data);
207
208private:
209};
210
215{
216public:
217 // Constructor
218 explicit ngcdcsSHT31_RHUM(int filterSize = 9);
219
221 virtual ~ngcdcsSHT31_RHUM();
222
223protected:
225 int Value(const int *r, double *data);
226
227private:
228};
229
234{
235public:
236 // Constructor
237 explicit ngcdcsMPL115A(int filterSize = 9);
238
240 virtual ~ngcdcsMPL115A();
241
242protected:
244 int Value(const int *r, double *data);
245
246private:
247 int reg1_; //< Coefficient register 1
248 int reg2_; //< Coefficient register 2
249 int reg3_; //< Coefficient register 3
250};
251
256{
257public:
258 // Constructor
259 explicit ngcdcsMPL3115A2_PRESSURE(int filterSize = 9);
260
263
264protected:
266 int Value(const int *r, double *data);
267
268private:
269};
270
275{
276public:
277 // Constructor
278 explicit ngcdcsMPL3115A2_TEMP(int filterSize = 9);
279
281 virtual ~ngcdcsMPL3115A2_TEMP();
282
283protected:
285 int Value(const int *r, double *data);
286
287private:
288};
289
290#endif
Definition ngcbALARM.hpp:61
Definition ngcbALARM.hpp:100
Definition ngcbMEDIAN.hpp:23
Definition ngcbOBJ.hpp:34
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL115A.cpp:118
ngcdcsMPL115A(int filterSize=9)
Definition ngcdcsMPL115A.cpp:109
virtual ~ngcdcsMPL115A()
Destructor.
Definition ngcdcsMPL115A.cpp:116
ngcdcsMPL3115A2_PRESSURE(int filterSize=9)
Definition ngcdcsMPL3115A2.cpp:22
virtual ~ngcdcsMPL3115A2_PRESSURE()
Destructor.
Definition ngcdcsMPL3115A2.cpp:29
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL3115A2.cpp:31
ngcdcsMPL3115A2_TEMP(int filterSize=9)
Definition ngcdcsMPL3115A2.cpp:48
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL3115A2.cpp:58
virtual ~ngcdcsMPL3115A2_TEMP()
Destructor.
Definition ngcdcsMPL3115A2.cpp:56
double value
Sensor value.
Definition ngcdcsSENS.hpp:67
void ClearFilter(int prefill)
Clear sensor filter.
Definition ngcdcsSENS.cpp:170
char * ErrMsg()
Error message.
Definition ngcdcsSENS.hpp:109
void OpsLog(const char *msg)
Operational log.
Definition ngcdcsSENS.cpp:130
int error
Sensor error flag.
Definition ngcdcsSENS.hpp:70
int FilterStatus()
Get filter status (return 1 if filter is filled with valid data)
Definition ngcdcsSENS.cpp:192
ngcdcsSENS(int filterSize=9)
Constructor.
Definition ngcdcsSENS.cpp:77
int valid
Sensor data valid (flag)
Definition ngcdcsSENS.hpp:128
void Prefix(const char *s)
Set prefix for logging and alarm system.
Definition ngcdcsSENS.cpp:119
int Process(const int *r, ngcbALARM_SYS *alarmSystem)
Process sensor register(s)
Definition ngcdcsSENS.cpp:208
ngcbMEDIAN * filter
Median filter for sensor.
Definition ngcdcsSENS.hpp:91
ngcdcsSENS & operator=(const ngcdcsSENS &other)
Operator =.
Definition ngcdcsSENS.cpp:20
void AttachLogging(ngcbOBJ *obj)
Attach logging system.
Definition ngcdcsSENS.cpp:114
char name[32]
Sensor name.
Definition ngcdcsSENS.hpp:88
char format[8]
Sensor data format (floating point precision)
Definition ngcdcsSENS.hpp:85
virtual int Value(const int *r, double *data)
Compute sensor data from register(s)
Definition ngcdcsSENS.cpp:238
virtual ~ngcdcsSENS()
Destructor.
Definition ngcdcsSENS.cpp:95
int active
Sensor enabled.
Definition ngcdcsSENS.hpp:73
ngcdcs_rck_t rck
Range-check.
Definition ngcdcsSENS.hpp:79
int faults
Number of faulty sensor reads.
Definition ngcdcsSENS.hpp:76
void Reset()
Reset errors and alarms.
Definition ngcdcsSENS.cpp:148
char unit[8]
Sensor unit.
Definition ngcdcsSENS.hpp:82
virtual ~ngcdcsSHT31_RHUM()
Destructor.
Definition ngcdcsSHT31.cpp:84
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHT31.cpp:86
ngcdcsSHT31_RHUM(int filterSize=9)
Definition ngcdcsSHT31.cpp:78
ngcdcsSHT31_TEMP(int filterSize=9)
Definition ngcdcsSHT31.cpp:63
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHT31.cpp:71
virtual ~ngcdcsSHT31_TEMP()
Destructor.
Definition ngcdcsSHT31.cpp:69
virtual ~ngcdcsSHTx_RHUM()
Destructor.
Definition ngcdcsSHTx.cpp:87
ngcdcsSHTx_RHUM(int filterSize=9)
Definition ngcdcsSHTx.cpp:81
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHTx.cpp:89
ngcdcsSHTx_TEMP(int filterSize=9)
Definition ngcdcsSHTx.cpp:67
virtual ~ngcdcsSHTx_TEMP()
Destructor.
Definition ngcdcsSHTx.cpp:73
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHTx.cpp:75
Definition ngcdcsSENS.hpp:36
double min
Definition ngcdcsSENS.hpp:38
int InRange(double value)
In range check.
Definition ngcdcsSENS.hpp:54
double max
Definition ngcdcsSENS.hpp:39
int enable
Definition ngcdcsSENS.hpp:37
int OOR(double value)
Out-of-range check.
Definition ngcdcsSENS.hpp:48
double hyst
Definition ngcdcsSENS.hpp:40
ngcdcs_rck_t()
Constructor.
Definition ngcdcsSENS.hpp:43