Skip to content

Commit 3619329

Browse files
committed
Fix cluster bug.
1 parent d8e9ef4 commit 3619329

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/app/clusters/microwave-oven-control-server/microwave-oven-control-server.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ void Instance::HandleSetCookingParameters(HandlerContext & ctx, const Commands::
296296
ChipLogError(Zcl, "Microwave Oven Control: Failed to set PowerSetting, PowerSetting value is out of range"));
297297

298298
VerifyOrExit(
299-
reqPowerSettingNum % powerStepNum == 0, status = Status::InvalidCommand; ChipLogError(
299+
(reqPowerSettingNum - minPowerNum) % powerStepNum == 0, status = Status::ConstraintError; ChipLogError(
300300
Zcl,
301301
"Microwave Oven Control: Failed to set PowerSetting, PowerSetting value must be multiple of PowerStep number"));
302302

src/python_testing/TC_MWOCTRL_2_2.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def set_power_setting_expect_failure(self, endpoint, value):
4545
asserts.assert_fail("Expected an exception but received none.")
4646
except InteractionModelError as e:
4747
asserts.assert_equal(e.status, Status.ConstraintError,
48-
"Expected ConstraintError but received a different response: %x", e.status)
48+
"Expected ConstraintError but received a different response")
4949

5050
async def read_and_check_power_setting_value(self, endpoint, value):
5151
powerValue = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=Clusters.MicrowaveOvenControl.Attributes.PowerSetting)
@@ -103,31 +103,36 @@ async def test_TC_MWOCTRL_2_2(self):
103103
self.step(2)
104104
minPowerValue = 10
105105

106+
feature_map = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=attributes.FeatureMap)
107+
is_pwrnum_feature_supported = feature_map & features.kPowerAsNumber
108+
is_watts_feature_supported = feature_map & features.kPowerInWatts
109+
is_pwrlmits_feature_supported = feature_map & features.kPowerNumberLimits
110+
106111
self.step(3)
107-
if self.pics_guard(self.check_pics("MWOCTRL.S.F02")):
112+
if is_pwrlmits_feature_supported:
108113
minPowerValue = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=attributes.MinPower)
109-
logging.info("MinPower is %s" % minPowerValue)
110114
asserts.assert_true(minPowerValue >= 1, "MinPower is less than 1")
115+
logging.info("MinPower is %s" % minPowerValue)
111116

112117
self.step(4)
113118
maxPowerValue = 100
114119

115120
self.step(5)
116-
if self.pics_guard(self.check_pics("MWOCTRL.S.F02")):
121+
if is_pwrlmits_feature_supported:
117122
maxPowerValue = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=attributes.MaxPower)
118-
logging.info("MaxPower is %s" % maxPowerValue)
119123
asserts.assert_true(maxPowerValue >= minPowerValue, "MaxPower is less than MinPower")
120124
asserts.assert_true(maxPowerValue <= 100, "MaxPower is greater than 100")
125+
logging.info("MaxPower is %s" % maxPowerValue)
121126

122127
self.step(6)
123128
powerStepValue = 10
124129

125130
self.step(7)
126-
if self.pics_guard(self.check_pics("MWOCTRL.S.F02")):
131+
if is_pwrlmits_feature_supported:
127132
powerStepValue = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=attributes.PowerStep)
128-
logging.info("PowerStep is %s" % powerStepValue)
129133
asserts.assert_true(powerStepValue >= 1, "PowerStep is less than 1")
130134
asserts.assert_true(powerStepValue <= maxPowerValue, "PowerStep is greater than MaxPower")
135+
logging.info("PowerStep is %s" % powerStepValue)
131136

132137
self.step(8)
133138
powerValue = await self.read_mwoctrl_attribute_expect_success(endpoint=endpoint, attribute=attributes.PowerSetting)

0 commit comments

Comments
 (0)