Skip to content

Commit 56b316a

Browse files
committed
Added changes according to comments
1 parent 2174c28 commit 56b316a

File tree

2 files changed

+31
-42
lines changed

2 files changed

+31
-42
lines changed

examples/refrigerator-app/silabs/include/RefrigeratorManager.h

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class RefrigeratorManager
5555
void RefAndTempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size);
5656
void TempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size);
5757
void RefAlaramAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size);
58+
void HandleTemperatureAttribute(int16_t& target, const int16_t* value, const auto& attributeSetFunc, EndpointId endpointId)
5859
uint8_t GetMode();
5960
int8_t GetCurrentTemp();
6061
int8_t SetMode();

examples/refrigerator-app/silabs/src/RefrigeratorManager.cpp

+30-42
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,7 @@ int8_t RefrigeratorManager::ConvertToPrintableTemp(int16_t temperature)
9494
return static_cast<int8_t>(temperature / 100);
9595
}
9696

97-
void RefrigeratorManager::RefAndTempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value,
98-
uint16_t size)
97+
void RefrigeratorManager::RefAndTempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size)
9998
{
10099
switch (attributeId)
101100
{
@@ -118,62 +117,51 @@ void RefrigeratorManager::RefAndTempCtrlAttributeChangeHandler(EndpointId endpoi
118117
break;
119118

120119
default: {
121-
SILABS_LOG("Unhandled Refrigerator and Temprature attribute %x", attributeId);
120+
ChipLogDetail(AppServer, "Unhandled Refrigerator and Temprature attribute %x", attributeId);
122121
return;
123122
}
124123
break;
125124
}
126125
}
127126

128-
void RefrigeratorManager::TempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value,
129-
uint16_t size)
127+
void RefrigeratorManager::TempCtrlAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size)
130128
{
131129
switch (attributeId)
132130
{
133-
case TempCtrlAttr::TemperatureSetpoint::Id: {
134-
int16_t temperatureSetpoint = ConvertToPrintableTemp(*((int16_t *) value));
135-
mTemperatureSetpoint = temperatureSetpoint;
136-
TempCtrlAttr::TemperatureSetpoint::Set(endpointId, temperatureSetpoint);
137-
}
138-
break;
131+
case TempCtrlAttr::TemperatureSetpoint::Id:
132+
HandleTemperatureAttribute(mTemperatureSetpoint, static_cast<int16_t*>(value), TempCtrlAttr::TemperatureSetpoint::Set, endpointId);
133+
break;
139134

140-
case TempCtrlAttr::MinTemperature::Id: {
141-
int16_t minTemperature = ConvertToPrintableTemp(*((int16_t *) value));
142-
mMinTemperature = minTemperature;
143-
TempCtrlAttr::MinTemperature::Set(endpointId, minTemperature);
144-
}
145-
break;
135+
case TempCtrlAttr::MinTemperature::Id:
136+
HandleTemperatureAttribute(mMinTemperature, static_cast<int16_t*>(value), TempCtrlAttr::MinTemperature::Set, endpointId);
137+
break;
146138

147-
case TempCtrlAttr::MaxTemperature::Id: {
148-
int16_t maxTemperature = ConvertToPrintableTemp(*((int16_t *) value));
149-
mMaxTemperature = maxTemperature;
150-
TempCtrlAttr::MaxTemperature::Set(endpointId, maxTemperature);
151-
}
152-
break;
139+
case TempCtrlAttr::MaxTemperature::Id:
140+
HandleTemperatureAttribute(mMaxTemperature, static_cast<int16_t*>(value), TempCtrlAttr::MaxTemperature::Set, endpointId);
141+
break;
153142

154-
case TempCtrlAttr::SelectedTemperatureLevel::Id: {
155-
int16_t selectedTemperatureLevel = ConvertToPrintableTemp(*((int16_t *) value));
156-
mSelectedTemperatureLevel = selectedTemperatureLevel;
157-
TempCtrlAttr::SelectedTemperatureLevel::Set(endpointId, selectedTemperatureLevel);
158-
}
159-
break;
143+
case TempCtrlAttr::SelectedTemperatureLevel::Id:
144+
HandleTemperatureAttribute(mSelectedTemperatureLevel, static_cast<int16_t*>(value), TempCtrlAttr::SelectedTemperatureLevel::Set, endpointId);
145+
break;
160146

161-
case TempCtrlAttr::Step::Id: {
162-
int16_t step = ConvertToPrintableTemp(*((int16_t *) value));
163-
TempCtrlAttr::MaxTemperature::Set(endpointId, step);
164-
}
165-
break;
147+
case TempCtrlAttr::Step::Id:
148+
int16_t step = ConvertToPrintableTemp(*static_cast<int16_t*>(value));
149+
TempCtrlAttr::Step::Set(endpointId, step);
150+
break;
166151

167-
default: {
168-
SILABS_LOG("Unhandled Temprature controlled attribute %x", attributeId);
169-
return;
170-
}
171-
break;
152+
default:
153+
ChipLogDetail(AppServer, "Unhandled Temperature-controlled attribute %x", attributeId);
154+
return;
172155
}
173156
}
174157

175-
void RefrigeratorManager::RefAlaramAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value,
176-
uint16_t size)
158+
void HandleTemperatureAttribute(int16_t& target, const int16_t* value, const auto& attributeSetFunc, EndpointId endpointId) {
159+
int16_t tempValue = ConvertToPrintableTemp(*value);
160+
target = tempValue;
161+
attributeSetFunc(endpointId, tempValue);
162+
}
163+
164+
void RefrigeratorManager::RefAlaramAttributeChangeHandler(EndpointId endpointId, AttributeId attributeId, uint8_t * value, uint16_t size)
177165
{
178166
switch (attributeId)
179167
{
@@ -199,7 +187,7 @@ void RefrigeratorManager::RefAlaramAttributeChangeHandler(EndpointId endpointId,
199187
break;
200188

201189
default: {
202-
SILABS_LOG("Unhandled Refrigerator Alarm attribute %x", attributeId);
190+
ChipLogDetail(AppServer, "Unhandled Refrigerator Alarm attribute %x", attributeId);
203191
return;
204192
}
205193
break;

0 commit comments

Comments
 (0)