Skip to content

Commit

Permalink
Update matter IDL to contain per-endpoint attribute storage and defau…
Browse files Browse the repository at this point in the history
…lts (#18053)

* Start adding per-endpoint storage information

* Add default zero value detection and usage in IDL generation

* Handle type of default correctly, however this requires zap update

* Pull latest zap

* Move zap to 0.5.70 to see if sqlite error goes away

* Zap regen

* Some rollbacks on attribute traits in global config - will need per-endpoint attribute configurations

* Code update to support braces for server cluster declarations

* Use transforms to apply changes to endpoints - want to be able to build up endpoint data

* Restyle

* Add parsing for attributes inside endpoint lists

* Restyle

* Documentation update

* Fix type declarations for python3

* zap regen

* Fix spacing and zap regen - make endpoints nicer to read

* Updated FIXME to test comment
  • Loading branch information
andy31415 authored and pull[bot] committed Oct 19, 2023
1 parent bc43477 commit 1716002
Show file tree
Hide file tree
Showing 25 changed files with 5,888 additions and 728 deletions.
975 changes: 898 additions & 77 deletions examples/all-clusters-app/all-clusters-common/all-clusters-app.matter

Large diffs are not rendered by default.

304 changes: 281 additions & 23 deletions examples/bridge-app/bridge-common/bridge-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1134,31 +1134,289 @@ server cluster WiFiNetworkDiagnostics = 54 {

endpoint 0 {
binding cluster AccessControl;
server cluster AccessControl;
server cluster AdministratorCommissioning;
server cluster Basic;
server cluster Descriptor;
server cluster DiagnosticLogs;
server cluster EthernetNetworkDiagnostics;
server cluster FixedLabel;
server cluster GeneralCommissioning;
server cluster GeneralDiagnostics;
server cluster LocalizationConfiguration;
server cluster NetworkCommissioning;
server cluster OperationalCredentials;
server cluster SoftwareDiagnostics;
server cluster ThreadNetworkDiagnostics;
server cluster TimeFormatLocalization;
server cluster UnitLocalization;
server cluster UserLabel;
server cluster WiFiNetworkDiagnostics;

server cluster Descriptor {
callback attribute deviceList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute clusterRevision default = 1;
}

server cluster AccessControl {
callback attribute acl;
callback attribute extension;
callback attribute subjectsPerAccessControlEntry default = 4;
callback attribute targetsPerAccessControlEntry default = 3;
callback attribute accessControlEntriesPerFabric default = 3;
callback attribute attributeList;
ram attribute clusterRevision default = 1;
}

server cluster Basic {
callback attribute dataModelRevision default = 10;
callback attribute vendorName;
callback attribute vendorID;
callback attribute productName;
callback attribute productID;
persist attribute nodeLabel;
callback attribute location default = "XX";
callback attribute hardwareVersion;
callback attribute hardwareVersionString;
callback attribute softwareVersion;
callback attribute softwareVersionString;
callback attribute manufacturingDate default = "20210614123456ZZ";
callback attribute partNumber;
callback attribute productURL;
callback attribute productLabel;
callback attribute serialNumber;
persist attribute localConfigDisabled;
ram attribute reachable default = 1;
callback attribute uniqueID;
callback attribute capabilityMinima;
ram attribute clusterRevision default = 1;
}

server cluster LocalizationConfiguration {
persist attribute activeLocale default = "en-US";
callback attribute supportedLocales;
ram attribute clusterRevision default = 1;
}

server cluster TimeFormatLocalization {
persist attribute hourFormat;
persist attribute activeCalendarType;
callback attribute supportedCalendarTypes;
ram attribute clusterRevision default = 1;
}

server cluster UnitLocalization {
persist attribute temperatureUnit;
ram attribute featureMap default = 0x1;
ram attribute clusterRevision default = 1;
}

server cluster GeneralCommissioning {
ram attribute breadcrumb;
callback attribute basicCommissioningInfo;
ram attribute regulatoryConfig;
ram attribute locationCapability;
callback attribute supportsConcurrentConnection default = 1;
ram attribute featureMap default = 6;
ram attribute clusterRevision default = 1;
}

server cluster NetworkCommissioning {
ram attribute maxNetworks;
callback attribute networks;
ram attribute scanMaxTimeSeconds;
ram attribute connectMaxTimeSeconds;
ram attribute interfaceEnabled;
ram attribute lastNetworkingStatus;
ram attribute lastNetworkID;
ram attribute lastConnectErrorValue;
ram attribute featureMap default = 2;
ram attribute clusterRevision default = 1;
}

server cluster DiagnosticLogs {
}

server cluster GeneralDiagnostics {
callback attribute networkInterfaces;
callback attribute rebootCount;
callback attribute upTime;
callback attribute totalOperationalHours;
callback attribute bootReasons;
callback attribute activeHardwareFaults;
callback attribute activeRadioFaults;
callback attribute activeNetworkFaults;
ram attribute clusterRevision default = 1;
}

server cluster SoftwareDiagnostics {
callback attribute threadMetrics;
callback attribute currentHeapFree;
callback attribute currentHeapUsed;
callback attribute currentHeapHighWatermark;
ram attribute featureMap default = 1;
ram attribute clusterRevision default = 1;
}

server cluster ThreadNetworkDiagnostics {
ram attribute channel;
ram attribute routingRole;
ram attribute networkName;
ram attribute panId;
ram attribute extendedPanId;
ram attribute meshLocalPrefix;
ram attribute overrunCount;
callback attribute neighborTableList;
callback attribute routeTableList;
ram attribute partitionId;
ram attribute weighting;
ram attribute dataVersion;
ram attribute stableDataVersion;
ram attribute leaderRouterId;
ram attribute detachedRoleCount;
ram attribute childRoleCount;
ram attribute routerRoleCount;
ram attribute leaderRoleCount;
ram attribute attachAttemptCount;
ram attribute partitionIdChangeCount;
ram attribute betterPartitionAttachAttemptCount;
ram attribute parentChangeCount;
ram attribute txTotalCount;
ram attribute txUnicastCount;
ram attribute txBroadcastCount;
ram attribute txAckRequestedCount;
ram attribute txAckedCount;
ram attribute txNoAckRequestedCount;
ram attribute txDataCount;
ram attribute txDataPollCount;
ram attribute txBeaconCount;
ram attribute txBeaconRequestCount;
ram attribute txOtherCount;
ram attribute txRetryCount;
ram attribute txDirectMaxRetryExpiryCount;
ram attribute txIndirectMaxRetryExpiryCount;
ram attribute txErrCcaCount;
ram attribute txErrAbortCount;
ram attribute txErrBusyChannelCount;
ram attribute rxTotalCount;
ram attribute rxUnicastCount;
ram attribute rxBroadcastCount;
ram attribute rxDataCount;
ram attribute rxDataPollCount;
ram attribute rxBeaconCount;
ram attribute rxBeaconRequestCount;
ram attribute rxOtherCount;
ram attribute rxAddressFilteredCount;
ram attribute rxDestAddrFilteredCount;
ram attribute rxDuplicatedCount;
ram attribute rxErrNoFrameCount;
ram attribute rxErrUnknownNeighborCount;
ram attribute rxErrInvalidSrcAddrCount;
ram attribute rxErrSecCount;
ram attribute rxErrFcsCount;
ram attribute rxErrOtherCount;
ram attribute activeTimestamp;
ram attribute pendingTimestamp;
ram attribute delay;
callback attribute securityPolicy;
ram attribute channelMask;
callback attribute operationalDatasetComponents;
callback attribute activeNetworkFaultsList;
ram attribute featureMap default = 15;
ram attribute clusterRevision default = 1;
}

server cluster WiFiNetworkDiagnostics {
callback attribute bssid;
callback attribute securityType;
callback attribute wiFiVersion;
callback attribute channelNumber;
callback attribute rssi;
callback attribute beaconLostCount;
callback attribute beaconRxCount;
callback attribute packetMulticastRxCount;
callback attribute packetMulticastTxCount;
callback attribute packetUnicastRxCount;
callback attribute packetUnicastTxCount;
callback attribute currentMaxRate;
callback attribute overrunCount;
ram attribute featureMap default = 3;
ram attribute clusterRevision default = 1;
}

server cluster EthernetNetworkDiagnostics {
callback attribute PHYRate;
callback attribute fullDuplex;
callback attribute packetRxCount;
callback attribute packetTxCount;
callback attribute txErrCount;
callback attribute collisionCount;
callback attribute overrunCount;
callback attribute carrierDetect;
callback attribute timeSinceReset;
ram attribute featureMap default = 3;
ram attribute clusterRevision default = 1;
}

server cluster AdministratorCommissioning {
callback attribute windowStatus;
callback attribute adminFabricIndex default = 1;
callback attribute adminVendorId;
ram attribute clusterRevision default = 1;
}

server cluster OperationalCredentials {
callback attribute NOCs;
callback attribute fabrics;
ram attribute supportedFabrics;
ram attribute commissionedFabrics;
callback attribute trustedRootCertificates;
callback attribute currentFabricIndex;
ram attribute clusterRevision default = 1;
}

server cluster FixedLabel {
callback attribute labelList;
ram attribute clusterRevision default = 1;
}

server cluster UserLabel {
callback attribute labelList;
ram attribute clusterRevision default = 1;
}
}

endpoint 1 {
server cluster Descriptor;
server cluster FixedLabel;
server cluster LevelControl;
server cluster OnOff;
server cluster Switch;

server cluster OnOff {
ram attribute onOff;
ram attribute clusterRevision default = 4;
}

server cluster LevelControl {
persist attribute currentLevel;
ram attribute remainingTime;
ram attribute minLevel;
ram attribute maxLevel default = 0xFE;
ram attribute currentFrequency;
ram attribute minFrequency;
ram attribute maxFrequency;
ram attribute options;
ram attribute onOffTransitionTime;
ram attribute onLevel default = 0xFE;
ram attribute onTransitionTime;
ram attribute offTransitionTime;
ram attribute defaultMoveRate;
persist attribute startUpCurrentLevel default = 255;
ram attribute featureMap default = 3;
ram attribute clusterRevision default = 5;
}

server cluster Descriptor {
callback attribute deviceList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute clusterRevision default = 1;
}

server cluster Switch {
ram attribute numberOfPositions default = 2;
ram attribute currentPosition default = 1;
ram attribute multiPressMax default = 2;
ram attribute featureMap;
ram attribute clusterRevision default = 1;
}

server cluster FixedLabel {
callback attribute labelList;
ram attribute clusterRevision default = 1;
}
}


Loading

0 comments on commit 1716002

Please sign in to comment.