Skip to content

Commit adec050

Browse files
[SL-UP] Restyling the light switch app (#274)
1 parent 8e1bf4c commit adec050

File tree

7 files changed

+163
-177
lines changed

7 files changed

+163
-177
lines changed

examples/light-switch-app/silabs/include/AppEvent.h

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
#pragma once
2121

22+
#include <cstdint>
23+
2224
struct AppEvent;
2325
typedef void (*EventHandler)(AppEvent *);
2426

examples/light-switch-app/silabs/include/AppTask.h

-1
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,4 @@ class AppTask : public BaseApplication
7575
* @return CHIP_ERROR
7676
*/
7777
CHIP_ERROR Init();
78-
7978
};

examples/light-switch-app/silabs/include/BindingHandler.h

+3-5
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#include "app-common/zap-generated/ids/Clusters.h"
2020
#include "app-common/zap-generated/ids/Commands.h"
2121
#include "lib/core/CHIPError.h"
22-
#include <platform/CHIPDeviceLayer.h>
2322
#include <app/clusters/bindings/bindings.h>
23+
#include <platform/CHIPDeviceLayer.h>
2424
#include <variant>
2525

2626
using namespace chip;
@@ -31,15 +31,13 @@ CHIP_ERROR InitBindingHandler();
3131
void SwitchWorkerFunction(intptr_t context);
3232
void BindingWorkerFunction(intptr_t context);
3333

34-
3534
struct CommandBase
3635
{
3736
chip::BitMask<OptionsBitmap> optionsMask;
3837
chip::BitMask<OptionsBitmap> optionsOverride;
3938

4039
// Constructor to initialize the BitMask
41-
CommandBase()
42-
: optionsMask(0), optionsOverride(0) {}
40+
CommandBase() : optionsMask(0), optionsOverride(0) {}
4341
};
4442

4543
struct BindingCommandData
@@ -71,4 +69,4 @@ struct BindingCommandData
7169
};
7270
// Use std::variant to hold different command types
7371
std::variant<MoveToLevel, Move, Step, Stop> commandData;
74-
};
72+
};

examples/light-switch-app/silabs/include/LightSwitchMgr.h

+13-16
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919

2020
#pragma once
2121

22+
#include "AppEvent.h"
23+
#include <app-common/zap-generated/ids/Clusters.h>
24+
#include <app/clusters/bindings/bindings.h>
2225
#include <app/util/basic-types.h>
26+
#include <cmsis_os2.h>
2327
#include <lib/core/CHIPError.h>
2428
#include <lib/support/CodeUtils.h>
25-
#include <app/clusters/bindings/bindings.h>
2629
#include <platform/CHIPDeviceLayer.h>
27-
#include <app-common/zap-generated/ids/Clusters.h>
28-
#include "AppEvent.h"
29-
#include <cmsis_os2.h>
3030
#include <string>
3131

3232
using namespace chip;
@@ -49,10 +49,7 @@ class LightSwitchMgr
4949
};
5050

5151
static constexpr Clusters::LevelControl::Commands::Step::Type stepCommand = {
52-
.stepSize = 1,
53-
.transitionTime = 0,
54-
.optionsMask = 0,
55-
.optionsOverride = 0
52+
.stepSize = 1, .transitionTime = 0, .optionsMask = 0, .optionsOverride = 0
5653
};
5754

5855
struct Timer
@@ -106,19 +103,19 @@ class LightSwitchMgr
106103
static LightSwitchMgr sSwitch;
107104

108105
Timer * mLongPressTimer = nullptr;
109-
bool mFunctionButtonPressed = false; // True when button0 is pressed, used to trigger factory reset
110-
bool mActionButtonPressed = false; // True when button1 is pressed, used to initiate toggle or level-up/down
111-
bool mActionButtonSuppressed = false; // True when both button0 and button1 are pressed, used to switch step direction
106+
bool mFunctionButtonPressed = false; // True when button0 is pressed, used to trigger factory reset
107+
bool mActionButtonPressed = false; // True when button1 is pressed, used to initiate toggle or level-up/down
108+
bool mActionButtonSuppressed = false; // True when both button0 and button1 are pressed, used to switch step direction
112109
bool mResetWarning = false;
113110

114111
// Default Step direction for Level control
115-
StepModeEnum stepDirection = StepModeEnum::kUp;
112+
StepModeEnum stepDirection = StepModeEnum::kUp;
116113

117114
static void OnLongPressTimeout(Timer & timer);
118115
LightSwitchMgr() = default;
119116

120-
/**
121-
* @brief This function will be called when PB0 is
117+
/**
118+
* @brief This function will be called when PB0 is
122119
* long-pressed to trigger the factory-reset
123120
*/
124121
void HandleLongPress();
@@ -127,8 +124,8 @@ class LightSwitchMgr
127124

128125
chip::EndpointId mLightSwitchEndpoint = chip::kInvalidEndpointId;
129126
chip::EndpointId mGenericSwitchEndpoint = chip::kInvalidEndpointId;
130-
131-
/**
127+
128+
/**
132129
* @brief Button event processing function
133130
* Function triggers a switch action sent to the CHIP task
134131
*

examples/light-switch-app/silabs/src/BindingHandler.cpp

+32-48
Original file line numberDiff line numberDiff line change
@@ -101,38 +101,35 @@ void ProcessLevelControlUnicastBindingCommand(BindingCommandData * data, const E
101101

102102
switch (data->commandId)
103103
{
104-
case Clusters::LevelControl::Commands::MoveToLevel::Id:
105-
{
104+
case Clusters::LevelControl::Commands::MoveToLevel::Id: {
106105
Clusters::LevelControl::Commands::MoveToLevel::Type moveToLevelCommand;
107106
if (auto moveToLevel = std::get_if<BindingCommandData::MoveToLevel>(&data->commandData))
108107
{
109108
moveToLevelCommand.level = moveToLevel->level;
110109
moveToLevelCommand.transitionTime = moveToLevel->transitionTime;
111110
moveToLevelCommand.optionsMask = moveToLevel->optionsMask;
112111
moveToLevelCommand.optionsOverride = moveToLevel->optionsOverride;
113-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
114-
moveToLevelCommand, onSuccess, onFailure);
112+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
113+
binding.remote, moveToLevelCommand, onSuccess, onFailure);
115114
}
116115
break;
117116
}
118117

119-
case Clusters::LevelControl::Commands::Move::Id:
120-
{
118+
case Clusters::LevelControl::Commands::Move::Id: {
121119
Clusters::LevelControl::Commands::Move::Type moveCommand;
122120
if (auto move = std::get_if<BindingCommandData::Move>(&data->commandData))
123121
{
124122
moveCommand.moveMode = move->moveMode;
125123
moveCommand.rate = move->rate;
126124
moveCommand.optionsMask = move->optionsMask;
127125
moveCommand.optionsOverride = move->optionsOverride;
128-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
129-
moveCommand, onSuccess, onFailure);
126+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
127+
binding.remote, moveCommand, onSuccess, onFailure);
130128
}
131129
break;
132130
}
133131

134-
case Clusters::LevelControl::Commands::Step::Id:
135-
{
132+
case Clusters::LevelControl::Commands::Step::Id: {
136133
Clusters::LevelControl::Commands::Step::Type stepCommand;
137134
if (auto step = std::get_if<BindingCommandData::Step>(&data->commandData))
138135
{
@@ -141,57 +138,53 @@ void ProcessLevelControlUnicastBindingCommand(BindingCommandData * data, const E
141138
stepCommand.transitionTime = step->transitionTime;
142139
stepCommand.optionsMask = step->optionsMask;
143140
stepCommand.optionsOverride = step->optionsOverride;
144-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
145-
stepCommand, onSuccess, onFailure);
141+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
142+
binding.remote, stepCommand, onSuccess, onFailure);
146143
}
147144
break;
148145
}
149146

150-
case Clusters::LevelControl::Commands::Stop::Id:
151-
{
147+
case Clusters::LevelControl::Commands::Stop::Id: {
152148
Clusters::LevelControl::Commands::Stop::Type stopCommand;
153149
if (auto stop = std::get_if<BindingCommandData::Stop>(&data->commandData))
154150
{
155151
stopCommand.optionsMask = stop->optionsMask;
156152
stopCommand.optionsOverride = stop->optionsOverride;
157-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
158-
stopCommand, onSuccess, onFailure);
153+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
154+
binding.remote, stopCommand, onSuccess, onFailure);
159155
}
160156
break;
161157
}
162158

163-
case Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Id:
164-
{
159+
case Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Id: {
165160
Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type moveToLevelWithOnOffCommand;
166161
if (auto moveToLevel = std::get_if<BindingCommandData::MoveToLevel>(&data->commandData))
167162
{
168163
moveToLevelWithOnOffCommand.level = moveToLevel->level;
169164
moveToLevelWithOnOffCommand.transitionTime = moveToLevel->transitionTime;
170165
moveToLevelWithOnOffCommand.optionsMask = moveToLevel->optionsMask;
171166
moveToLevelWithOnOffCommand.optionsOverride = moveToLevel->optionsOverride;
172-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
173-
moveToLevelWithOnOffCommand, onSuccess, onFailure);
167+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
168+
binding.remote, moveToLevelWithOnOffCommand, onSuccess, onFailure);
174169
}
175170
break;
176171
}
177172

178-
case Clusters::LevelControl::Commands::MoveWithOnOff::Id:
179-
{
173+
case Clusters::LevelControl::Commands::MoveWithOnOff::Id: {
180174
Clusters::LevelControl::Commands::MoveWithOnOff::Type moveWithOnOffCommand;
181175
if (auto move = std::get_if<BindingCommandData::Move>(&data->commandData))
182176
{
183177
moveWithOnOffCommand.moveMode = move->moveMode;
184178
moveWithOnOffCommand.rate = move->rate;
185179
moveWithOnOffCommand.optionsMask = move->optionsMask;
186180
moveWithOnOffCommand.optionsOverride = move->optionsOverride;
187-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
188-
moveWithOnOffCommand, onSuccess, onFailure);
181+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
182+
binding.remote, moveWithOnOffCommand, onSuccess, onFailure);
189183
}
190184
break;
191185
}
192186

193-
case Clusters::LevelControl::Commands::StepWithOnOff::Id:
194-
{
187+
case Clusters::LevelControl::Commands::StepWithOnOff::Id: {
195188
Clusters::LevelControl::Commands::StepWithOnOff::Type stepWithOnOffCommand;
196189
if (auto step = std::get_if<BindingCommandData::Step>(&data->commandData))
197190
{
@@ -200,21 +193,20 @@ void ProcessLevelControlUnicastBindingCommand(BindingCommandData * data, const E
200193
stepWithOnOffCommand.transitionTime = step->transitionTime;
201194
stepWithOnOffCommand.optionsMask = step->optionsMask;
202195
stepWithOnOffCommand.optionsOverride = step->optionsOverride;
203-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
204-
stepWithOnOffCommand, onSuccess, onFailure);
196+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
197+
binding.remote, stepWithOnOffCommand, onSuccess, onFailure);
205198
}
206199
break;
207200
}
208201

209-
case Clusters::LevelControl::Commands::StopWithOnOff::Id:
210-
{
202+
case Clusters::LevelControl::Commands::StopWithOnOff::Id: {
211203
Clusters::LevelControl::Commands::StopWithOnOff::Type stopWithOnOffCommand;
212204
if (auto stop = std::get_if<BindingCommandData::Stop>(&data->commandData))
213205
{
214206
stopWithOnOffCommand.optionsMask = stop->optionsMask;
215207
stopWithOnOffCommand.optionsOverride = stop->optionsOverride;
216-
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(), binding.remote,
217-
stopWithOnOffCommand, onSuccess, onFailure);
208+
Controller::InvokeCommandRequest(peer_device->GetExchangeManager(), peer_device->GetSecureSession().Value(),
209+
binding.remote, stopWithOnOffCommand, onSuccess, onFailure);
218210
}
219211
break;
220212
}
@@ -229,8 +221,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
229221

230222
switch (data->commandId)
231223
{
232-
case Clusters::LevelControl::Commands::MoveToLevel::Id:
233-
{
224+
case Clusters::LevelControl::Commands::MoveToLevel::Id: {
234225
Clusters::LevelControl::Commands::MoveToLevel::Type moveToLevelCommand;
235226
if (auto moveToLevel = std::get_if<BindingCommandData::MoveToLevel>(&data->commandData))
236227
{
@@ -243,8 +234,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
243234
break;
244235
}
245236

246-
case Clusters::LevelControl::Commands::Move::Id:
247-
{
237+
case Clusters::LevelControl::Commands::Move::Id: {
248238
Clusters::LevelControl::Commands::Move::Type moveCommand;
249239
if (auto move = std::get_if<BindingCommandData::Move>(&data->commandData))
250240
{
@@ -257,8 +247,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
257247
break;
258248
}
259249

260-
case Clusters::LevelControl::Commands::Step::Id:
261-
{
250+
case Clusters::LevelControl::Commands::Step::Id: {
262251
Clusters::LevelControl::Commands::Step::Type stepCommand;
263252
if (auto step = std::get_if<BindingCommandData::Step>(&data->commandData))
264253
{
@@ -272,8 +261,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
272261
break;
273262
}
274263

275-
case Clusters::LevelControl::Commands::Stop::Id:
276-
{
264+
case Clusters::LevelControl::Commands::Stop::Id: {
277265
Clusters::LevelControl::Commands::Stop::Type stopCommand;
278266
if (auto stop = std::get_if<BindingCommandData::Stop>(&data->commandData))
279267
{
@@ -284,8 +272,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
284272
break;
285273
}
286274

287-
case Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Id:
288-
{
275+
case Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Id: {
289276
Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type moveToLevelWithOnOffCommand;
290277
if (auto moveToLevel = std::get_if<BindingCommandData::MoveToLevel>(&data->commandData))
291278
{
@@ -298,8 +285,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
298285
break;
299286
}
300287

301-
case Clusters::LevelControl::Commands::MoveWithOnOff::Id:
302-
{
288+
case Clusters::LevelControl::Commands::MoveWithOnOff::Id: {
303289
Clusters::LevelControl::Commands::MoveWithOnOff::Type moveWithOnOffCommand;
304290
if (auto move = std::get_if<BindingCommandData::Move>(&data->commandData))
305291
{
@@ -312,8 +298,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
312298
break;
313299
}
314300

315-
case Clusters::LevelControl::Commands::StepWithOnOff::Id:
316-
{
301+
case Clusters::LevelControl::Commands::StepWithOnOff::Id: {
317302
Clusters::LevelControl::Commands::StepWithOnOff::Type stepWithOnOffCommand;
318303
if (auto step = std::get_if<BindingCommandData::Step>(&data->commandData))
319304
{
@@ -327,8 +312,7 @@ void ProcessLevelControlGroupBindingCommand(BindingCommandData * data, const Emb
327312
break;
328313
}
329314

330-
case Clusters::LevelControl::Commands::StopWithOnOff::Id:
331-
{
315+
case Clusters::LevelControl::Commands::StopWithOnOff::Id: {
332316
Clusters::LevelControl::Commands::StopWithOnOff::Type stopWithOnOffCommand;
333317
if (auto stop = std::get_if<BindingCommandData::Stop>(&data->commandData))
334318
{

0 commit comments

Comments
 (0)