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  );
114  void SetupChannel (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
115  real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength );
117  void ConvertToReal (uint16 auNumber, char* apUnit, uint16 auCharacteristics,
118  real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength );
119 
120  // protected members
121  protected:
123  real64 m_rMinValue;
124  real64 m_rMaxValue;
125 };
126 
127 //
128 //------------------------------------------------------------------------------
129 // class CINCOProcessImageDac
130 //------------------------------------------------------------------------------
131 
132 class CINCOProcessImageDac : public CINCOreal32
133 {
134  // constructor
135  public:
136  CINCOProcessImageDac(const char* apName, uint16 auNumber, real32 arLower,
137  real32 arUpper, char* apUnit, uint16 auCharacteristics);
138 
139  // public member functions
140  public:
141  virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
142  virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
143  virtual long GetProperty(void* aDest, char* aName, long aIndex=0,
144  long aOffset=0, long* apMaxLength=0, CINCOObject* apParent=0) override;
145 
149  virtual long GetType() override;
150 
154  virtual uint64 GetCharacteristics() override;
155 
156  // protected members
157  protected :
158  uint16 m_uNumber;
159  // channel number
160 
161  // allow dynamic object handling (new/delete)
162  DECLARE_DYNAMIC(CINCOProcessImageDac);
163 };
164 
165 //------------------------------------------------------------------------------
166 // class CINCOProcessImageDac_int32
167 //------------------------------------------------------------------------------
168 
169 class CINCOProcessImageDac_int32 : public CINCOint32
170 {
171  // constructor
172  public:
173  CINCOProcessImageDac_int32(const char* apName, uint16 auNumber, int32 aiLower,
174  int32 aiUpper, char* apUnit, uint16 auCharacteristics);
175 
176  // public member functions
177  public:
178  virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
179  virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
180 
181  // protected members
182  protected :
183  uint16 m_uNumber;
184  // channel number
185 
186  // allow dynamic object handling (new/delete)
187  DECLARE_DYNAMIC(CINCOProcessImageDac_int32);
188 };
189 
190 //------------------------------------------------------------------------------
191 // class CINCOProcessImageDac_uint32
192 //------------------------------------------------------------------------------
193 
194 class CINCOProcessImageDac_uint32 : public CINCOuint32
195 {
196  // constructor
197  public:
198  CINCOProcessImageDac_uint32(const char* apName, uint16 auNumber, uint32 auLower,
199  uint32 auUpper, char* apUnit, uint16 auCharacteristics);
200 
201  // public member functions
202  public:
203  virtual long Get(void* aDest, long& maxLength, long aIndex=0, long aOffset=0) override;
204  virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
205 
206  // protected members
207  protected :
208  uint16 m_uNumber;
209  // channel number
210 
211  // allow dynamic object handling (new/delete)
212  DECLARE_DYNAMIC(CINCOProcessImageDac_uint32);
213 };
214 
215 //------------------------------------------------------------------------------
216 // class CINCOProcessImageDac_real64
217 //------------------------------------------------------------------------------
218 
219 class CINCOProcessImageDac_real64 : public CINCOreal64
220 {
221  // constructor
222  public:
223  CINCOProcessImageDac_real64(const char* apName, uint16 auNumber, real64 arLower,
224  real64 arUpper, char* apUnit, uint16 auCharacteristics);
225 
226  // public member functions
227  public:
228  // item address = (long) pData + aIndex*sizeof(item) + aOffset
229  virtual long Put(void* aSource, long aIndex=0, long aOffset=0) override;
230 
231  // protected members
232  protected :
233  uint16 m_uNumber;
234  // channel number
235 
236  // allow dynamic object handling (new/delete)
237  DECLARE_DYNAMIC(CINCOProcessImageDac_real64);
238 };
239 
240 //------------------------------------------------------------------------------
241 // end of file
242 //------------------------------------------------------------------------------
243 
244 #endif // INC_CINOSDACCHANNEL_H
CINCOProcessImageDac_real64
Definition: cinosdacchannel.h:219
CINOSDacChannel::m_rMinValue
real64 m_rMinValue
value limits
Definition: cinosdacchannel.h:123
CINCOProcessImageDac::GetCharacteristics
virtual uint64 GetCharacteristics() override
Get item characteristics.
CINCOProcessImageDac::GetType
virtual long GetType() override
Return inco type of inco item, depends on port handler config.
CINOSDacChannel::CINOSDacChannel
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)
object constructor
CINCOProcessImageDac_uint32
Definition: cinosdacchannel.h:194
CINOSProcessImageValue
Definition: cinosprocessimagevalue.h:51
CINCOProcessImageDac_int32
Definition: cinosdacchannel.h:169
CINOSDacChannel::SetupChannel
void SetupChannel(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength)
setup chnanel
CINOSDacChannel::ConvertToReal
void ConvertToReal(uint16 auNumber, char *apUnit, uint16 auCharacteristics, real64 arLower, real64 arUpper, uint16 auType, uint16 auArrayLength)
convert to real channel
CINCOProcessImageDac
Definition: cinosdacchannel.h:132
CINOSDacChannel
Definition: cinosdacchannel.h:51