OpenZWave Library 1.6.0
Loading...
Searching...
No Matches
CompatOptionManager.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2//
3// CompatOptionManager.h
4//
5// Handles Compatibility Flags in Config Files
6//
7// Copyright (c) 2019 Justin Hammond <justin@dynam.ac>
8//
9// SOFTWARE NOTICE AND LICENSE
10//
11// This file is part of OpenZWave.
12//
13// OpenZWave is free software: you can redistribute it and/or modify
14// it under the terms of the GNU Lesser General Public License as published
15// by the Free Software Foundation, either version 3 of the License,
16// or (at your option) any later version.
17//
18// OpenZWave is distributed in the hope that it will be useful,
19// but WITHOUT ANY WARRANTY; without even the implied warranty of
20// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21// GNU Lesser General Public License for more details.
22//
23// You should have received a copy of the GNU Lesser General Public License
24// along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
25//
26//-----------------------------------------------------------------------------
27
28#ifndef CPP_SRC_COMPATOPTIONMANAGER_H_
29#define CPP_SRC_COMPATOPTIONMANAGER_H_
30
31#include "Defs.h"
32#include "tinyxml.h"
33
34#include <map>
35
36namespace OpenZWave {
37
76
84
90
94 bool changed;
95 union {
96 bool valBool;
97 uint8_t valByte;
98 uint16_t valShort;
99 uint32_t valInt;
100 };
101};
102
108
109class CommandClass;
111public:
113 virtual ~CompatOptionManager();
114
115 void SetNodeAndCC(uint8_t node, uint8_t cc);
116 void EnableFlag(CompatOptionFlags flag, uint32_t defaultval);
117
118 void ReadXML( TiXmlElement const* _ccElement );
119 void WriteXML( TiXmlElement* _ccElement );
120 bool GetFlagBool(CompatOptionFlags flag) const;
121 uint8_t GetFlagByte(CompatOptionFlags flag) const;
122 uint16_t GetFlagShort(CompatOptionFlags flag) const;
123 uint32_t GetFlagInt(CompatOptionFlags flag) const;
124 bool SetFlagBool(CompatOptionFlags flag, bool value);
125 bool SetFlagByte(CompatOptionFlags flag, uint8_t value);
126 bool SetFlagShort(CompatOptionFlags flag, uint16_t value);
127 bool SetFlagInt(CompatOptionFlags flag, uint32_t value);
128private:
129 string GetFlagName(CompatOptionFlags flag) const;
130 string GetXMLTagName();
131 map<CompatOptionFlags, CompatOptionFlagStorage> m_CompatVals;
132 map<string, CompatOptionFlags> m_enabledCompatFlags;
133 CommandClass *m_owner;
134 CompatOptionType m_comtype;
135 CompatOptionFlagDefintions *m_availableFlags;
136 uint32_t m_availableFlagsCount;
137};
138
139} /* namespace OpenZWave */
140
141#endif /* CPP_SRC_COMPATOPTIONMANAGER_H_ */
Base class for all Z-Wave command classes.
Definition CommandClass.h:56
Definition CompatOptionManager.h:110
void WriteXML(TiXmlElement *_ccElement)
Definition CompatOptionManager.cpp:228
bool SetFlagBool(CompatOptionFlags flag, bool value)
Definition CompatOptionManager.cpp:335
void EnableFlag(CompatOptionFlags flag, uint32_t defaultval)
Definition CompatOptionManager.cpp:109
uint16_t GetFlagShort(CompatOptionFlags flag) const
Definition CompatOptionManager.cpp:301
void ReadXML(TiXmlElement const *_ccElement)
Definition CompatOptionManager.cpp:155
void SetNodeAndCC(uint8_t node, uint8_t cc)
bool GetFlagBool(CompatOptionFlags flag) const
Definition CompatOptionManager.cpp:266
bool SetFlagByte(CompatOptionFlags flag, uint8_t value)
Definition CompatOptionManager.cpp:355
virtual ~CompatOptionManager()
Definition CompatOptionManager.cpp:102
uint8_t GetFlagByte(CompatOptionFlags flag) const
Definition CompatOptionManager.cpp:284
bool SetFlagShort(CompatOptionFlags flag, uint16_t value)
Definition CompatOptionManager.cpp:375
uint32_t GetFlagInt(CompatOptionFlags flag) const
Definition CompatOptionManager.cpp:318
bool SetFlagInt(CompatOptionFlags flag, uint32_t value)
Definition CompatOptionManager.cpp:395
Definition Bitfield.h:35
CompatOptionFlags
Definition CompatOptionManager.h:39
@ STATE_FLAG_STATIC_REQUESTS
Definition CompatOptionManager.h:60
@ COMPAT_FLAG_TSSP_ALTTYPEINTERPRETATION
Definition CompatOptionManager.h:55
@ COMPAT_FLAG_MI_MAPROOTTOENDPOINT
Definition CompatOptionManager.h:50
@ STATE_FLAG_DOORLOCKLOG_MAXRECORDS
Definition CompatOptionManager.h:73
@ COMPAT_FLAG_MI_FORCEUNIQUEENDPOINTS
Definition CompatOptionManager.h:51
@ STATE_FLAG_DOORLOCK_TIMEOUT
Definition CompatOptionManager.h:68
@ COMPAT_FLAG_MI_IGNMCCAPREPORTS
Definition CompatOptionManager.h:52
@ COMPAT_FLAG_MCA_FORCEINSTANCES
Definition CompatOptionManager.h:49
@ COMPAT_FLAG_VERSION_GETCLASSVERSION
Definition CompatOptionManager.h:57
@ STATE_FLAG_INNIF
Definition CompatOptionManager.h:63
@ COMPAT_FLAG_TSSP_BASE
Definition CompatOptionManager.h:54
@ COMPAT_FLAG_MI_ENDPOINTHINT
Definition CompatOptionManager.h:53
@ STATE_FLAG_DOORLOCK_TIMEOUTMINS
Definition CompatOptionManager.h:71
@ STATE_FLAG_DOORLOCK_OUTSIDEMODE
Definition CompatOptionManager.h:70
@ STATE_FLAG_AFTERMARK
Definition CompatOptionManager.h:61
@ STATE_FLAG_DOORLOCK_TIMEOUTSECS
Definition CompatOptionManager.h:72
@ STATE_FLAG_CCS_CHANGECOUNTER
Definition CompatOptionManager.h:66
@ STATE_FLAG_CCVERSION
Definition CompatOptionManager.h:59
@ STATE_FLAG_USERCODE_COUNT
Definition CompatOptionManager.h:74
@ COMPAT_FLAG_REFRESHONWAKEUP
Definition CompatOptionManager.h:44
@ STATE_FLAG_CS_SCENECOUNT
Definition CompatOptionManager.h:64
@ COMPAT_FLAG_CREATEVARS
Definition CompatOptionManager.h:43
@ COMPAT_FLAG_COLOR_IDXBUG
Definition CompatOptionManager.h:48
@ STATE_FLAG_ENCRYPTED
Definition CompatOptionManager.h:62
@ COMPAT_FLAG_BASIC_IGNOREREMAPPING
Definition CompatOptionManager.h:45
@ COMPAT_FLAG_BASIC_SETASREPORT
Definition CompatOptionManager.h:46
@ COMPAT_FLAG_FORCEVERSION
Definition CompatOptionManager.h:42
@ COMPAT_FLAG_GETSUPPORTED
Definition CompatOptionManager.h:40
@ COMPAT_FLAG_OVERRIDEPRECISION
Definition CompatOptionManager.h:41
@ COMPAT_FLAG_UC_EXPOSERAWVALUE
Definition CompatOptionManager.h:56
@ STATE_FLAG_COLOR_CHANNELS
Definition CompatOptionManager.h:67
@ STATE_FLAG_CS_CLEARTIMEOUT
Definition CompatOptionManager.h:65
@ COMPAT_FLAG_WAKEUP_DELAYNMI
Definition CompatOptionManager.h:58
@ STATE_FLAG_DOORLOCK_INSIDEMODE
Definition CompatOptionManager.h:69
@ COMPAT_FLAG_BASIC_MAPPING
Definition CompatOptionManager.h:47
CompatOptionFlagType
Definition CompatOptionManager.h:78
@ COMPAT_FLAG_TYPE_INT
Definition CompatOptionManager.h:82
@ COMPAT_FLAG_TYPE_SHORT
Definition CompatOptionManager.h:81
@ COMPAT_FLAG_TYPE_BYTE
Definition CompatOptionManager.h:80
@ COMPAT_FLAG_TYPE_BOOL
Definition CompatOptionManager.h:79
CompatOptionType
Definition CompatOptionManager.h:86
@ CompatOptionType_Compatibility
Definition CompatOptionManager.h:87
@ CompatOptionType_Discovery
Definition CompatOptionManager.h:88
Definition CompatOptionManager.h:103
string name
Definition CompatOptionManager.h:104
CompatOptionFlags flag
Definition CompatOptionManager.h:105
CompatOptionFlagType type
Definition CompatOptionManager.h:106
Definition CompatOptionManager.h:91
uint8_t valByte
Definition CompatOptionManager.h:97
uint16_t valShort
Definition CompatOptionManager.h:98
bool valBool
Definition CompatOptionManager.h:96
bool changed
Definition CompatOptionManager.h:94
CompatOptionFlags flag
Definition CompatOptionManager.h:92
CompatOptionFlagType type
Definition CompatOptionManager.h:93
uint32_t valInt
Definition CompatOptionManager.h:99