ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdcsSENS.hpp
Go to the documentation of this file.
1
7#ifndef ngcdcsSENS_H
8#define ngcdcsSENS_H
9
10
11#ifndef __cplusplus
12#error This is a C++ include file and cannot be used from plain C
13#endif
14
15#include <ngc/core/ngcb.h>
16#include <ngc/core/ngcbOBJ.hpp>
19
23#define ngcdcsSENS_NORMAL 0 //< normal state
24#define ngcdcsSENS_ERR 1 //< sensor error
25#define ngcdcsSENS_OOR 2 //< sensor out of range
26
30#define ngcdcsSENS_MAXFAULT 10
31
36 int enable; //< Enable range check
37 double min; //< Minumum value
38 double max; //< Maximum value
39 double hyst; //< Hysteresis
40
43 enable = 0; min = 0.0; max = 0.0; hyst = 0.0;
44 }
45
47 int OOR(double value) {
48 if (enable && ((value < min) || (value > max))) return (1);
49 else return (0);
50 }
51
53 int InRange(double value) {
54 if ((value > (min + hyst)) && (value < (max - hyst))) return (1);
55 else return (0);
56 }
57};
58
63{
64public:
66 double value;
67
69 int error;
70
72 int active;
73
75 int faults;
76
79
81 char unit[8];
82
84 char format[8];
85
87 char name[32];
88
91
93 ngcdcsSENS &operator=(const ngcdcsSENS &other);
94
96 explicit ngcdcsSENS(int filterSize = 9);
97
99 ngcdcsSENS(const ngcdcsSENS &other);
100
102 virtual ~ngcdcsSENS();
103
105 void AttachLogging(ngcbOBJ *obj);
106
108 char *ErrMsg() {return (erms_);}
109
111 void Prefix(const char *s);
112
114 void Reset();
115
117 void ClearFilter(int prefill);
118
120 int FilterStatus();
121
123 int Process(const int *r, ngcbALARM_SYS *alarmSystem);
124
125protected:
127 int valid;
128
130 virtual int Value(const int *r, double *data);
131
133 void OpsLog(const char *msg);
134
135private:
137 char erms_[256];
138
140 ngcbALARM *alarm_;
141
143 char prefix_[32];
144
146 ngcbOBJ *log_;
147
149 void RangeCheck_(double data, ngcbALARM_SYS *alarmSystem);
150
151};
152
157{
158public:
159 // Constructor
160 explicit ngcdcsSHTx_TEMP(int filterSize = 9);
161
163 virtual ~ngcdcsSHTx_TEMP();
164
165protected:
167 int Value(const int *r, double *data);
168
169private:
170};
171
176{
177public:
178 // Constructor
179 explicit ngcdcsSHTx_RHUM(int filterSize = 9);
180
182 virtual ~ngcdcsSHTx_RHUM();
183
184protected:
186 int Value(const int *r, double *data);
187
188private:
189};
190
195{
196public:
197 // Constructor
198 explicit ngcdcsSHT31_TEMP(int filterSize = 9);
199
201 virtual ~ngcdcsSHT31_TEMP();
202
203protected:
205 int Value(const int *r, double *data);
206
207private:
208};
209
214{
215public:
216 // Constructor
217 explicit ngcdcsSHT31_RHUM(int filterSize = 9);
218
220 virtual ~ngcdcsSHT31_RHUM();
221
222protected:
224 int Value(const int *r, double *data);
225
226private:
227};
228
233{
234public:
235 // Constructor
236 explicit ngcdcsMPL115A(int filterSize = 9);
237
239 virtual ~ngcdcsMPL115A();
240
241protected:
243 int Value(const int *r, double *data);
244
245private:
246 int reg1_; //< Coefficient register 1
247 int reg2_; //< Coefficient register 2
248 int reg3_; //< Coefficient register 3
249};
250
255{
256public:
257 // Constructor
258 explicit ngcdcsMPL3115A2_PRESSURE(int filterSize = 9);
259
262
263protected:
265 int Value(const int *r, double *data);
266
267private:
268};
269
274{
275public:
276 // Constructor
277 explicit ngcdcsMPL3115A2_TEMP(int filterSize = 9);
278
280 virtual ~ngcdcsMPL3115A2_TEMP();
281
282protected:
284 int Value(const int *r, double *data);
285
286private:
287};
288
289#endif
Definition ngcbALARM.hpp:60
Definition ngcbALARM.hpp:99
Definition ngcbMEDIAN.hpp:22
Definition ngcbOBJ.hpp:33
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL115A.cpp:117
ngcdcsMPL115A(int filterSize=9)
Definition ngcdcsMPL115A.cpp:108
virtual ~ngcdcsMPL115A()
Destructor.
Definition ngcdcsMPL115A.cpp:115
ngcdcsMPL3115A2_PRESSURE(int filterSize=9)
Definition ngcdcsMPL3115A2.cpp:21
virtual ~ngcdcsMPL3115A2_PRESSURE()
Destructor.
Definition ngcdcsMPL3115A2.cpp:28
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL3115A2.cpp:30
ngcdcsMPL3115A2_TEMP(int filterSize=9)
Definition ngcdcsMPL3115A2.cpp:47
int Value(const int *r, double *data)
Compute sensor data from registers.
Definition ngcdcsMPL3115A2.cpp:57
virtual ~ngcdcsMPL3115A2_TEMP()
Destructor.
Definition ngcdcsMPL3115A2.cpp:55
double value
Sensor value.
Definition ngcdcsSENS.hpp:66
void ClearFilter(int prefill)
Clear sensor filter.
Definition ngcdcsSENS.cpp:169
char * ErrMsg()
Error message.
Definition ngcdcsSENS.hpp:108
void OpsLog(const char *msg)
Operational log.
Definition ngcdcsSENS.cpp:129
int error
Sensor error flag.
Definition ngcdcsSENS.hpp:69
int FilterStatus()
Get filter status (return 1 if filter is filled with valid data)
Definition ngcdcsSENS.cpp:191
ngcdcsSENS(int filterSize=9)
Constructor.
Definition ngcdcsSENS.cpp:76
int valid
Sensor data valid (flag)
Definition ngcdcsSENS.hpp:127
void Prefix(const char *s)
Set prefix for logging and alarm system.
Definition ngcdcsSENS.cpp:118
int Process(const int *r, ngcbALARM_SYS *alarmSystem)
Process sensor register(s)
Definition ngcdcsSENS.cpp:207
ngcbMEDIAN * filter
Median filter for sensor.
Definition ngcdcsSENS.hpp:90
ngcdcsSENS & operator=(const ngcdcsSENS &other)
Operator =.
Definition ngcdcsSENS.cpp:19
void AttachLogging(ngcbOBJ *obj)
Attach logging system.
Definition ngcdcsSENS.cpp:113
char name[32]
Sensor name.
Definition ngcdcsSENS.hpp:87
char format[8]
Sensor data format (floating point precision)
Definition ngcdcsSENS.hpp:84
virtual int Value(const int *r, double *data)
Compute sensor data from register(s)
Definition ngcdcsSENS.cpp:237
virtual ~ngcdcsSENS()
Destructor.
Definition ngcdcsSENS.cpp:94
int active
Sensor enabled.
Definition ngcdcsSENS.hpp:72
ngcdcs_rck_t rck
Range-check.
Definition ngcdcsSENS.hpp:78
int faults
Number of faulty sensor reads.
Definition ngcdcsSENS.hpp:75
void Reset()
Reset errors and alarms.
Definition ngcdcsSENS.cpp:147
char unit[8]
Sensor unit.
Definition ngcdcsSENS.hpp:81
virtual ~ngcdcsSHT31_RHUM()
Destructor.
Definition ngcdcsSHT31.cpp:83
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHT31.cpp:85
ngcdcsSHT31_RHUM(int filterSize=9)
Definition ngcdcsSHT31.cpp:77
ngcdcsSHT31_TEMP(int filterSize=9)
Definition ngcdcsSHT31.cpp:62
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHT31.cpp:70
virtual ~ngcdcsSHT31_TEMP()
Destructor.
Definition ngcdcsSHT31.cpp:68
virtual ~ngcdcsSHTx_RHUM()
Destructor.
Definition ngcdcsSHTx.cpp:86
ngcdcsSHTx_RHUM(int filterSize=9)
Definition ngcdcsSHTx.cpp:80
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHTx.cpp:88
ngcdcsSHTx_TEMP(int filterSize=9)
Definition ngcdcsSHTx.cpp:66
virtual ~ngcdcsSHTx_TEMP()
Destructor.
Definition ngcdcsSHTx.cpp:72
int Value(const int *r, double *data)
Compute sensor data from register.
Definition ngcdcsSHTx.cpp:74
Definition ngcdcsSENS.hpp:35
double min
Definition ngcdcsSENS.hpp:37
int InRange(double value)
In range check.
Definition ngcdcsSENS.hpp:53
double max
Definition ngcdcsSENS.hpp:38
int enable
Definition ngcdcsSENS.hpp:36
int OOR(double value)
Out-of-range check.
Definition ngcdcsSENS.hpp:47
double hyst
Definition ngcdcsSENS.hpp:39
ngcdcs_rck_t()
Constructor.
Definition ngcdcsSENS.hpp:42