Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restyle Part 2: feature/relative humidity measurement cluster #7029

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
244 changes: 244 additions & 0 deletions examples/chip-tool/commands/clusters/Commands.h
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,7 @@ static void OnTestClusterListStructOctetStringListAttributeResponse(void * conte
| OnOff | 0x0006 |
| OperationalCredentials | 0x003E |
| PumpConfigurationAndControl | 0x0200 |
| RelativeHumidityMeasurement | 0x0405 |
| Scenes | 0x0005 |
| Switch | 0x003B |
| TvChannel | 0x0504 |
Expand Down Expand Up @@ -1012,6 +1013,7 @@ constexpr chip::ClusterId kNetworkCommissioningClusterId = 0x0031;
constexpr chip::ClusterId kOnOffClusterId = 0x0006;
constexpr chip::ClusterId kOperationalCredentialsClusterId = 0x003E;
constexpr chip::ClusterId kPumpConfigurationAndControlClusterId = 0x0200;
constexpr chip::ClusterId kRelativeHumidityMeasurementClusterId = 0x0405;
constexpr chip::ClusterId kScenesClusterId = 0x0005;
constexpr chip::ClusterId kSwitchClusterId = 0x003B;
constexpr chip::ClusterId kTvChannelClusterId = 0x0504;
Expand Down Expand Up @@ -11832,6 +11834,232 @@ class ReadPumpConfigurationAndControlClusterRevision : public ModelCommand
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

/*----------------------------------------------------------------------------*\
| Cluster RelativeHumidityMeasurement | 0x0405 |
|------------------------------------------------------------------------------|
| Commands: | |
|------------------------------------------------------------------------------|
| Attributes: | |
| * MeasuredValue | 0x0000 |
| * MinMeasuredValue | 0x0001 |
| * MaxMeasuredValue | 0x0002 |
| * ClusterRevision | 0xFFFD |
\*----------------------------------------------------------------------------*/

/*
* Discover Attributes
*/
class DiscoverRelativeHumidityMeasurementAttributes : public ModelCommand
{
public:
DiscoverRelativeHumidityMeasurementAttributes() : ModelCommand("discover") { ModelCommand::AddArguments(); }

~DiscoverRelativeHumidityMeasurementAttributes()
{
delete onSuccessCallback;
delete onFailureCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0000) command (0x0C) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);
return cluster.DiscoverAttributes(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
}

private:
chip::Callback::Callback<DefaultSuccessCallback> * onSuccessCallback =
new chip::Callback::Callback<DefaultSuccessCallback>(OnDefaultSuccessResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

/*
* Attribute MeasuredValue
*/
class ReadRelativeHumidityMeasurementMeasuredValue : public ModelCommand
{
public:
ReadRelativeHumidityMeasurementMeasuredValue() : ModelCommand("read")
{
AddArgument("attr-name", "measured-value");
ModelCommand::AddArguments();
}

~ReadRelativeHumidityMeasurementMeasuredValue()
{
delete onSuccessCallback;
delete onFailureCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x00) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);
return cluster.ReadAttributeMeasuredValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
}

private:
chip::Callback::Callback<Int16uAttributeCallback> * onSuccessCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

class ReportRelativeHumidityMeasurementMeasuredValue : public ModelCommand
{
public:
ReportRelativeHumidityMeasurementMeasuredValue() : ModelCommand("report")
{
AddArgument("attr-name", "measured-value");
AddArgument("min-interval", 0, UINT16_MAX, &mMinInterval);
AddArgument("max-interval", 0, UINT16_MAX, &mMaxInterval);
AddArgument("change", 0, UINT16_MAX, &mChange);
ModelCommand::AddArguments();
}

~ReportRelativeHumidityMeasurementMeasuredValue()
{
delete onSuccessCallback;
delete onFailureCallback;
delete onReportCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x06) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);

CHIP_ERROR err = cluster.ReportAttributeMeasuredValue(onReportCallback->Cancel());
if (err != CHIP_NO_ERROR)
{
return err;
}

return cluster.ConfigureAttributeMeasuredValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel(), mMinInterval,
mMaxInterval, mChange);
}

private:
chip::Callback::Callback<DefaultSuccessCallback> * onSuccessCallback =
new chip::Callback::Callback<DefaultSuccessCallback>(OnDefaultSuccessResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
chip::Callback::Callback<Int16uAttributeCallback> * onReportCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
uint16_t mMinInterval;
uint16_t mMaxInterval;
uint16_t mChange;
};

/*
* Attribute MinMeasuredValue
*/
class ReadRelativeHumidityMeasurementMinMeasuredValue : public ModelCommand
{
public:
ReadRelativeHumidityMeasurementMinMeasuredValue() : ModelCommand("read")
{
AddArgument("attr-name", "min-measured-value");
ModelCommand::AddArguments();
}

~ReadRelativeHumidityMeasurementMinMeasuredValue()
{
delete onSuccessCallback;
delete onFailureCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x00) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);
return cluster.ReadAttributeMinMeasuredValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
}

private:
chip::Callback::Callback<Int16uAttributeCallback> * onSuccessCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

/*
* Attribute MaxMeasuredValue
*/
class ReadRelativeHumidityMeasurementMaxMeasuredValue : public ModelCommand
{
public:
ReadRelativeHumidityMeasurementMaxMeasuredValue() : ModelCommand("read")
{
AddArgument("attr-name", "max-measured-value");
ModelCommand::AddArguments();
}

~ReadRelativeHumidityMeasurementMaxMeasuredValue()
{
delete onSuccessCallback;
delete onFailureCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x00) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);
return cluster.ReadAttributeMaxMeasuredValue(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
}

private:
chip::Callback::Callback<Int16uAttributeCallback> * onSuccessCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

/*
* Attribute ClusterRevision
*/
class ReadRelativeHumidityMeasurementClusterRevision : public ModelCommand
{
public:
ReadRelativeHumidityMeasurementClusterRevision() : ModelCommand("read")
{
AddArgument("attr-name", "cluster-revision");
ModelCommand::AddArguments();
}

~ReadRelativeHumidityMeasurementClusterRevision()
{
delete onSuccessCallback;
delete onFailureCallback;
}

CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
{
ChipLogProgress(chipTool, "Sending cluster (0x0405) command (0x00) on endpoint %" PRIu16, endpointId);

chip::Controller::RelativeHumidityMeasurementCluster cluster;
cluster.Associate(device, endpointId);
return cluster.ReadAttributeClusterRevision(onSuccessCallback->Cancel(), onFailureCallback->Cancel());
}

private:
chip::Callback::Callback<Int16uAttributeCallback> * onSuccessCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
};

/*----------------------------------------------------------------------------*\
| Cluster Scenes | 0x0005 |
|------------------------------------------------------------------------------|
Expand Down Expand Up @@ -16759,6 +16987,21 @@ void registerClusterPumpConfigurationAndControl(Commands & commands)

commands.Register(clusterName, clusterCommands);
}
void registerClusterRelativeHumidityMeasurement(Commands & commands)
{
const char * clusterName = "RelativeHumidityMeasurement";

commands_list clusterCommands = {
make_unique<DiscoverRelativeHumidityMeasurementAttributes>(),
make_unique<ReadRelativeHumidityMeasurementMeasuredValue>(),
make_unique<ReportRelativeHumidityMeasurementMeasuredValue>(),
make_unique<ReadRelativeHumidityMeasurementMinMeasuredValue>(),
make_unique<ReadRelativeHumidityMeasurementMaxMeasuredValue>(),
make_unique<ReadRelativeHumidityMeasurementClusterRevision>(),
};

commands.Register(clusterName, clusterCommands);
}
void registerClusterScenes(Commands & commands)
{
const char * clusterName = "Scenes";
Expand Down Expand Up @@ -16984,6 +17227,7 @@ void registerClusters(Commands & commands)
registerClusterOnOff(commands);
registerClusterOperationalCredentials(commands);
registerClusterPumpConfigurationAndControl(commands);
registerClusterRelativeHumidityMeasurement(commands);
registerClusterScenes(commands);
registerClusterSwitch(commands);
registerClusterTvChannel(commands);
Expand Down
5 changes: 5 additions & 0 deletions examples/chip-tool/commands/reporting/Commands.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class Listen : public ReportingCommand
delete onReportLevelControlCurrentLevelCallback;
delete onReportOnOffOnOffCallback;
delete onReportPumpConfigurationAndControlCapacityCallback;
delete onReportRelativeHumidityMeasurementMeasuredValueCallback;
delete onReportSwitchCurrentPositionCallback;
delete onReportTemperatureMeasurementMeasuredValueCallback;
delete onReportThermostatLocalTemperatureCallback;
Expand Down Expand Up @@ -68,6 +69,8 @@ class Listen : public ReportingCommand
callbacksMgr.AddReportCallback(chip::kTestDeviceNodeId, endpointId, 0x0006, 0x0000, onReportOnOffOnOffCallback->Cancel());
callbacksMgr.AddReportCallback(chip::kTestDeviceNodeId, endpointId, 0x0200, 0x0013,
onReportPumpConfigurationAndControlCapacityCallback->Cancel());
callbacksMgr.AddReportCallback(chip::kTestDeviceNodeId, endpointId, 0x0405, 0x0000,
onReportRelativeHumidityMeasurementMeasuredValueCallback->Cancel());
callbacksMgr.AddReportCallback(chip::kTestDeviceNodeId, endpointId, 0x003B, 0x0001,
onReportSwitchCurrentPositionCallback->Cancel());
callbacksMgr.AddReportCallback(chip::kTestDeviceNodeId, endpointId, 0x0402, 0x0000,
Expand Down Expand Up @@ -135,6 +138,8 @@ class Listen : public ReportingCommand
new chip::Callback::Callback<BooleanAttributeCallback>(OnBooleanAttributeResponse, this);
chip::Callback::Callback<Int16sAttributeCallback> * onReportPumpConfigurationAndControlCapacityCallback =
new chip::Callback::Callback<Int16sAttributeCallback>(OnInt16sAttributeResponse, this);
chip::Callback::Callback<Int16uAttributeCallback> * onReportRelativeHumidityMeasurementMeasuredValueCallback =
new chip::Callback::Callback<Int16uAttributeCallback>(OnInt16uAttributeResponse, this);
chip::Callback::Callback<Int8uAttributeCallback> * onReportSwitchCurrentPositionCallback =
new chip::Callback::Callback<Int8uAttributeCallback>(OnInt8uAttributeResponse, this);
chip::Callback::Callback<Int16sAttributeCallback> * onReportTemperatureMeasurementMeasuredValueCallback =
Expand Down
Loading