MCPcopy Create free account
hub / github.com/OpenZWave/open-zwave / EnableFlag

Method EnableFlag

cpp/src/CompatOptionManager.cpp:108–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106
107
108void CompatOptionManager::EnableFlag
109(
110 CompatOptionFlags flag,
111 uint32_t defaultval
112)
113{
114 for (uint32_t i = 0; i < m_availableFlagsCount; i++) {
115 if (m_availableFlags[i].flag == flag) {
116 m_enabledCompatFlags[m_availableFlags[i].name] = flag;
117 m_CompatVals[flag].type = m_availableFlags[i].type;
118 m_CompatVals[flag].changed = false;
119 switch (m_availableFlags[i].type)
120 {
121 case COMPAT_FLAG_TYPE_BOOL:
122 if (defaultval > 2) {
123 Log::Write(LogLevel_Warning, m_owner->GetNodeId(), "EnableFlag: Default Value for %s is not a Bool", m_availableFlags[i].name.c_str());
124 defaultval = 0;
125 }
126 m_CompatVals[flag].valBool = defaultval == 0 ? false : true;
127 break;
128 case COMPAT_FLAG_TYPE_BYTE:
129 if (defaultval > UINT8_MAX) {
130 Log::Write(LogLevel_Warning, m_owner->GetNodeId(), "EnableFlag: Default Value for %s is larger than a byte", m_availableFlags[i].name.c_str());
131 defaultval = 0;
132 }
133 m_CompatVals[flag].valByte = defaultval;
134 break;
135 case COMPAT_FLAG_TYPE_SHORT:
136 if (defaultval > UINT16_MAX) {
137 Log::Write(LogLevel_Warning, m_owner->GetNodeId(), "EnableFlag: Default Value for %s is larger than a short", m_availableFlags[i].name.c_str());
138 defaultval = 0;
139 }
140 m_CompatVals[flag].valShort = defaultval;
141 break;
142 case COMPAT_FLAG_TYPE_INT:
143 if (defaultval > UINT32_MAX) {
144 Log::Write(LogLevel_Warning, m_owner->GetNodeId(), "EnableFlag: Default Value for %s is larger than a int", m_availableFlags[i].name.c_str());
145 defaultval = 0;
146 }
147 m_CompatVals[flag].valInt = defaultval;
148 break;
149 }
150 }
151 }
152}
153
154void CompatOptionManager::ReadXML
155(

Callers 13

WakeUpMethod · 0.80
DoorLockMethod · 0.80
CentralSceneMethod · 0.80
ThermostatSetpointMethod · 0.80
UserCodeMethod · 0.80
VersionMethod · 0.80
CommandClassMethod · 0.80
MultiInstanceMethod · 0.80
BasicMethod · 0.80
DoorLockLoggingMethod · 0.80
ColorMethod · 0.80

Calls 3

WriteFunction · 0.85
GetNodeIdMethod · 0.80
c_strMethod · 0.45

Tested by

no test coverage detected