INOS
cinosadcchannel.h
Go to the documentation of this file.
1//******************************************************************************
27//******************************************************************************
28
29#ifndef INC_CINOSADCCHANNEL_H
30#define INC_CINOSADCCHANNEL_H
31
32//------------------------------------------------------------------------------
33// defines
34//------------------------------------------------------------------------------
35//
36//
37//------------------------------------------------------------------------------
38// includes
39//------------------------------------------------------------------------------
40//
41// system
42#include <cinosprocessimage.h>
43//
44// C++
45//
46// project
47//
48//------------------------------------------------------------------------------
49// class definition
50//------------------------------------------------------------------------------
51//
53{
54 //--- user interface ---------------------------------------------------
55
56 // public member functions
57 public :
58 ICACHE virtual void Set(real64 arValue) override;
59 //; set channel to arValue
60 ICACHE virtual real64 Get() override;
61 //; get value of channel
62 ICACHE real32 GetValue();
63 //; return actual channel value (mV, °C, ...) [real32]
64 #if defined(INOS_PROCESSIMAGE_OVERWRITE)
65 ICACHE void SetValue(real32 arValue, bool abOverwrite = true);
66 //; set channel to arValue
67 //; (abOverwrite=true -> value always set, abOverwrite=false -> value
68 //; set if channel is NOT in overwrite mode)
69 #else
70 ICACHE void SetValue(real32 arValue);
71 //; set channel to arValue
72 #endif
73 real32 GetRawValue(uint32 auStage=0);
74 //; return raw value before hook number 'auStage'
75 void SetRange(uint8 auRange);
76 //; set channel range
77 uint8 GetRange();
78 //; get channel range
79
80 //--- internals --------------------------------------------------------
81
82 // constructor / destructor
83 public:
85 CINOSAdcChannel (const char* apName, uint16 auNumber, char* apUnit="mV",
86 uint16 auCharacteristics=defCharShowFix + SHOW_DIGIT(3),
87 real64 arLower=REAL64(-10500.0),
88 real64 arUpper=REAL64(+10500.0),
89 uint16 auType=defType_real32, uint16 auArrayLength=1,
90 const char* apComboListData=0 // "key0;text0;key1;text1;...": if given
91 // (together with auType==defType_uint32), the channel is
92 // registered as an enum combo (see CreateINCOEnumCombo())
93 // instead of a plain number
94 );
96 void SetupChannel (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
97 real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength,
98 const char* apComboListData=0 );
100 void ConvertToReal (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
101 real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength );
102};
103
104//
105//------------------------------------------------------------------------------
106// class CINCOProcessImageAdc
107//------------------------------------------------------------------------------
108
109class CINCOProcessImageAdc : public CINCOreal32
110{
111 // constructor
112 public:
113 CINCOProcessImageAdc(const char* apName, uint16 auNumber, real32 arLower,
114 real32 arUpper, char* apUnit, uint16 auCharacteristics);
115
116 // public member functions
117 public:
118 virtual long Get(void* aDest, long& maxLength, long aIndex, long aOffset) override;
119 virtual long Put(void* aSource, long aIndex, long aOffset) override;
120 virtual long GetProperty(void* aDest, char* aName, long aIndex=0,
121 long aOffset=0, long* apMaxLength=0, CINCOObject* apParent=0) override;
122
126 virtual long GetType() override;
127
131 virtual uint64 GetCharacteristics() override;
132
133 // protected members
134 protected :
135 uint16 m_uNumber;
136 uint32 m_uForeColor;
137
138 // allow dynamic object handling (new/delete)
140};
141
142//------------------------------------------------------------------------------
143// class CINCOProcessImageAdc_int32
144//------------------------------------------------------------------------------
145
146class CINCOProcessImageAdc_int32 : public CINCOint32
147{
148 // constructor
149 public:
150 CINCOProcessImageAdc_int32(const char* apName, uint16 auNumber, int32 aiLower,
151 int32 aiUpper, char* apUnit, uint16 auCharacteristics);
152
153 // public member functions
154 public:
155 virtual long Get(void* aDest, long& maxLength, long aIndex, long aOffset) override;
156 virtual long Put(void* aSource, long aIndex, long aOffset) override;
157
158 // protected members
159 protected :
160 uint16 m_uNumber;
161 uint32 m_uForeColor;
162
163 // allow dynamic object handling (new/delete)
165};
166
167//------------------------------------------------------------------------------
168// class CINCOProcessImageAdc_uint32
169//------------------------------------------------------------------------------
170
171class CINCOProcessImageAdc_uint32 : public CINCOuint32
172{
173 // constructor
174 public:
175 CINCOProcessImageAdc_uint32(const char* apName, uint16 auNumber, uint32 auLower,
176 uint32 auUpper, char* apUnit, uint16 auCharacteristics);
177
178 // public member functions
179 public:
180 virtual long Get(void* aDest, long& maxLength, long aIndex, long aOffset) override;
181 virtual long Put(void* aSource, long aIndex, long aOffset) override;
182
183 // protected members
184 protected :
185 uint16 m_uNumber;
186 uint32 m_uForeColor;
187
188 // allow dynamic object handling (new/delete)
190};
191
192//------------------------------------------------------------------------------
193// class CINCOProcessImageAdc_combo
194//------------------------------------------------------------------------------
195//
196// Same as CINCOProcessImageAdc_uint32, but displays the raw channel value as
197// an enum combo (see CreateINCOEnumCombo()) instead of a plain number - e.g.
198// for an IODD SimpleDatatype with SingleValue enumerations, where each raw
199// value (0, 1, 2, ...) has a corresponding text (e.g. 0 -> "Off", 1 -> "On").
200
201class CINCOProcessImageAdc_combo : public CINCOuint32combo
202{
203 // constructor
204 public:
205 CINCOProcessImageAdc_combo(const char* apName, uint16 auNumber,
206 const char* apComboListData, uint32 auLower, uint32 auUpper, char* apUnit,
207 uint16 auCharacteristics);
208
209 // public member functions
210 public:
211 virtual long Get(void* aDest, long& maxLength, long aIndex, long aOffset) override;
212 virtual long Put(void* aSource, long aIndex, long aOffset) override;
213
214 // protected members
215 protected :
216 uint16 m_uNumber;
217 uint32 m_uForeColor;
218
219 // allow dynamic object handling (new/delete)
221};
222
223//------------------------------------------------------------------------------
224// class CINCOProcessImageAdc_real64
225//------------------------------------------------------------------------------
226
227class CINCOProcessImageAdc_real64 : public CINCOreal64
228{
229 // constructor
230 public:
231 CINCOProcessImageAdc_real64(const char* apName, uint16 auNumber, real64 arLower,
232 real64 arUpper, char* apUnit, uint16 auCharacteristics);
233
234 // public member functions
235 public:
236 virtual long Get(void* aDest, long& maxLength, long aIndex, long aOffset) override;
237 virtual long Put(void* aSource, long aIndex, long aOffset) override;
238
239 // protected members
240 protected :
241 uint16 m_uNumber;
242 uint32 m_uForeColor;
243
244 // allow dynamic object handling (new/delete)
246};
247
248//------------------------------------------------------------------------------
249// end of file
250//------------------------------------------------------------------------------
251
252#endif // INC_CINOSADCCHANNEL_H
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Short comment.
Definition cinosadcchannel.h:202
Definition cinosadcchannel.h:147
Definition cinosadcchannel.h:228
Definition cinosadcchannel.h:172
Definition cinosadcchannel.h:110
virtual uint64 GetCharacteristics() override
Get item characteristics.
virtual long GetType() override
Return inco type of inco item, depends on port handler config.
Definition cinosadcchannel.h:53
void ConvertToReal(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength)
convert to real channel
void SetupChannel(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength, const char *apComboListData=0)
setup chnanel
CINOSAdcChannel(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
Definition cinosprocessimagevalue.h:52