Skip to content

Commit d0fd88e

Browse files
Vietrzr
authored andcommitted
UIC-3272: Switch Color Command Class Cpp
UIC-3272: Fix mismatch attribute size Due to legacy reason some attributes are stored as uint32_t while being single byte (uint8_t). This cause issue with the C++ API and those attribute needs to manually set a raw bytes. UIC-3272: fixed issue with types value Origin: #146 Signed-off-by: Philippe Coval <philippe.coval@silabs.com>
1 parent 28f9664 commit d0fd88e

10 files changed

+1542
-542
lines changed

applications/zpc/components/zpc_attribute_store/include/attribute_store_defined_attribute_types.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,31 @@ DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_VALUE,
416416
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_DURATION,
417417
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x6))
418418

419+
///< This represents a Up/Down value in Color Switch Start Level Change Command
420+
/// Located under ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE
421+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_UP_DOWN,
422+
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x7))
423+
424+
///< This represents a Ignore Start Level in Color Switch Start Level Change Command
425+
/// Located under ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE
426+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_IGNORE_START_LEVEL,
427+
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x8))
428+
429+
///< This represents a Start Level in Color Switch Start Level Change Command
430+
/// Located under ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE
431+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_START_LEVEL,
432+
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x9))
433+
434+
///< This represents a Color Switch Start Level Change
435+
/// Located under ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE
436+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_START_CHANGE,
437+
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x0A))
438+
439+
///< This represents a Color Switch Stop Level Change
440+
/// Located under ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE
441+
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STOP_CHANGE,
442+
((COMMAND_CLASS_SWITCH_COLOR << 8) | 0x0B))
443+
419444
///////////////////////////////////
420445
// Multilevel Sensor Command Class
421446
DEFINE_ATTRIBUTE(ATTRIBUTE_COMMAND_CLASS_SENSOR_MULTILEVEL_VERSION,

applications/zpc/components/zpc_attribute_store/include/command_class_types/zwave_command_class_color_switch_types.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,17 @@ typedef uint8_t color_component_id_t;
8989
typedef uint32_t color_component_id_value_t;
9090
typedef uint32_t color_component_id_duration_t;
9191

92+
///> Color Component ID
93+
typedef enum {
94+
WARM_WHITE = 0,
95+
COLD_WHITE = 1,
96+
RED = 2,
97+
GREEN = 3,
98+
BLUE = 4,
99+
AMBER = 5,
100+
CYAN = 6,
101+
PURPLE = 7
102+
} color_component_id_enum;
103+
92104
#endif //ZWAVE_COMMAND_CLASS_COLOR_SWITCH_TYPES_H
93105
/** @} end zwave_command_class_color_switch_types */

applications/zpc/components/zpc_attribute_store/src/zpc_attribute_store_type_registration.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,12 @@ static const std::vector<attribute_schema_t> attribute_schema = {
167167
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, "Color Switch State", ATTRIBUTE_ENDPOINT_ID, ENUM_STORAGE_TYPE},
168168
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_COLOR_COMPONENT_ID, "Component ID", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, U8_STORAGE_TYPE},
169169
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_VALUE, "Value", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_COLOR_COMPONENT_ID, U32_STORAGE_TYPE},
170+
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_START_CHANGE, "Color Start Level Change", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_COLOR_COMPONENT_ID, U8_STORAGE_TYPE},
171+
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STOP_CHANGE, "Color Stop Level Change", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_COLOR_COMPONENT_ID, U8_STORAGE_TYPE},
170172
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_DURATION, "Duration", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, U32_STORAGE_TYPE},
173+
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_UP_DOWN, "Up Down", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, U8_STORAGE_TYPE},
174+
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_IGNORE_START_LEVEL, "Ignore Start Level", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, U8_STORAGE_TYPE},
175+
{ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_START_LEVEL, "Start Level", ATTRIBUTE_COMMAND_CLASS_SWITCH_COLOR_STATE, U8_STORAGE_TYPE},
171176
/////////////////////////////////////////////////////////////////////
172177
// Configuration Command Class attributes
173178
/////////////////////////////////////////////////////////////////////

applications/zpc/components/zwave_command_classes/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ add_library(
4646
src/zwave_command_class_supervision.c
4747
src/zwave_command_class_supervision_process.cpp
4848
src/zwave_command_class_sound_switch.c
49-
src/zwave_command_class_switch_color.c
49+
src/zwave_command_class_switch_color.cpp
5050
src/zwave_command_class_switch_multilevel.c
5151
src/zwave_command_class_thermostat_mode.c
5252
src/zwave_command_class_thermostat_fan_mode.c

applications/zpc/components/zwave_command_classes/src/zwave_command_class_switch_color.c

Lines changed: 0 additions & 269 deletions
This file was deleted.

0 commit comments

Comments
 (0)