Welcome to mirror list, hosted at ThFree Co, Russian Federation.

zcl.ballast.config.h « general « zcl « include « stack « zigbee « STM32_WPAN « ST « Middlewares - github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 50d6f877d9ecd8ba5c629c64a521c24e628e7db8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/**
 * @file zcl.ballast.config.h
 * @heading Ballast Configuration
 * @brief ZCL Ballast Configuration cluster header
 * ZCL 7 section 5.3
 * ZCL 8 section 5.3
 * @copyright Copyright [2009 - 2020] Exegin Technologies Limited. All rights reserved.
 */

#ifndef ZCL_BALLAST_CONFIG_H
# define ZCL_BALLAST_CONFIG_H

/* @PICS.ZCL.Ballast_Config
 * BC.S | Server | True
 * BC.C | Client | True
 *
 * Server Attributes
 * BC.S.A0000 | PhysicalMinLevel | True
 * BC.S.A0001 | PhysicalMaxLevel | True
 * BC.S.A0002 | BallastStatus | True
 * BC.S.A0010 | MinLevel | True
 * BC.S.A0011 | MaxLevel | True
 * BC.S.A0014 | IntrinsicBallastFactor | False | Optional
 * BC.S.A0015 | BallastFactorAdjustment | False | Optional
 * BC.S.A0020 | LampQuantity | False | Optional
 * BC.S.A0030 | LampType | False | Optional
 * BC.S.A0031 | LampManufacturer | False | Optional
 * BC.S.A0032 | LampRatedHours | False | Optional
 * BC.S.A0033 | LampBurnHours | False | Optional
 * BC.S.A0034 | LampAlarmMode | False | Optional
 * BC.S.A0035 | LampBurnHoursTripPoint | False | Optional
 * BC.S.Afffd | ClusterRevision | True
 * BC.S.Afffe | AttributeReportingStatus | False
 *
 * Client Attributes
 * BC.C.Afffd | ClusterRevision | True
 * BC.C.Afffe | AttributeReportingStatus | False
 */

#include "zcl/zcl.h"

/** Ballast Configuration Server Attributes IDs */
enum ZbZclBallastConfigSvrAttrT {
    /* Ballast Information Attribute Set */
    ZCL_BALLAST_CONFIG_ATTR_PHY_MIN_LEVEL = 0x0000, /**< PhysicalMinLevel */
    ZCL_BALLAST_CONFIG_ATTR_PHY_MAX_LEVEL = 0x0001, /**< PhysicalMaxLevel */
    ZCL_BALLAST_CONFIG_ATTR_BALLAST_STATUS = 0x0002, /**< BallastStatus */
    /* Ballast Settings Attribute Set */
    ZCL_BALLAST_CONFIG_ATTR_MIN_LEVEL = 0x0010, /**< MinLevel */
    ZCL_BALLAST_CONFIG_ATTR_MAX_LEVEL = 0x0011, /**< MaxLevel */
    ZCL_BALLAST_CONFIG_ATTR_POWER_ON_LEVEL = 0x0012, /**< PowerOnLevel (Deprecated) */
    ZCL_BALLAST_CONFIG_ATTR_POWER_ON_FADE_TIME = 0x0013, /**< PowerOnFadeTime (Deprecated) */
    ZCL_BALLAST_CONFIG_ATTR_INTRINSIC_BALLAST_FACTOR = 0x0014, /**< IntrinsicBallastFactor (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_BALLAST_FACTOR_ADJUSTMENT = 0x0015, /**< BallastFactorAdjustment (Optional) */
    /* Lamp Information Attribute Set */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_QUANTITY = 0x0020, /**< LampQuantity (Optional) */
    /* Lamp Settings Attribute Set */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_TYPE = 0x0030, /**< LampType (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_MANUFACTURER = 0x0031, /**< LampManufacturer (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_RATED_HOURS = 0x0032, /**< LampRatedHours (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_BURN_HOURS = 0x0033, /**< LampBurnHours (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_ALARM_MODE = 0x0034, /**< LampAlarmMode (Optional) */
    ZCL_BALLAST_CONFIG_ATTR_LAMP_BURN_HOURS_TRIP_POINT = 0x0035, /**< LampBurnHoursTripPoint (Optional) */
};

/* Ballast Status (bit mask) defines */
#define ZCL_BALLAST_CONFIG_STATUS_NON_OP                         0x01 /* Ballast Non-operational */
#define ZCL_BALLAST_CONFIG_STATUS_LAMP_FAIL                      0x02 /* Lamp Failure */

/* Ballast Information attribute set defines */
#define ZCL_BALLAST_CONFIG_PHY_MIN_LEVEL_DEFAULT                 0x01
#define ZCL_BALLAST_CONFIG_PHY_MIN_LEVEL_MIN                     0x01
#define ZCL_BALLAST_CONFIG_PHY_MIN_LEVEL_MAX                     0xfe

#define ZCL_BALLAST_CONFIG_PHY_MAX_LEVEL_DEFAULT                 0xfe
#define ZCL_BALLAST_CONFIG_PHY_MAX_LEVEL_MIN                     0x01
#define ZCL_BALLAST_CONFIG_PHY_MAX_LEVEL_MAX                     0xfe

#define ZCL_BALLAST_CONFIG_BALLAST_STATUS_DEFAULT                0x00
#define ZCL_BALLAST_CONFIG_BALLAST_STATUS_MAX                    0x03

#define ZCL_BALLAST_CONFIG_BALLAST_STATUS_NON_OPERATIONAL_BIT    0x00
#define ZCL_BALLAST_CONFIG_BALLAST_STATUS_LAMP_FAILURE_BIT       0x01
#define ZCL_BALLAST_CONFIG_BALLAST_STATUS_BIT_MASK  \
    ((1 << ZCL_BALLAST_CONFIG_BALLAST_STATUS_NON_OPERATIONAL_BIT) | \
     (1 << ZCL_BALLAST_CONFIG_BALLAST_STATUS_LAMP_FAILURE_BIT))

/* Ballast Configuration Settings attribute set defines */
#define ZCL_BALLAST_CONFIG_MIN_LEVEL_MIN                         0x01
#define ZCL_BALLAST_CONFIG_MIN_LEVEL_MAX                         0xfe

#define ZCL_BALLAST_CONFIG_MAX_LEVEL_MIN                         0x01
#define ZCL_BALLAST_CONFIG_MAX_LEVEL_MAX                         0xfe

#define ZCL_BALLAST_CONFIG_INTRINSIC_BALLAST_FACTOR_DEFAULT      0xff
#define ZCL_BALLAST_CONFIG_INTRINSIC_BALLAST_FACTOR_MIN          0x00
#define ZCL_BALLAST_CONFIG_INTRINSIC_BALLAST_FACTOR_MAX          0xfe

#define ZCL_BALLAST_CONFIG_BALLAST_FACTOR_ADJ_DEFAULT            0xff
#define ZCL_BALLAST_CONFIG_BALLAST_FACTOR_ADJ_MIN                0x64
#define ZCL_BALLAST_CONFIG_BALLAST_FACTOR_ADJ_MAX                0xfe

/* Ballast Settings attribute set defines */
#define ZCL_BALLAST_CONFIG_LAMP_QUANTITY_DEFAULT                 0x00
#define ZCL_BALLAST_CONFIG_LAMP_QUANTITY_MIN                     0x00
#define ZCL_BALLAST_CONFIG_LAMP_QUANTITY_MAX                     0xfe

/* Ballast Settings attribute set defines */
#define ZCL_BALLAST_CONFIG_LAMP_TYPE_NAME_LENGTH                 0x10
#define ZCL_BALLAST_CONFIG_LAMP_MANUFACTURER_NAME_LENGTH         0x10

#define ZCL_BALLAST_CONFIG_LAMP_RATED_HOURS_DEFAULT              0xffffff
#define ZCL_BALLAST_CONFIG_LAMP_RATED_HOURS_MIN                  0x000000
#define ZCL_BALLAST_CONFIG_LAMP_RATED_HOURS_MAX                  0xfffffe

#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_DEFAULT               0x000000
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_UNKNOWN               0xffffff
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_MIN                   0x000000
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_MAX                   0xfffffe

#define ZCL_BALLAST_CONFIG_LAMP_ALARM_MODE_DEFAULT               0x00
#define ZCL_BALLAST_CONFIG_LAMP_ALARM_MODE_BIT_MASK              0x01
#define ZCL_BALLAST_CONFIG_LAMP_ALARM_MODE_BIT_POS               0x00
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOUR_ALARM_CODE             0x01

#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_TRIP_POINT_DEFAULT    0xffffff
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_TRIP_POINT_MIN        0x000000
#define ZCL_BALLAST_CONFIG_LAMP_BURN_HOURS_MAX                   0xfffffe

/* Ballast Configuration Client */
/**
 * Create a new instance of the Ballast Configuration Client cluster
 * @param zb Zigbee stack instance
 * @param endpoint Endpoint on which to create cluster
 * @return Cluster pointer, or NULL if there is an error
 */
struct ZbZclClusterT * ZbZclBallastConfigClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

/* Ballast Configuration Server */
/**
 * Create a new instance of the Ballast Configuration Server cluster
 * @param zb Zigbee stack instance
 * @param endpoint Endpoint on which to create cluster
 * @param phyMin The default minimum light output
 * @param phyMax The default maximum light output
 * @return Cluster pointer, or NULL if there is an error
 */
struct ZbZclClusterT * ZbZclBallastConfigServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, uint8_t phyMin, uint8_t phyMax);

#endif