INOS
cinosdacchannel.h
Go to the documentation of this file.
1//******************************************************************************
27//******************************************************************************
28
29#ifndef INC_CINOSDACCHANNEL_H
30#define INC_CINOSDACCHANNEL_H
31
32//------------------------------------------------------------------------------
33// defines
34//------------------------------------------------------------------------------
35//
36//
37//------------------------------------------------------------------------------
38// includes
39//------------------------------------------------------------------------------
40//
41// system
42//
43// C++
44//
45// project
46//
47//------------------------------------------------------------------------------
48// class definition
49//------------------------------------------------------------------------------
50//
52{
53 //--- user interface ---------------------------------------------------
54
55 // public member functions
56 public :
57 ICACHE virtual void Set(real64 arValue) override;
58 //; set channel to arValue
59 ICACHE virtual real64 Get() override;
60 //; get value of channel
61 ICACHE real64 GetValue();
62 //; return actual channel value (mV, °C, ...) [real32]
63 ICACHE real64 GetValue64();
64 //; return actual channel value (mV, °C, ...) [real32]
65 real32 GetRawValue(uint32 auStage=0);
66 //; return raw value before hook number 'auStage'
67 #if defined(INOS_PROCESSIMAGE_OVERWRITE)
68 ICACHE void SetValue(real64 arValue, bool abOverwrite = false);
69 //; set channel to afValue
70 //; (abOverwrite=true -> value always set, abOverwrite=false -> value
71 //; set if channel is NOT in overwrite mode)
72 ICACHE void SetValueChecked(real64 arValue, bool abOverwrite = false);
73 //; set channel to afValue, limiting it to the allowed range
74 //; (abOverwrite=true -> value always set, abOverwrite=false -> value
75 //; set if channel is NOT in overwrite mode)
76 ICACHE void SetValue64(real64 arValue, bool abOverwrite = false);
77 //; set channel to afValue
78 //; (abOverwrite=true -> value always set, abOverwrite=false -> value
79 //; set if channel is NOT in overwrite mode)
80 #else
81 ICACHE void SetValue(real64 arValue);
82 //; set channel to afValue
83 ICACHE void SetValueChecked(real64 arValue);
84 //; set channel to afValue, limiting it to the allowed range
85 ICACHE void SetValue64(real64 arValue);
86 //; set channel to afValue
87 #endif
88 void SetRange(uint8 auRange);
89 //; set channel range
90 uint8 GetRange();
91 //; get channel range
92
93 real64 GetMinValue();
94 //; get minimum allowed value
95 real64 GetMaxValue();
96 //; get maximum allowed value
97 void SetMinValue(real64 arMinimum);
98 //; set minimum allowed value
99 void SetMaxValue(real64 arMaximum);
100 //; set maximum allowed value
101
102 //--- internals --------------------------------------------------------
103
104 // constructor / destructor
105 public:
107 CINOSDacChannel (const char* apName, uint16 auNumber, char* apUnit="mV",
108 uint16 auCharacteristics=defCharShowFix + SHOW_DIGIT(3),
109 real64 arLower=REAL64(-10500.0),
110 real64 arUpper=REAL64(+10500.0),
111 uint16 auType=defType_real32, uint16 auArrayLength=1,
112 const char* apComboListData=0 // "key0;text0;key1;text1;...": if given
113 // (together with auType==defType_uint32), the channel is
114 // registered as an enum combo (see CreateINCOEnumCombo())
115 // instead of a plain number
116 );
118 void SetupChannel (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
119 real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength,
120 const char* apComboListData=0 );
122 void ConvertToReal (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
123 real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength );
124
125 // protected members
126 protected:
129 real64 m_rMaxValue;
130};
131
132//
133//------------------------------------------------------------------------------
134// class CINCOProcessImageDac
135//------------------------------------------------------------------------------
136
137class CINCOProcessImageDac : public CINCOreal32
138{
139 // constructor
140 public:
141 CINCOProcessImageDac(const char* apName, uint16 auNumber, real32 arLower,
142 real32 arUpper, char* apUnit, uint16 auCharacteristics);
143
144 // public member functions
145 public:
146 virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
147 virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
148 virtual long GetProperty(void* aDest, char* aName, long aIndex=0,
149 long aOffset=0, long* apMaxLength=0, CINCOObject* apParent=0) override;
150
154 virtual long GetType() override;
155
159 virtual uint64 GetCharacteristics() override;
160
161 // protected members
162 protected :
163 uint16 m_uNumber;
164 // channel number
165
166 // allow dynamic object handling (new/delete)
168};
169
170//------------------------------------------------------------------------------
171// class CINCOProcessImageDac_int32
172//------------------------------------------------------------------------------
173
174class CINCOProcessImageDac_int32 : public CINCOint32
175{
176 // constructor
177 public:
178 CINCOProcessImageDac_int32(const char* apName, uint16 auNumber, int32 aiLower,
179 int32 aiUpper, char* apUnit, uint16 auCharacteristics);
180
181 // public member functions
182 public:
183 virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
184 virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
185
186 // protected members
187 protected :
188 uint16 m_uNumber;
189 // channel number
190
191 // allow dynamic object handling (new/delete)
193};
194
195//------------------------------------------------------------------------------
196// class CINCOProcessImageDac_uint32
197//------------------------------------------------------------------------------
198
199class CINCOProcessImageDac_uint32 : public CINCOuint32
200{
201 // constructor
202 public:
203 CINCOProcessImageDac_uint32(const char* apName, uint16 auNumber, uint32 auLower,
204 uint32 auUpper, char* apUnit, uint16 auCharacteristics);
205
206 // public member functions
207 public:
208 virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
209 virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
210
211 // protected members
212 protected :
213 uint16 m_uNumber;
214 // channel number
215
216 // allow dynamic object handling (new/delete)
218};
219
220//------------------------------------------------------------------------------
221// class CINCOProcessImageDac_combo
222//------------------------------------------------------------------------------
223//
224// Same as CINCOProcessImageDac_uint32, but displays/edits the raw channel
225// value as an enum combo (see CreateINCOEnumCombo()) instead of a plain
226// number - e.g. for an IODD SimpleDatatype with SingleValue enumerations,
227// where each raw value (0, 1, 2, ...) has a corresponding text.
228
229class CINCOProcessImageDac_combo : public CINCOuint32combo
230{
231 // constructor
232 public:
233 CINCOProcessImageDac_combo(const char* apName, uint16 auNumber,
234 const char* apComboListData, uint32 auLower, uint32 auUpper, char* apUnit,
235 uint16 auCharacteristics);
236
237 // public member functions
238 public:
239 virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
240 virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
241
242 // protected members
243 protected :
244 uint16 m_uNumber;
245 // channel number
246
247 // allow dynamic object handling (new/delete)
249};
250
251//------------------------------------------------------------------------------
252// class CINCOProcessImageDac_real64
253//------------------------------------------------------------------------------
254
255class CINCOProcessImageDac_real64 : public CINCOreal64
256{
257 // constructor
258 public:
259 CINCOProcessImageDac_real64(const char* apName, uint16 auNumber, real64 arLower,
260 real64 arUpper, char* apUnit, uint16 auCharacteristics);
261
262 // public member functions
263 public:
264 // item address = (long) pData + aIndex*sizeof(item) + aOffset
265 virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
266
267 // protected members
268 protected :
269 uint16 m_uNumber;
270 // channel number
271
272 // allow dynamic object handling (new/delete)
274};
275
276//------------------------------------------------------------------------------
277// end of file
278//------------------------------------------------------------------------------
279
280#endif // INC_CINOSDACCHANNEL_H
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosdacchannel.h:230
Definition cinosdacchannel.h:175
Definition cinosdacchannel.h:256
Definition cinosdacchannel.h:200
Definition cinosdacchannel.h:138
virtual long GetType() override
Return inco type of inco item, depends on port handler config.
virtual uint64 GetCharacteristics() override
Get item characteristics.
Definition cinosdacchannel.h:52
real64 m_rMinValue
value limits
Definition cinosdacchannel.h:128
void ConvertToReal(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength)
convert to real channel
CINOSDacChannel(const char *apName, uint16 auNumber, char *apUnit="mV", uint16 auCharacteristics=defCharShowFix+SHOW_DIGIT(3), real64 arLower=REAL64(-10500.0), real64 arUpper=REAL64(+10500.0), uint16 auType=defType_real32, uint16 auArrayLength=1, const char *apComboListData=0)
object constructor
void SetupChannel(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength, const char *apComboListData=0)
setup chnanel
Definition cinosprocessimagevalue.h:52