16
16
* limitations under the License.
17
17
*/
18
18
19
- #include < app/clusters/electrical-power-measurement-server/electrical-power-measurement-server .h>
19
+ #include < ElectricalPowerMeasurementDelegate .h>
20
20
21
21
using namespace chip ;
22
22
using namespace chip ::app::Clusters;
23
23
using namespace chip ::app::Clusters::ElectricalPowerMeasurement;
24
- using namespace chip ::app::Clusters::ElectricalPowerMeasurement::Structs;
25
24
26
- namespace chip {
27
- namespace app {
28
- namespace Clusters {
29
- namespace ElectricalPowerMeasurement {
30
-
31
- static MeasurementAccuracyRangeStruct::Type activeCurrentAccuracyRanges[] = { { .rangeMin = 500 , .rangeMax = 1000 } };
32
-
33
- class StubAccuracyIterator : public Delegate ::AccuracyIterator
34
- {
35
- public:
36
- size_t Count () override ;
37
- bool Next (MeasurementAccuracyStruct::Type & output) override ;
38
- void Release () override ;
39
-
40
- private:
41
- uint8_t mIndex ;
42
- };
43
-
44
- size_t StubAccuracyIterator::Count ()
45
- {
46
- return 1 ;
47
- }
48
-
49
- bool StubAccuracyIterator::Next (MeasurementAccuracyStruct::Type & output)
50
- {
51
- if (mIndex >= 1 )
52
- {
53
- return false ;
54
- }
55
- output.measurementType = MeasurementTypeEnum::kActiveCurrent ;
56
- output.measured = true ;
57
- output.minMeasuredValue = -10000000 ;
58
- output.maxMeasuredValue = 10000000 ;
59
- output.accuracyRanges = DataModel::List<const MeasurementAccuracyRangeStruct::Type>(activeCurrentAccuracyRanges);
60
- mIndex ++;
61
- return true ;
62
- }
63
-
64
- void StubAccuracyIterator::Release ()
65
- {
66
- mIndex = 0 ;
67
- }
68
-
69
- class StubRangeIterator : public Delegate ::RangeIterator
70
- {
71
- public:
72
- size_t Count () override ;
73
- bool Next (MeasurementRangeStruct::Type & output) override ;
74
- void Release () override ;
75
- };
76
-
77
- size_t StubRangeIterator::Count ()
78
- {
79
- return 0 ;
80
- }
81
-
82
- bool StubRangeIterator::Next (MeasurementRangeStruct::Type & output)
83
- {
84
- return false ;
85
- }
86
-
87
- void StubRangeIterator::Release () {}
88
-
89
- class StubHarmonicMeasurementIterator : public Delegate ::HarmonicMeasurementIterator
90
- {
91
- public:
92
- size_t Count () override ;
93
- bool Next (HarmonicMeasurementStruct::Type & output) override ;
94
- void Release () override ;
95
- };
96
-
97
- size_t StubHarmonicMeasurementIterator::Count ()
98
- {
99
- return 0 ;
100
- }
101
-
102
- bool StubHarmonicMeasurementIterator::Next (HarmonicMeasurementStruct::Type & output)
103
- {
104
- return false ;
105
- }
106
-
107
- void StubHarmonicMeasurementIterator::Release () {}
108
-
109
- static StubAccuracyIterator accuracyIterator;
110
- static StubRangeIterator rangeIterator;
111
- static StubHarmonicMeasurementIterator harmonicMeasurementIterator;
112
-
113
- class ElectricalPowerMeasurementDelegate : public Delegate
114
- {
115
- public:
116
- PowerModeEnum GetPowerMode () override ;
117
- uint8_t GetNumberOfMeasurementTypes () override ;
118
- AccuracyIterator * IterateAccuracy () override ;
119
- RangeIterator * IterateRanges () override ;
120
- DataModel::Nullable<int64_t > GetVoltage () override ;
121
- DataModel::Nullable<int64_t > GetActiveCurrent () override ;
122
- DataModel::Nullable<int64_t > GetReactiveCurrent () override ;
123
- DataModel::Nullable<int64_t > GetApparentCurrent () override ;
124
- DataModel::Nullable<int64_t > GetActivePower () override ;
125
- DataModel::Nullable<int64_t > GetReactivePower () override ;
126
- DataModel::Nullable<int64_t > GetApparentPower () override ;
127
- DataModel::Nullable<int64_t > GetRMSVoltage () override ;
128
- DataModel::Nullable<int64_t > GetRMSCurrent () override ;
129
- DataModel::Nullable<int64_t > GetRMSPower () override ;
130
- DataModel::Nullable<int64_t > GetFrequency () override ;
131
- HarmonicMeasurementIterator * IterateHarmonicCurrents () override ;
132
- HarmonicMeasurementIterator * IterateHarmonicPhases () override ;
133
- DataModel::Nullable<int64_t > GetPowerFactor () override ;
134
- DataModel::Nullable<int64_t > GetNeutralCurrent () override ;
135
-
136
- ~ElectricalPowerMeasurementDelegate () = default ;
137
- };
138
-
139
- PowerModeEnum ElectricalPowerMeasurementDelegate::GetPowerMode ()
140
- {
141
- return PowerModeEnum::kAc ;
142
- }
143
-
144
- uint8_t ElectricalPowerMeasurementDelegate::GetNumberOfMeasurementTypes ()
145
- {
146
- return 1 ;
147
- }
148
-
149
- Delegate::AccuracyIterator * ElectricalPowerMeasurementDelegate::IterateAccuracy ()
150
- {
151
- return &accuracyIterator;
152
- }
153
-
154
- Delegate::RangeIterator * ElectricalPowerMeasurementDelegate::IterateRanges ()
155
- {
156
- return &rangeIterator;
157
- }
158
-
159
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetVoltage ()
160
- {
161
- return {};
162
- }
163
-
164
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetActiveCurrent ()
165
- {
166
- return {};
167
- }
168
-
169
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetReactiveCurrent ()
170
- {
171
- return {};
172
- }
173
-
174
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetApparentCurrent ()
175
- {
176
- return {};
177
- }
178
-
179
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetActivePower ()
180
- {
181
- return DataModel::Nullable<int64_t >(10000 );
182
- }
183
-
184
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetReactivePower ()
185
- {
186
- return {};
187
- }
188
-
189
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetApparentPower ()
190
- {
191
- return {};
192
- }
193
-
194
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetRMSVoltage ()
195
- {
196
- return {};
197
- }
198
-
199
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetRMSCurrent ()
200
- {
201
- return {};
202
- }
203
-
204
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetRMSPower ()
205
- {
206
- return {};
207
- }
208
-
209
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetFrequency ()
210
- {
211
- return {};
212
- }
213
-
214
- Delegate::HarmonicMeasurementIterator * ElectricalPowerMeasurementDelegate::IterateHarmonicCurrents ()
215
- {
216
- return &harmonicMeasurementIterator;
217
- }
218
-
219
- Delegate::HarmonicMeasurementIterator * ElectricalPowerMeasurementDelegate::IterateHarmonicPhases ()
220
- {
221
- return &harmonicMeasurementIterator;
222
- }
223
-
224
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetPowerFactor ()
225
- {
226
- return {};
227
- }
228
-
229
- DataModel::Nullable<int64_t > ElectricalPowerMeasurementDelegate::GetNeutralCurrent ()
230
- {
231
- return {};
232
- }
233
-
234
- } // namespace ElectricalPowerMeasurement
235
- } // namespace Clusters
236
- } // namespace app
237
- } // namespace chip
238
-
239
- static std::unique_ptr<ElectricalPowerMeasurement::Delegate> gDelegate ;
240
- static std::unique_ptr<ElectricalPowerMeasurement::Instance> gInstance ;
25
+ static std::unique_ptr<ElectricalPowerMeasurementDelegate> gEPMDelegate ;
26
+ static std::unique_ptr<ElectricalPowerMeasurementInstance> gEPMInstance ;
241
27
242
28
void emberAfElectricalPowerMeasurementClusterInitCallback (chip::EndpointId endpointId)
243
29
{
244
30
VerifyOrDie (endpointId == 1 ); // this cluster is only enabled for endpoint 1.
245
- VerifyOrDie (!gInstance );
31
+ VerifyOrDie (!gEPMInstance );
246
32
247
- gDelegate = std::make_unique<ElectricalPowerMeasurementDelegate>();
248
- if (gDelegate )
33
+ gEPMDelegate = std::make_unique<ElectricalPowerMeasurementDelegate>();
34
+ if (gEPMDelegate )
249
35
{
250
- gInstance = std::make_unique<Instance >(
251
- endpointId, *gDelegate ,
36
+ gEPMInstance = std::make_unique<ElectricalPowerMeasurementInstance >(
37
+ endpointId, *gEPMDelegate ,
252
38
BitMask<Feature, uint32_t >(Feature::kDirectCurrent , Feature::kAlternatingCurrent , Feature::kPolyphasePower ,
253
39
Feature::kHarmonics , Feature::kPowerQuality ),
254
40
BitMask<OptionalAttributes, uint32_t >(
@@ -260,6 +46,6 @@ void emberAfElectricalPowerMeasurementClusterInitCallback(chip::EndpointId endpo
260
46
OptionalAttributes::kOptionalAttributeFrequency , OptionalAttributes::kOptionalAttributePowerFactor ,
261
47
OptionalAttributes::kOptionalAttributeNeutralCurrent ));
262
48
263
- gInstance ->Init ();
49
+ gEPMInstance ->Init ();
264
50
}
265
51
}
0 commit comments