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

Remove 'cluster side' from matter IDL files #30605

Merged
merged 30 commits into from
Nov 28, 2023
Merged
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3b84b62
Mass remove of ClusterSide
andreilitvin Nov 21, 2023
5ad6352
Start adding helper functions for cluster selection - some code still…
andreilitvin Nov 21, 2023
2244348
Fix PluginApplicationCallbacks because this was sensitive to client/s…
andreilitvin Nov 21, 2023
1ab6e44
Side is not a thing that backwards compatibility can test anymore
andreilitvin Nov 21, 2023
0af4838
Start fixing the IDL generator text
andreilitvin Nov 21, 2023
09fb9af
Generate all clusters in the same way
andreilitvin Nov 21, 2023
a978523
Zap regen
andreilitvin Nov 21, 2023
ebe1014
Add better differs in output assertions
andreilitvin Nov 21, 2023
5628b12
Fix some whitespacing - zap regen
andreilitvin Nov 21, 2023
5de46c2
Event better whitespacing - zap regen
andreilitvin Nov 21, 2023
089df0e
Fix what gets generated and regen
andreilitvin Nov 21, 2023
b5f8e83
Cluster doxygen seems to take effect now (I believe)
andreilitvin Nov 21, 2023
4182c48
Some unit test updates - manually validated
andreilitvin Nov 21, 2023
fd9b539
Update documentation
andreilitvin Nov 21, 2023
f90ad0f
Restyle
andreilitvin Nov 21, 2023
413e854
Merge branch 'master' into no_client_server_cluster
andreilitvin Nov 21, 2023
ef025f5
Fix lint
andreilitvin Nov 21, 2023
f0c8ce4
Fix linter logic
andreilitvin Nov 21, 2023
2754f3f
Skip metadata for compares, add logic to allow repeated cluster defin…
andreilitvin Nov 21, 2023
3802ed0
Restyle
andreilitvin Nov 21, 2023
0b14bd9
Add a typedef
andreilitvin Nov 21, 2023
dba6cee
Fix tests and conversion to list
andreilitvin Nov 21, 2023
e5ad825
Restyle
andreilitvin Nov 21, 2023
164f9a6
Merge branch 'master' into no_client_server_cluster
andreilitvin Nov 24, 2023
71659db
Fix tests
andreilitvin Nov 24, 2023
3ba35d1
Restyle
andreilitvin Nov 24, 2023
b9b5af8
update comment
andreilitvin Nov 24, 2023
0cfe4cd
Merge branch 'master' into no_client_server_cluster
andy31415 Nov 27, 2023
130a0a8
Merge branch 'master' into no_client_server_cluster
andy31415 Nov 28, 2023
470d4c3
Zap regen
andy31415 Nov 28, 2023
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
Prev Previous commit
Next Next commit
Update documentation
  • Loading branch information
andreilitvin committed Nov 21, 2023
commit fd9b5396a8de28b9722f70ce6f66eb97a340f1bc
44 changes: 3 additions & 41 deletions scripts/py_matter_idl/matter_idl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,8 @@ however it may be easier to understand with an example:
// so are C-style ones


// Types such as enums and structs can be defined globally
// An enum has a name and must have an underlying type (a sized integer defining
// storage size and how it gets transmitted over the wire)
enum StatusCode : ENUM8 {
kBusy = 1; // every enum MUST have an integer value
kPAKEParameterError = 0x02; // throughout, either HEX or integer can be used
kWindowNotOpen = 3;
}

// Structures just have a name
struct LabelStruct {
CHAR_STRING<16> label = 0; // structure fields have a type. Some types can be sized (strings, octet strings)
CHAR_STRING<16> value = 1; // every structure field has an index. this is the tag when encoding over the wire
}

// Server clusters are clusters that are expected to be exposed as servers
//
// Clusters may have optional things (e.g. optional attributes). A server
// cluster only defines attributes actually exposed by the server.
//
// Every cluster has an identifier that is defined by the matter spec (31 in this case)
server cluster AccessControl = 31 {
cluster AccessControl = 31 {

// Enums and structs can be defined globally or be cluster specific.
// IDL generation rules will take into account scoping (i.e. pick local defined
Expand Down Expand Up @@ -149,33 +129,15 @@ server cluster AccessControl = 31 {
internal command FactoryReset(): DefaultSuccess = 10;
}

// A client cluster represents something that is used by an app
// but no server is exposed.
//
// A code generation may generate either combination of client and server
// clusters for a given cluster name.
//
// Even if both client and server cluster are declared within an IDL, their
// content may differ. For example
// - server cluster contains only attributes that the server exposes. As such
// some optional attributes may be missing.
//
// - client cluster contains attributes that the app wants to access as a
// client. So an optional attribute may be presented because the
// underlying application can make use of that attribute.
client cluster OtaSoftwareUpdateProvider = 41 {
///.... content removed: it is very similar to a server cluster
}

// Clusters may be provisional or internal as well
provisional client cluster SomeClusterInDevelopment = 1234 {
provisional cluster SomeClusterInDevelopment = 1234 {
/// ... content removed
}

// On every endpoint number (non-dynamic)
// a series of clusters can be exposed
endpoint 0 {
// A binding cluster is a CLIENT cluster that can be bound to for the
// A binding cluster is a cluster that can be bound to for the
// application to make use.
//
// As an example, a light switch can be bound to a light bulb or
Expand Down