[go: up one dir, main page]

Menu

[r999]: / trunk / VTS3 / VTSCtrl.h  Maximize  Restore  History

Download this file

443 lines (321 with data), 15.3 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
#ifndef _VTSCtrl
#define _VTSCtrl
#include "BACnet.hpp"
#include "BACnetIP.hpp"
#include "StringTables.h"
//
// VTSCtrl
//
class VTSCtrl {
public:
BOOL ctrlNull; // no value specified
bool ctrlEnabled; // control enabled on page
int ctrlID; // dialog control ID
const CWnd* ctrlWindow; // owner window
VTSCtrl( const CWnd* wp, int id ); // bind to window and control
virtual ~VTSCtrl( void );
virtual void Enable( void ); // enable object and control
virtual void Disable( void ); // disable both
virtual void CtrlToObj( void ) = 0; // interpret control contents, save in object
virtual void ObjToCtrl( void ) = 0; // object value reflected in control
virtual void SaveCtrl( BACnetAPDUEncoder& enc ) = 0; // save the contents
virtual void RestoreCtrl( BACnetAPDUDecoder& dec ) = 0; // restore the contents
void UpdateData( BOOL bCtrlToObj = true ); // call one of above functions.
};
//
// VTSAddrCtrl
//
class VTSAddrCtrl : public VTSCtrl, public BACnetOctetString {
public:
bool emptyIsNull; // empty control value is null
VTSAddrCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSEnetAddrCtrl
//
//MAD_DB class VTSNameList;
class VTSNames;
class VTSName;
class VTSPort;
class VTSAddrComboCtrl : public VTSCtrl, public BACnetAddress
{
public:
int m_ctrlComboID;
VTSNames * m_pnamesCtrl;
VTSAddrComboCtrl( const CWnd* wp, int cid, int tid ); // bind to window and control
void LoadCombo( VTSNames * pnames, VTSPort * pport, bool okBroadcast = false );
virtual bool IsNameMatch( VTSName * pname, VTSPort * pport, bool okBroadcast ) const;
void Selchange( void ); // combo selection changed
virtual void AssignAddress(VTSName * pname) = 0;
void FindName( LPCSTR lpszName ); // initialize with a specific name (TD or IUT)
virtual void Enable( void ); // enable object and control
virtual void Disable( void ); // disable both
void CtrlToObj( void ); // interpret control contents, save in object
virtual void CtrlToAddress( LPCTSTR s );
virtual bool IsAddressMatch( BACnetAddress * pbacnetaddr );
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
class VTSEnetAddrCtrl : public VTSAddrComboCtrl
{
public:
VTSEnetAddrCtrl( const CWnd* wp, int cid, int tid ); // bind to window and control
virtual void AssignAddress(VTSName * pname);
};
class VTSMSTPAddrCtrl : public VTSAddrComboCtrl
{
public:
VTSMSTPAddrCtrl( const CWnd* wp, int cid, int tid ); // bind to window and control
virtual void AssignAddress(VTSName * pname);
virtual void CtrlToAddress( LPCTSTR s );
void ObjToCtrl( void );
};
//
// VTSIPAddrCtrl
//
//MAD_DB class VTSIPAddrCtrl : public VTSCtrl, public BACnetIPAddr {
// Warning... have to munge BACnetIPAddr methods because polymorphism removes this ability
class VTSIPAddrCtrl : public VTSAddrComboCtrl
{
public:
VTSIPAddrCtrl( const CWnd* wp, int cid, int tid ); // bind to window and controls
virtual void AssignAddress(VTSName * pname);
virtual void CtrlToAddress( LPCTSTR s );
void ObjToCtrl( void ); // object value reflected in control
};
//
// VTSRemoteAddrCtrl
//
class VTSIntegerCtrl;
class VTSRemoteAddrCtrl : public VTSAddrComboCtrl
{
public:
VTSIntegerCtrl *ctrlNet;
VTSRemoteAddrCtrl( const CWnd* wp, VTSIntegerCtrl *icp, int cid, int tid ); // bind to window and controls
virtual bool IsNameMatch( VTSName * pname, VTSPort * pport, bool okBroadcast ) const;
virtual void AssignAddress(VTSName * pname);
virtual bool IsAddressMatch( BACnetAddress * pbacnetaddr );
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSBooleanCtrl
//
class VTSBooleanCtrl : public VTSCtrl, public BACnetBoolean {
public:
bool m_bCheckBox; // true iff ctrl is a check box
VTSBooleanCtrl( const CWnd* wp, int id, bool isCheckBox = false ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SetCheck( bool fChecked ); // madanner 9/4/02
// simplifies setting control from external
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSEnumeratedCtrl
//
class VTSEnumeratedCtrl : public VTSCtrl, public BACnetEnumerated
{
public:
const char* const *m_Table; // ptr to list of char*
int m_TableSize; // number of enumeration values
bool m_bCombo; // true iff ctrl is a combo
bool m_sortStrings; // true to sort strings in the como
// Data for property selection dialog
int m_nObjType; // the Object Type when propCombo Added by Zhu Zhenhua 2003-22
int m_prevObjType; // the previous Object Type when propCombo
int m_SelectValue; // the Selecct Index of PropList Added by Zhu Zhenhua 2003-22
int m_VendorPropID; // the ID of Vendor Property when propCombo Added by Zhu Zhenhua 2003-22
VTSEnumeratedCtrl( const CWnd* wp, int id, NetworkSniffer::BACnetStringTable &table,
bool isCombo = false,
bool sortStrings = false );// bind to window and control
// Old-style constructor, deprecated in favor of the constructor taking NetworkSniffer::BACnetStringTable
VTSEnumeratedCtrl( const CWnd* wp, int id, char **table, int tableSize,
bool isCombo = false,
bool sortStrings = false ); // bind to window and control
void LoadCombo( void ); // initialize combo list
void SetDropDownSize( UINT lines ); // change the number of lines to display
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
// Select an enumerated value, populating and showing the control if necessary
void SetEnumValue( int theValue );
private:
void EnumToSelect();
void SelectToEnum();
};
void SetDropDownSize( CComboBox& box, UINT lines );
//
// VTSUnsignedCtrl
//
class VTSUnsignedCtrl : public VTSCtrl, public BACnetUnsigned {
public:
VTSUnsignedCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSIntegerCtrl
//
class VTSIntegerCtrl : public VTSCtrl, public BACnetInteger {
public:
VTSIntegerCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSRealCtrl
//
class VTSRealCtrl : public VTSCtrl, public BACnetReal {
public:
VTSRealCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSDoubleCtrl
//
class VTSDoubleCtrl : public VTSCtrl, public BACnetDouble {
public:
VTSDoubleCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSCharacterStringCtrl
//
class VTSCharacterStringCtrl : public VTSCtrl, public BACnetCharacterString {
public:
bool emptyIsNull; // empty control value is null
VTSCharacterStringCtrl( const CWnd* wp, int id ); // bind to window and control
virtual ~VTSCharacterStringCtrl();
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSOctetStringCtrl
//
class VTSOctetStringCtrl : public VTSCtrl, public BACnetOctetString {
public:
bool emptyIsNull; // empty control value is null
VTSOctetStringCtrl( const CWnd* wp, int id ); // bind to window and control
virtual ~VTSOctetStringCtrl();
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSBitStringCtrl
//
class VTSBitStringCtrl : public VTSCtrl, public BACnetBitString {
public:
bool emptyIsNull; // empty control value is null
VTSBitStringCtrl( const CWnd* wp, int id ); // bind to window and control
~VTSBitStringCtrl();
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSDateCtrl
//
class VTSDateCtrl : public VTSCtrl, public BACnetDate {
public:
VTSDateCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSTimeCtrl
//
class VTSTimeCtrl : public VTSCtrl, public BACnetTime {
public:
VTSTimeCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSObjectIdentifierCtrl
//
class VTSObjectIdentifierCtrl : public VTSCtrl, public BACnetObjectIdentifier {
public:
VTSObjectIdentifierCtrl( const CWnd* wp, int id ); // bind to window and control
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
//
// VTSListCtrl
//
struct VTSListColDesc {
char* colName; // column name
int colFormat; // LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
int colWidth; // width
int colCtrlID; // ID of matching control
};
class CSendPage;
class VTSListCtrl {
private:
bool listAddInProgress; // iff new item being added
public:
VTSListCtrl( void );
virtual ~VTSListCtrl( void );
int listSelectedRow; // selected row, -1 iff nothing selected
CSendPage *listWindow; // window containing controls
CListCtrl *listCtrl; // control to oversee
VTSListColDesc *listItems; // columns
void Init( CSendPage* wp, CListCtrl *cp, VTSListColDesc *dp ); // start empty
int GetItemCount( void ); // from the list
const char *GetItemText( int row, int col ); //
virtual const char *GetCtrlText( int ctrlID );
virtual void SetCtrlText( int ctrlID, const char *text );
virtual void EnableCtrl( int ctrlID, int enable );
void AddButtonClick( void ); // add button clicked
void RemoveButtonClick( void ); // remove button clicked
void OnItemChanging( NMHDR *pNMHDR, LRESULT *pResult );
void OnChangeItem( int ctrlID ); // text in control changed
};
//
// VTSStatusFlags
//
class VTSStatusFlags : public BACnetBitString {
public:
VTSStatusFlags( const CWnd* wp ); // bind to window and control
bool ctrlEnabled; // controls enabled on page
const CWnd* ctrlWindow; // owner window
void Enable( void ); // enable object and controls
void Disable( void ); // disable both
void InAlarmClick( void ); // In-alarm button clicked
void FaultClick( void ); // Fault button clicked
void OverriddenClick( void ); // Overridden button clicked
void OutOfServiceClick( void ); // Out-of-service button clicked
void CtrlToObj( void ); // interpret control contents, save in object
void ObjToCtrl( void ); // object value reflected in control
void UpdateData( BOOL bCtrlToObj ); // call one of the above
void SaveCtrl( BACnetAPDUEncoder& enc ); // save the contents
void RestoreCtrl( BACnetAPDUDecoder& dec ); // restore the contents
};
#endif