|
19 | 19 | #include <app-common/zap-generated/ids/Clusters.h>
|
20 | 20 | #include <app/clusters/resource-monitoring-server/resource-monitoring-cluster-objects.h>
|
21 | 21 | #include <app/clusters/resource-monitoring-server/resource-monitoring-server.h>
|
22 |
| -#include <resource-monitoring-instances.h> |
| 22 | +#include <resource-monitoring-delegates.h> |
23 | 23 |
|
24 | 24 | using namespace chip;
|
25 | 25 | using namespace chip::app;
|
26 | 26 | using namespace chip::app::Clusters;
|
27 | 27 | using namespace chip::app::Clusters::ResourceMonitoring;
|
| 28 | +using namespace chip::app::Clusters::ActivatedCarbonFilterMonitoring; |
| 29 | +using namespace chip::app::Clusters::HepaFilterMonitoring; |
28 | 30 | using chip::Protocols::InteractionModel::Status;
|
29 | 31 |
|
30 |
| -constexpr std::bitset<4> gHepaFilterFeatureMap{ static_cast<uint32_t>(Feature::kCondition) | |
31 |
| - static_cast<uint32_t>(Feature::kWarning) | |
32 |
| - static_cast<uint32_t>(Feature::kReplacementProductList) }; |
33 |
| -constexpr std::bitset<4> gActivatedCarbonFeatureMap{ static_cast<uint32_t>(Feature::kCondition) | |
34 |
| - static_cast<uint32_t>(Feature::kWarning) | |
35 |
| - static_cast<uint32_t>(Feature::kReplacementProductList) }; |
| 32 | +constexpr std::bitset<4> gHepaFilterFeatureMap{ static_cast<uint32_t>(ResourceMonitoring::Feature::kCondition) | |
| 33 | + static_cast<uint32_t>(ResourceMonitoring::Feature::kWarning) | |
| 34 | + static_cast<uint32_t>(ResourceMonitoring::Feature::kReplacementProductList) }; |
| 35 | +constexpr std::bitset<4> gActivatedCarbonFeatureMap{ static_cast<uint32_t>(ResourceMonitoring::Feature::kCondition) | |
| 36 | + static_cast<uint32_t>(ResourceMonitoring::Feature::kWarning) | |
| 37 | + static_cast<uint32_t>(ResourceMonitoring::Feature::kReplacementProductList) }; |
| 38 | + |
| 39 | +static ActivatedCarbonFilterMonitoringDelegate * gActivatedCarbonFilterDelegate = nullptr; |
| 40 | +static ResourceMonitoring::Instance * gActivatedCarbonFilterInstance = nullptr; |
| 41 | + |
| 42 | +static HepaFilterMonitoringDelegate * gHepaFilterDelegate = nullptr; |
| 43 | +static ResourceMonitoring::Instance * gHepaFilterInstance = nullptr; |
36 | 44 |
|
37 |
| -static HepaFilterMonitoringInstance * gHepaFilterInstance = nullptr; |
38 |
| -static ActivatedCarbonFilterMonitoringInstance * gActivatedCarbonFilterInstance = nullptr; |
39 | 45 | static ImmutableReplacementProductListManager sReplacementProductListManager;
|
40 | 46 |
|
41 |
| -//-- Activated Carbon Filter Monitoring Instance methods |
42 |
| -CHIP_ERROR ActivatedCarbonFilterMonitoringInstance::AppInit() |
| 47 | +//-- Activated Carbon Filter Monitoring delegate methods |
| 48 | +CHIP_ERROR ActivatedCarbonFilterMonitoringDelegate::Init() |
43 | 49 | {
|
44 | 50 | ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringDelegate::Init()");
|
45 |
| - SetReplacementProductListManagerInstance(&sReplacementProductListManager); |
| 51 | + GetInstance()->SetReplacementProductListManagerInstance(&sReplacementProductListManager); |
46 | 52 | return CHIP_NO_ERROR;
|
47 | 53 | }
|
48 | 54 |
|
49 |
| -Status ActivatedCarbonFilterMonitoringInstance::PreResetCondition() |
| 55 | +Status ActivatedCarbonFilterMonitoringDelegate::PreResetCondition() |
50 | 56 | {
|
51 |
| - ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringInstance::PreResetCondition()"); |
| 57 | + ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringDelegate::PreResetCondition()"); |
52 | 58 | return Status::Success;
|
53 | 59 | }
|
54 | 60 |
|
55 |
| -Status ActivatedCarbonFilterMonitoringInstance::PostResetCondition() |
| 61 | +Status ActivatedCarbonFilterMonitoringDelegate::PostResetCondition() |
56 | 62 | {
|
57 |
| - ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringInstance::PostResetCondition()"); |
| 63 | + ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringDelegate::PostResetCondition()"); |
58 | 64 | return Status::Success;
|
59 | 65 | }
|
60 | 66 |
|
61 |
| -//-- Hepa Filter Monitoring instance methods |
62 |
| -CHIP_ERROR HepaFilterMonitoringInstance::AppInit() |
| 67 | +void ActivatedCarbonFilterMonitoring::Shutdown() |
| 68 | +{ |
| 69 | + if (gActivatedCarbonFilterInstance != nullptr) |
| 70 | + { |
| 71 | + delete gActivatedCarbonFilterInstance; |
| 72 | + gActivatedCarbonFilterInstance = nullptr; |
| 73 | + } |
| 74 | + if (gActivatedCarbonFilterDelegate != nullptr) |
| 75 | + { |
| 76 | + delete gActivatedCarbonFilterDelegate; |
| 77 | + gActivatedCarbonFilterDelegate = nullptr; |
| 78 | + } |
| 79 | +} |
| 80 | + |
| 81 | +//-- Hepa Filter Monitoring delegate methods |
| 82 | +CHIP_ERROR HepaFilterMonitoringDelegate::Init() |
63 | 83 | {
|
64 |
| - ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::Init()"); |
65 |
| - SetReplacementProductListManagerInstance(&sReplacementProductListManager); |
| 84 | + ChipLogDetail(Zcl, "HepaFilterMonitoringDelegate::Init()"); |
| 85 | + GetInstance()->SetReplacementProductListManagerInstance(&sReplacementProductListManager); |
66 | 86 | return CHIP_NO_ERROR;
|
67 | 87 | }
|
68 | 88 |
|
69 |
| -Status HepaFilterMonitoringInstance::PreResetCondition() |
| 89 | +Status HepaFilterMonitoringDelegate::PreResetCondition() |
70 | 90 | {
|
71 |
| - ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::PreResetCondition()"); |
| 91 | + ChipLogDetail(Zcl, "HepaFilterMonitoringDelegate::PreResetCondition()"); |
72 | 92 | return Status::Success;
|
73 | 93 | }
|
74 | 94 |
|
75 |
| -Status HepaFilterMonitoringInstance::PostResetCondition() |
| 95 | +Status HepaFilterMonitoringDelegate::PostResetCondition() |
76 | 96 | {
|
77 |
| - ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::PostResetCondition()"); |
| 97 | + ChipLogDetail(Zcl, "HepaFilterMonitoringDelegate::PostResetCondition()"); |
78 | 98 | return Status::Success;
|
79 | 99 | }
|
80 | 100 |
|
| 101 | +void HepaFilterMonitoring::Shutdown() |
| 102 | +{ |
| 103 | + if (gHepaFilterInstance != nullptr) |
| 104 | + { |
| 105 | + delete gHepaFilterInstance; |
| 106 | + gHepaFilterInstance = nullptr; |
| 107 | + } |
| 108 | + if (gHepaFilterDelegate != nullptr) |
| 109 | + { |
| 110 | + delete gHepaFilterDelegate; |
| 111 | + gHepaFilterDelegate = nullptr; |
| 112 | + } |
| 113 | +} |
| 114 | + |
81 | 115 | void emberAfActivatedCarbonFilterMonitoringClusterInitCallback(chip::EndpointId endpoint)
|
82 | 116 | {
|
83 |
| - VerifyOrDie(gActivatedCarbonFilterInstance == nullptr); |
84 |
| - gActivatedCarbonFilterInstance = new ActivatedCarbonFilterMonitoringInstance( |
85 |
| - endpoint, static_cast<uint32_t>(gActivatedCarbonFeatureMap.to_ulong()), DegradationDirectionEnum::kDown, true); |
| 117 | + VerifyOrDie(gActivatedCarbonFilterInstance == nullptr && gActivatedCarbonFilterDelegate == nullptr); |
| 118 | + gActivatedCarbonFilterDelegate = new ActivatedCarbonFilterMonitoringDelegate; |
| 119 | + gActivatedCarbonFilterInstance = new ResourceMonitoring::Instance( |
| 120 | + gActivatedCarbonFilterDelegate, endpoint, ActivatedCarbonFilterMonitoring::Id, |
| 121 | + static_cast<uint32_t>(gActivatedCarbonFeatureMap.to_ulong()), ResourceMonitoring::DegradationDirectionEnum::kDown, true); |
86 | 122 | gActivatedCarbonFilterInstance->Init();
|
87 | 123 | }
|
| 124 | + |
88 | 125 | void emberAfHepaFilterMonitoringClusterInitCallback(chip::EndpointId endpoint)
|
89 | 126 | {
|
90 |
| - VerifyOrDie(gHepaFilterInstance == nullptr); |
91 |
| - gHepaFilterInstance = new HepaFilterMonitoringInstance(endpoint, static_cast<uint32_t>(gHepaFilterFeatureMap.to_ulong()), |
92 |
| - DegradationDirectionEnum::kDown, true); |
| 127 | + VerifyOrDie(gHepaFilterInstance == nullptr && gHepaFilterDelegate == nullptr); |
| 128 | + |
| 129 | + gHepaFilterDelegate = new HepaFilterMonitoringDelegate; |
| 130 | + gHepaFilterInstance = new ResourceMonitoring::Instance(gHepaFilterDelegate, endpoint, HepaFilterMonitoring::Id, |
| 131 | + static_cast<uint32_t>(gHepaFilterFeatureMap.to_ulong()), |
| 132 | + ResourceMonitoring::DegradationDirectionEnum::kDown, true); |
93 | 133 | gHepaFilterInstance->Init();
|
94 | 134 | }
|
95 | 135 |
|
|
0 commit comments