com.google.home.matter.serialization
Interfaces
BitmapAdapter |
Create a class from a bitmap |
ClusterEnum |
|
ClusterPayloadReader |
|
ClusterPayloadWriter |
Writes cluster payloads Oriented around the in memory type you have e.g. writer.uint.write(10u, "foo", 100u) writer.float.write(11u, "bar", 10.3f) |
ClusterPayloadWriter.FieldWriter |
Writes fields in a type safe manner |
FieldAdapter |
A simple adapter interface for converting raw types to runtime types |
OptionalValue |
isPresent should be set to true if value != null when value == null it MAY be set to true, which will cause a literal null to be sent to underlying storage when isPresent == false no value will be sent to underlying storage e.g. if(v.isPresent) store.put("key", v.valueOrThrow()) |
SerializedPayload |
Tag interface to represent generic payloads that are serialized/deserialized by cluster payload writers/readers. |
StructAdapter |
|
ValueSerializer |
A serializer to convert a Kotlin type to and from a Value. |
Classes
Bitmap |
A class to make it simple to get/set boolean flags without dealing with Logic |
ClusterId |
Provides a split of source/id of a matter cluster identifier, following the matter Manufacturer Extensible Identifier (MEI) format: 16-bit source and 16-bit id. |
ClusterPayload |
An object which encapsulates all the data read from the wire Once you get this object, the actual read is done streaming Organized around the in-memory type you want e.g. payload.uint.getNullable(tag, name) |
ClusterPayload.FieldReader |
Reads fields in a type safe manner |
EnumAdapter |
Generated Enum should Implement Cluster Enum and then this Enum Adapter can be constructed once for each enum and stored as in or as a companion for use in reading writing adapters |
FunctionAdapter |
|
ScopedCommandId |
Represents a command within a cluster. |
ScopedEventId |
Represents an event within a cluster. |
Exceptions
RequiredFieldException |
A single class to indicate that a Required field is missing |
Type aliases
TagId |
Extension functions summary
UInt |
|
UInt |
|
UInt |
|
Unit |
Unwraps an Attributes Payload with the given Cluster Id. |
Unit |
Unwraps a Command/CommandResult Payload with the given Command Id. |
Unit |
Unwraps an Event Payload with the given Event Id. |
UInt |
|
Unit |
Wraps an Attributes Payload with the given Cluster Id. |
Unit |
Wraps a Command/CommandResult Payload with the given Command Id. |
Unit |
Wraps an Event Payload with the given Event Id. |
Extension functions
unwrapPayload
fun ClusterPayloadReader.unwrapPayload(id: ClusterId): Unit
Unwraps an Attributes Payload with the given Cluster Id.
Attribute encapsulation example:
home.uddm.traits.Trait
↳ home.uddm.traits.VENDOR.VENDORTrait = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTERTrait = ClusterId.id + 1
↳ Attributes Data Payload
unwrapPayload
fun ClusterPayloadReader.unwrapPayload(id: ScopedCommandId): Unit
Unwraps a Command/CommandResult Payload with the given Command Id.
Command/CommandResult encapsulation example:
home.uddm.traits.Command
↳ home.uddm.traits.VENDOR.VENDORCommand = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTERCommand = ClusterId.id + 1
↳ home.uddm.traits.VENDOR.CLUSTERCommand.XXXXCommand = ScopedCommandId.command + 1
↳ Command Data Payload
unwrapPayload
fun ClusterPayloadReader.unwrapPayload(id: ScopedEventId): Unit
Unwraps an Event Payload with the given Event Id.
Event encapsulation example:
home.uddm.traits.Event
↳ home.uddm.traits.VENDOR.VENDOREvent = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTEREvent = ClusterId.id + 1
↳ home.uddm.traits.VENDOR.CLUSTEREvent.XXXXEvent = ScopedEventId.event + 1
↳ Event Data Payload
wrapPayload
fun ClusterPayloadWriter.wrapPayload(id: ClusterId): Unit
Wraps an Attributes Payload with the given Cluster Id.
Attribute encapsulation example:
home.uddm.traits.Trait
↳ home.uddm.traits.VENDOR.VENDORTrait = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTERTrait = ClusterId.id + 1
↳ Attributes Data Payload
wrapPayload
fun ClusterPayloadWriter.wrapPayload(id: ScopedCommandId): Unit
Wraps a Command/CommandResult Payload with the given Command Id.
Command/CommandResult encapsulation example:
home.uddm.traits.Command
↳ home.uddm.traits.VENDOR.VENDORCommand = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTERCommand = ClusterId.id + 1
↳ home.uddm.traits.VENDOR.CLUSTERCommand.XXXXCommand = ScopedCommandId.command + 1
↳ Command Data Payload
wrapPayload
fun ClusterPayloadWriter.wrapPayload(id: ScopedEventId): Unit
Wraps an Event Payload with the given Event Id.
Event encapsulation example:
home.uddm.traits.Event
↳ home.uddm.traits.VENDOR.VENDOREvent = ClusterId.source + 1
↳ home.uddm.traits.VENDOR.CLUSTEREvent = ClusterId.id + 1
↳ home.uddm.traits.VENDOR.CLUSTEREvent.XXXXEvent = ScopedEventId.event + 1
↳ Event Data Payload