mirror of
https://github.com/Fishwaldo/open-zwave.git
synced 2025-03-15 11:31:40 +00:00
Making GetValue code more consistent, Releasing values (#1985)
* Making GetValue code more persistent throughout application, releasing values * Removed duplicate item declaration * Add "else" parts and comment
This commit is contained in:
parent
a06ee56c0c
commit
79663e1e50
1 changed files with 34 additions and 18 deletions
|
@ -310,27 +310,43 @@ namespace OpenZWave
|
|||
else
|
||||
{
|
||||
// Set an override
|
||||
Internal::VC::ValueList* state = static_cast<Internal::VC::ValueList*>(GetValue(instance, ValueID_Index_ClimateControlSchedule::OverrideState));
|
||||
Internal::VC::ValueByte* setback = static_cast<Internal::VC::ValueByte*>(GetValue(instance, ValueID_Index_ClimateControlSchedule::OverrideSetback));
|
||||
|
||||
if (state && setback)
|
||||
if (Internal::VC::ValueList* state = static_cast<Internal::VC::ValueList*>(GetValue(instance, ValueID_Index_ClimateControlSchedule::OverrideState)))
|
||||
{
|
||||
Internal::VC::ValueList::Item const *item = state->GetItem();
|
||||
if (item == NULL)
|
||||
if (Internal::VC::ValueList::Item const* item = state->GetItem())
|
||||
{
|
||||
return false;
|
||||
if (Internal::VC::ValueByte* setback = static_cast<Internal::VC::ValueByte*>(GetValue(instance, ValueID_Index_ClimateControlSchedule::OverrideSetback)))
|
||||
{
|
||||
Msg* msg = new Msg("ClimateControlScheduleCmd_OverrideSet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
|
||||
// nullptr check after "new" is kind of placebo, but it makes for consistent code
|
||||
// discussion: https://github.com/OpenZWave/open-zwave/pull/1985
|
||||
if (msg != nullptr)
|
||||
{
|
||||
msg->SetInstance(this, instance);
|
||||
msg->Append(GetNodeId());
|
||||
msg->Append(4);
|
||||
msg->Append(GetCommandClassId());
|
||||
msg->Append(ClimateControlScheduleCmd_OverrideSet);
|
||||
msg->Append((uint8)item->m_value);
|
||||
msg->Append(setback->GetValue());
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
|
||||
}
|
||||
setback->Release();
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "ClimateControlSchedule::SetValue couldn't Find ValueID_Index_ClimateControlSchedule::OverrideSetback");
|
||||
}
|
||||
}
|
||||
|
||||
Msg* msg = new Msg("ClimateControlScheduleCmd_OverrideSet", GetNodeId(), REQUEST, FUNC_ID_ZW_SEND_DATA, true, true, FUNC_ID_APPLICATION_COMMAND_HANDLER, GetCommandClassId());
|
||||
msg->SetInstance(this, instance);
|
||||
msg->Append(GetNodeId());
|
||||
msg->Append(4);
|
||||
msg->Append(GetCommandClassId());
|
||||
msg->Append(ClimateControlScheduleCmd_OverrideSet);
|
||||
msg->Append((uint8) item->m_value);
|
||||
msg->Append(setback->GetValue());
|
||||
msg->Append(GetDriver()->GetTransmitOptions());
|
||||
GetDriver()->SendMsg(msg, Driver::MsgQueue_Send);
|
||||
else
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "ClimateControlSchedule::SetValue state->GetItem() returned nullptr");
|
||||
}
|
||||
state->Release();
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::Write(LogLevel_Warning, GetNodeId(), "ClimateControlSchedule::SetValue couldn't Find ValueID_Index_ClimateControlSchedule::OverrideState");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue