Help us shape the future of Go! Take the 2026 Go Developer Survey

contentcontrol

package
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package contentcontrol is the generated definition of the Matter ContentControl cluster (0x050F, revision 1), from the matter.js model at 862ad75 (Matter 1.6.1).

It declares the cluster's ids, typed enums, bitmaps and structs with their TLV codecs, the command and event payloads, and Definition, the metadata the cluster/spec runtime derives lists, privileges and write checks from. Importing the package registers the definition with spec.Register, so the bridge decodes the cluster's request payloads.

Index

Constants

View Source
const (
	ClusterID uint32 = 0x050F
	Name             = "ContentControl"
	Revision  uint16 = 1
)

Cluster identity.

View Source
const (
	AttrEnabled                         uint32 = 0x0000 // bool, M, R V
	AttrOnDemandRatings                 uint32 = 0x0001 // list[RatingNameStruct], OCR, R V
	AttrOnDemandRatingThreshold         uint32 = 0x0002 // string, OCR, R V
	AttrScheduledContentRatings         uint32 = 0x0003 // list[RatingNameStruct], SCR, R V
	AttrScheduledContentRatingThreshold uint32 = 0x0004 // string, SCR, R V
	AttrScreenDailyTime                 uint32 = 0x0005 // elapsed-s, ST, R V
	AttrRemainingScreenTime             uint32 = 0x0006 // elapsed-s, ST, R V
	AttrBlockUnrated                    uint32 = 0x0007 // bool, BU, R V
	AttrBlockChannelList                uint32 = 0x0008 // list[BlockChannelStruct], BC, R V
	AttrBlockApplicationList            uint32 = 0x0009 // list[AppInfoStruct], BA, R V
	AttrBlockContentTimeWindow          uint32 = 0x000A // list[TimeWindowStruct], BTW, R V
)

Attribute ids.

View Source
const (
	CmdUpdatePin                          uint32 = 0x00 // request → status, PM
	CmdResetPin                           uint32 = 0x01 // request → ResetPinResponse, PM
	CmdResetPinResponse                   uint32 = 0x02 // response, PM
	CmdEnable                             uint32 = 0x03 // request → status, M
	CmdDisable                            uint32 = 0x04 // request → status, M
	CmdAddBonusTime                       uint32 = 0x05 // request → status, ST
	CmdSetScreenDailyTime                 uint32 = 0x06 // request → status, ST
	CmdBlockUnratedContent                uint32 = 0x07 // request → status, BU
	CmdUnblockUnratedContent              uint32 = 0x08 // request → status, BU
	CmdSetOnDemandRatingThreshold         uint32 = 0x09 // request → status, OCR
	CmdSetScheduledContentRatingThreshold uint32 = 0x0A // request → status, SCR
	CmdAddBlockChannels                   uint32 = 0x0B // request → status, BC
	CmdRemoveBlockChannels                uint32 = 0x0C // request → status, BC
	CmdAddBlockApplications               uint32 = 0x0D // request → status, BA
	CmdRemoveBlockApplications            uint32 = 0x0E // request → status, BA
	CmdSetBlockContentTimeWindow          uint32 = 0x0F // request → status, BTW
	CmdRemoveBlockContentTimeWindow       uint32 = 0x10 // request → status, BTW
)

Command ids.

View Source
const (
	EventRemainingScreenTimeExpired     uint32 = 0x00 // info, ST
	EventEnteringBlockContentTimeWindow uint32 = 0x01 // info, BTW
)

Event ids.

Variables

View Source
var AppInfoStructDef = &spec.Struct{Name: "AppInfoStruct", Fields: []spec.Field{
	{ID: 0, Name: "CatalogVendorId", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
	{ID: 1, Name: "ApplicationId", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
}}

AppInfoStructDef describes AppInfoStruct.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var BlockChannelStructDef = &spec.Struct{Name: "BlockChannelStruct", Fields: []spec.Field{
	{ID: 0, Name: "BlockChannelIndex", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Quality: spec.Quality{Nullable: true}},
	{ID: 1, Name: "MajorNumber", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
	{ID: 2, Name: "MinorNumber", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
	{ID: 3, Name: "Identifier", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
}}

BlockChannelStructDef describes BlockChannelStruct.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var DayOfWeekBitmapDef = &spec.Bitmap{Name: "DayOfWeekBitmap", Bits: 8, Members: []spec.BitmapMember{
	{Name: "Sunday", Bit: 0, Width: 1},
	{Name: "Monday", Bit: 1, Width: 1},
	{Name: "Tuesday", Bit: 2, Width: 1},
	{Name: "Wednesday", Bit: 3, Width: 1},
	{Name: "Thursday", Bit: 4, Width: 1},
	{Name: "Friday", Bit: 5, Width: 1},
	{Name: "Saturday", Bit: 6, Width: 1},
}}

DayOfWeekBitmapDef describes DayOfWeekBitmap.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var Definition = &spec.Cluster{
	ID: ClusterID, Name: Name, Revision: Revision,
	Features: []spec.Feature{
		{Name: "ST", Title: "ScreenTime", Bit: 0, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "PM", Title: "PinManagement", Bit: 1, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "BU", Title: "BlockUnrated", Bit: 2, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "OCR", Title: "OnDemandContentRating", Bit: 3, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "SCR", Title: "ScheduledContentRating", Bit: 4, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "BC", Title: "BlockChannels", Bit: 5, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "BA", Title: "BlockApplications", Bit: 6, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
		{Name: "BTW", Title: "BlockContentTimeWindow", Bit: 7, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}},
	},
	Attributes: []spec.Attribute{
		{
			ID: AttrEnabled, Name: "Enabled",
			Type:        spec.Type{Name: "bool", Kind: spec.KindBool},
			Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
		},
		{
			ID: AttrOnDemandRatings, Name: "OnDemandRatings",
			Type:        spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "RatingNameStruct", Kind: spec.KindStruct, Struct: RatingNameStructDef}}},
			Conformance: spec.Conformance{Text: "OCR", Op: spec.ConfName, Name: "OCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeAttrOnDemandRatings,
		},
		{
			ID: AttrOnDemandRatingThreshold, Name: "OnDemandRatingThreshold",
			Type:        spec.Type{Name: "string", Kind: spec.KindString},
			Conformance: spec.Conformance{Text: "OCR", Op: spec.ConfName, Name: "OCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Constraint:  spec.Constraint{Text: "max 8", Max: &spec.Bound{Int: 8}},
		},
		{
			ID: AttrScheduledContentRatings, Name: "ScheduledContentRatings",
			Type:        spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "RatingNameStruct", Kind: spec.KindStruct, Struct: RatingNameStructDef}}},
			Conformance: spec.Conformance{Text: "SCR", Op: spec.ConfName, Name: "SCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeAttrScheduledContentRatings,
		},
		{
			ID: AttrScheduledContentRatingThreshold, Name: "ScheduledContentRatingThreshold",
			Type:        spec.Type{Name: "string", Kind: spec.KindString},
			Conformance: spec.Conformance{Text: "SCR", Op: spec.ConfName, Name: "SCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Constraint:  spec.Constraint{Text: "max 8", Max: &spec.Bound{Int: 8}},
		},
		{
			ID: AttrScreenDailyTime, Name: "ScreenDailyTime",
			Type:        spec.Type{Name: "elapsed-s", Kind: spec.KindUint, Bits: 32},
			Conformance: spec.Conformance{Text: "ST", Op: spec.ConfName, Name: "ST"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Constraint:  spec.Constraint{Text: "max 86400", Max: &spec.Bound{Int: 86400}},
		},
		{
			ID: AttrRemainingScreenTime, Name: "RemainingScreenTime",
			Type:        spec.Type{Name: "elapsed-s", Kind: spec.KindUint, Bits: 32},
			Conformance: spec.Conformance{Text: "ST", Op: spec.ConfName, Name: "ST"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Constraint:  spec.Constraint{Text: "max 86400", Max: &spec.Bound{Int: 86400}},
		},
		{
			ID: AttrBlockUnrated, Name: "BlockUnrated",
			Type:        spec.Type{Name: "bool", Kind: spec.KindBool},
			Conformance: spec.Conformance{Text: "BU", Op: spec.ConfName, Name: "BU"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
		},
		{
			ID: AttrBlockChannelList, Name: "BlockChannelList",
			Type:        spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "BlockChannelStruct", Kind: spec.KindStruct, Struct: BlockChannelStructDef}}},
			Conformance: spec.Conformance{Text: "BC", Op: spec.ConfName, Name: "BC"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeAttrBlockChannelList,
		},
		{
			ID: AttrBlockApplicationList, Name: "BlockApplicationList",
			Type:        spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "AppInfoStruct", Kind: spec.KindStruct, Struct: AppInfoStructDef}}},
			Conformance: spec.Conformance{Text: "BA", Op: spec.ConfName, Name: "BA"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeAttrBlockApplicationList,
		},
		{
			ID: AttrBlockContentTimeWindow, Name: "BlockContentTimeWindow",
			Type:        spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "TimeWindowStruct", Kind: spec.KindStruct, Struct: TimeWindowStructDef}}},
			Conformance: spec.Conformance{Text: "BTW", Op: spec.ConfName, Name: "BTW"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Constraint:  spec.Constraint{Text: "max 7", Max: &spec.Bound{Int: 7}},
			Decode:      decodeAttrBlockContentTimeWindow,
		},
	},
	Commands: []spec.Command{
		{
			ID: CmdUpdatePin, Name: "UpdatePin", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "PM", Op: spec.ConfName, Name: "PM"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage, Timed: true},
			Fields: []spec.Field{
				{ID: 0, Name: "OldPin", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 6", Max: &spec.Bound{Int: 6}}},
				{ID: 1, Name: "NewPin", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 6", Max: &spec.Bound{Int: 6}}},
			},
			Decode: decodeUpdatePinRequest,
		},
		{
			ID: CmdResetPin, Name: "ResetPin", Direction: spec.Request,
			Response:    "ResetPinResponse",
			Conformance: spec.Conformance{Text: "PM", Op: spec.ConfName, Name: "PM"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeAdminister, Write: spec.PrivilegeAdminister, Timed: true},
			Decode:      decodeResetPinRequest,
		},
		{
			ID: CmdResetPinResponse, Name: "ResetPinResponse", Direction: spec.Response,
			Conformance: spec.Conformance{Text: "PM", Op: spec.ConfName, Name: "PM"},
			Access:      spec.Access{RW: "RW", Read: spec.PrivilegeView, Write: spec.PrivilegeOperate},
			Fields: []spec.Field{
				{ID: 0, Name: "PinCode", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 6", Max: &spec.Bound{Int: 6}}},
			},
			Decode: decodeResetPinResponse,
		},
		{
			ID: CmdEnable, Name: "Enable", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage, Timed: true},
			Decode:      decodeEnableRequest,
		},
		{
			ID: CmdDisable, Name: "Disable", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage, Timed: true},
			Decode:      decodeDisableRequest,
		},
		{
			ID: CmdAddBonusTime, Name: "AddBonusTime", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "ST", Op: spec.ConfName, Name: "ST"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeOperate, Write: spec.PrivilegeOperate},
			Fields: []spec.Field{
				{ID: 0, Name: "PinCode", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}, Constraint: spec.Constraint{Text: "max 6", Max: &spec.Bound{Int: 6}}},
				{ID: 1, Name: "BonusTime", Type: spec.Type{Name: "elapsed-s", Kind: spec.KindUint, Bits: 32}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "desc", Desc: true}, Default: float64(300)},
			},
			Decode: decodeAddBonusTimeRequest,
		},
		{
			ID: CmdSetScreenDailyTime, Name: "SetScreenDailyTime", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "ST", Op: spec.ConfName, Name: "ST"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "ScreenTime", Type: spec.Type{Name: "elapsed-s", Kind: spec.KindUint, Bits: 32}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 86400", Max: &spec.Bound{Int: 86400}}},
			},
			Decode: decodeSetScreenDailyTimeRequest,
		},
		{
			ID: CmdBlockUnratedContent, Name: "BlockUnratedContent", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BU", Op: spec.ConfName, Name: "BU"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Decode:      decodeBlockUnratedContentRequest,
		},
		{
			ID: CmdUnblockUnratedContent, Name: "UnblockUnratedContent", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BU", Op: spec.ConfName, Name: "BU"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Decode:      decodeUnblockUnratedContentRequest,
		},
		{
			ID: CmdSetOnDemandRatingThreshold, Name: "SetOnDemandRatingThreshold", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "OCR", Op: spec.ConfName, Name: "OCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "Rating", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 8", Max: &spec.Bound{Int: 8}}},
			},
			Decode: decodeSetOnDemandRatingThresholdRequest,
		},
		{
			ID: CmdSetScheduledContentRatingThreshold, Name: "SetScheduledContentRatingThreshold", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "SCR", Op: spec.ConfName, Name: "SCR"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "Rating", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 8", Max: &spec.Bound{Int: 8}}},
			},
			Decode: decodeSetScheduledContentRatingThresholdRequest,
		},
		{
			ID: CmdAddBlockChannels, Name: "AddBlockChannels", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BC", Op: spec.ConfName, Name: "BC"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "Channels", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "BlockChannelStruct", Kind: spec.KindStruct, Struct: BlockChannelStructDef}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeAddBlockChannelsRequest,
		},
		{
			ID: CmdRemoveBlockChannels, Name: "RemoveBlockChannels", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BC", Op: spec.ConfName, Name: "BC"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "ChannelIndexes", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeRemoveBlockChannelsRequest,
		},
		{
			ID: CmdAddBlockApplications, Name: "AddBlockApplications", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BA", Op: spec.ConfName, Name: "BA"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "Applications", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "AppInfoStruct", Kind: spec.KindStruct, Struct: AppInfoStructDef}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeAddBlockApplicationsRequest,
		},
		{
			ID: CmdRemoveBlockApplications, Name: "RemoveBlockApplications", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BA", Op: spec.ConfName, Name: "BA"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "Applications", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "AppInfoStruct", Kind: spec.KindStruct, Struct: AppInfoStructDef}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeRemoveBlockApplicationsRequest,
		},
		{
			ID: CmdSetBlockContentTimeWindow, Name: "SetBlockContentTimeWindow", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BTW", Op: spec.ConfName, Name: "BTW"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "TimeWindow", Type: spec.Type{Name: "TimeWindowStruct", Kind: spec.KindStruct, Struct: TimeWindowStructDef}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeSetBlockContentTimeWindowRequest,
		},
		{
			ID: CmdRemoveBlockContentTimeWindow, Name: "RemoveBlockContentTimeWindow", Direction: spec.Request,
			Response:    "status",
			Conformance: spec.Conformance{Text: "BTW", Op: spec.ConfName, Name: "BTW"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeManage, Write: spec.PrivilegeManage},
			Fields: []spec.Field{
				{ID: 0, Name: "TimeWindowIndexes", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}},
			},
			Decode: decodeRemoveBlockContentTimeWindowRequest,
		},
	},
	Events: []spec.Event{
		{
			ID: EventRemainingScreenTimeExpired, Name: "RemainingScreenTimeExpired", Priority: spec.PriorityInfo,
			Conformance: spec.Conformance{Text: "ST", Op: spec.ConfName, Name: "ST"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeRemainingScreenTimeExpiredEvent,
		},
		{
			ID: EventEnteringBlockContentTimeWindow, Name: "EnteringBlockContentTimeWindow", Priority: spec.PriorityInfo,
			Conformance: spec.Conformance{Text: "BTW", Op: spec.ConfName, Name: "BTW"},
			Access:      spec.Access{RW: "R", Read: spec.PrivilegeView},
			Decode:      decodeEnteringBlockContentTimeWindowEvent,
		},
	},
}

Definition is the ContentControl cluster definition.

View Source
var RatingNameStructDef = &spec.Struct{Name: "RatingNameStruct", Fields: []spec.Field{
	{ID: 0, Name: "RatingName", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "max 8", Max: &spec.Bound{Int: 8}}},
	{ID: 1, Name: "RatingNameDesc", Type: spec.Type{Name: "string", Kind: spec.KindString}, Conformance: spec.Conformance{Text: "O", Op: spec.ConfOptional}, Constraint: spec.Constraint{Text: "max 64", Max: &spec.Bound{Int: 64}}},
}}

RatingNameStructDef describes RatingNameStruct.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var StatusCodeEnumDef = &spec.Enum{Name: "StatusCodeEnum", Bits: 8, Values: []spec.EnumValue{
	{Value: 2, Name: "InvalidPinCode"},
	{Value: 3, Name: "InvalidRating"},
	{Value: 4, Name: "InvalidChannel"},
	{Value: 5, Name: "ChannelAlreadyExist"},
	{Value: 6, Name: "ChannelNotExist"},
	{Value: 7, Name: "UnidentifiableApplication"},
	{Value: 8, Name: "ApplicationAlreadyExist"},
	{Value: 9, Name: "ApplicationNotExist"},
	{Value: 10, Name: "TimeWindowAlreadyExist"},
	{Value: 11, Name: "TimeWindowNotExist"},
}}

StatusCodeEnumDef describes StatusCodeEnum.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var TimePeriodStructDef = &spec.Struct{Name: "TimePeriodStruct", Fields: []spec.Field{
	{ID: 0, Name: "StartHour", Type: spec.Type{Name: "uint8", Kind: spec.KindUint, Bits: 8}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "0 to 23", Min: &spec.Bound{Int: 0}, Max: &spec.Bound{Int: 23}}},
	{ID: 1, Name: "StartMinute", Type: spec.Type{Name: "uint8", Kind: spec.KindUint, Bits: 8}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "0 to 59", Min: &spec.Bound{Int: 0}, Max: &spec.Bound{Int: 59}}},
	{ID: 2, Name: "EndHour", Type: spec.Type{Name: "uint8", Kind: spec.KindUint, Bits: 8}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "0 to 23", Min: &spec.Bound{Int: 0}, Max: &spec.Bound{Int: 23}}},
	{ID: 3, Name: "EndMinute", Type: spec.Type{Name: "uint8", Kind: spec.KindUint, Bits: 8}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "0 to 59", Min: &spec.Bound{Int: 0}, Max: &spec.Bound{Int: 59}}},
}}

TimePeriodStructDef describes TimePeriodStruct.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

View Source
var TimeWindowStructDef = &spec.Struct{Name: "TimeWindowStruct", Fields: []spec.Field{
	{ID: 0, Name: "TimeWindowIndex", Type: spec.Type{Name: "uint16", Kind: spec.KindUint, Bits: 16}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Quality: spec.Quality{Nullable: true}},
	{ID: 1, Name: "DayOfWeek", Type: spec.Type{Name: "DayOfWeekBitmap", Kind: spec.KindBitmap, Bits: 8, Bitmap: DayOfWeekBitmapDef}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "desc", Desc: true}},
	{ID: 2, Name: "TimePeriod", Type: spec.Type{Name: "list", Kind: spec.KindList, Entry: &spec.Field{Name: "entry", Type: spec.Type{Name: "TimePeriodStruct", Kind: spec.KindStruct, Struct: TimePeriodStructDef}}}, Conformance: spec.Conformance{Text: "M", Op: spec.ConfMandatory}, Constraint: spec.Constraint{Text: "desc", Desc: true}},
}}

TimeWindowStructDef describes TimeWindowStruct.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

Functions

This section is empty.

Types

type AddBlockApplicationsRequest

type AddBlockApplicationsRequest struct {
	Applications []AppInfoStruct // 0: list[AppInfoStruct], M
}

AddBlockApplicationsRequest is the AddBlockApplications command payload.

func (*AddBlockApplicationsRequest) DecodeTLV

func (v *AddBlockApplicationsRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (AddBlockApplicationsRequest) EncodeTLV

func (v AddBlockApplicationsRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type AddBlockChannelsRequest

type AddBlockChannelsRequest struct {
	Channels []BlockChannelStruct // 0: list[BlockChannelStruct], M
}

AddBlockChannelsRequest is the AddBlockChannels command payload.

func (*AddBlockChannelsRequest) DecodeTLV

func (v *AddBlockChannelsRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (AddBlockChannelsRequest) EncodeTLV

func (v AddBlockChannelsRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type AddBonusTimeRequest

type AddBonusTimeRequest struct {
	PinCode   *string // 0: string, O, max 6
	BonusTime uint32  // 1: elapsed-s, M, desc
}

AddBonusTimeRequest is the AddBonusTime command payload.

func (*AddBonusTimeRequest) DecodeTLV

func (v *AddBonusTimeRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (AddBonusTimeRequest) EncodeTLV

func (v AddBonusTimeRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type AppInfoStruct

type AppInfoStruct struct {
	CatalogVendorId uint16 // 0: uint16, M
	ApplicationId   string // 1: string, M
}

AppInfoStruct is the AppInfoStruct struct.

func (*AppInfoStruct) DecodeTLV

func (v *AppInfoStruct) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (AppInfoStruct) EncodeTLV

func (v AppInfoStruct) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type BlockChannelStruct

type BlockChannelStruct struct {
	BlockChannelIndex spec.Nullable[uint16] // 0: uint16, M, X
	MajorNumber       uint16                // 1: uint16, M
	MinorNumber       uint16                // 2: uint16, M
	Identifier        *string               // 3: string, O
}

BlockChannelStruct is the BlockChannelStruct struct.

func (*BlockChannelStruct) DecodeTLV

func (v *BlockChannelStruct) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (BlockChannelStruct) EncodeTLV

func (v BlockChannelStruct) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type BlockUnratedContentRequest

type BlockUnratedContentRequest struct{}

BlockUnratedContentRequest is the BlockUnratedContent command payload.

func (*BlockUnratedContentRequest) DecodeTLV

func (v *BlockUnratedContentRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (BlockUnratedContentRequest) EncodeTLV

func (v BlockUnratedContentRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type DayOfWeekBitmap

type DayOfWeekBitmap uint8

DayOfWeekBitmap is the DayOfWeekBitmap map8.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

const (
	DayOfWeekSunday    DayOfWeekBitmap = 1 << 0
	DayOfWeekMonday    DayOfWeekBitmap = 1 << 1
	DayOfWeekTuesday   DayOfWeekBitmap = 1 << 2
	DayOfWeekWednesday DayOfWeekBitmap = 1 << 3
	DayOfWeekThursday  DayOfWeekBitmap = 1 << 4
	DayOfWeekFriday    DayOfWeekBitmap = 1 << 5
	DayOfWeekSaturday  DayOfWeekBitmap = 1 << 6
)

DayOfWeekBitmap bits; a member wider than one bit is its mask.

type DisableRequest

type DisableRequest struct{}

DisableRequest is the Disable command payload.

func (*DisableRequest) DecodeTLV

func (v *DisableRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (DisableRequest) EncodeTLV

func (v DisableRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type EnableRequest

type EnableRequest struct{}

EnableRequest is the Enable command payload.

func (*EnableRequest) DecodeTLV

func (v *EnableRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (EnableRequest) EncodeTLV

func (v EnableRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type EnteringBlockContentTimeWindowEvent

type EnteringBlockContentTimeWindowEvent struct{}

EnteringBlockContentTimeWindowEvent is the EnteringBlockContentTimeWindow event payload.

func (*EnteringBlockContentTimeWindowEvent) DecodeTLV

DecodeTLV decodes the structure n into v.

func (EnteringBlockContentTimeWindowEvent) EncodeTLV

func (v EnteringBlockContentTimeWindowEvent) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type Feature

type Feature uint32

Feature is a ContentControl FeatureMap bit.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

const (
	FeatureScreenTime             Feature = 1 << 0 // ST, O
	FeaturePinManagement          Feature = 1 << 1 // PM, O
	FeatureBlockUnrated           Feature = 1 << 2 // BU, O
	FeatureOnDemandContentRating  Feature = 1 << 3 // OCR, O
	FeatureScheduledContentRating Feature = 1 << 4 // SCR, O
	FeatureBlockChannels          Feature = 1 << 5 // BC, O
	FeatureBlockApplications      Feature = 1 << 6 // BA, O
	FeatureBlockContentTimeWindow Feature = 1 << 7 // BTW, O
)

FeatureMap bits.

type RatingNameStruct

type RatingNameStruct struct {
	RatingName     string  // 0: string, M, max 8
	RatingNameDesc *string // 1: string, O, max 64
}

RatingNameStruct is the RatingNameStruct struct.

func (*RatingNameStruct) DecodeTLV

func (v *RatingNameStruct) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (RatingNameStruct) EncodeTLV

func (v RatingNameStruct) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type RemainingScreenTimeExpiredEvent

type RemainingScreenTimeExpiredEvent struct{}

RemainingScreenTimeExpiredEvent is the RemainingScreenTimeExpired event payload.

func (*RemainingScreenTimeExpiredEvent) DecodeTLV

DecodeTLV decodes the structure n into v.

func (RemainingScreenTimeExpiredEvent) EncodeTLV

func (v RemainingScreenTimeExpiredEvent) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type RemoveBlockApplicationsRequest

type RemoveBlockApplicationsRequest struct {
	Applications []AppInfoStruct // 0: list[AppInfoStruct], M
}

RemoveBlockApplicationsRequest is the RemoveBlockApplications command payload.

func (*RemoveBlockApplicationsRequest) DecodeTLV

DecodeTLV decodes the structure n into v.

func (RemoveBlockApplicationsRequest) EncodeTLV

func (v RemoveBlockApplicationsRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type RemoveBlockChannelsRequest

type RemoveBlockChannelsRequest struct {
	ChannelIndexes []uint16 // 0: list[uint16], M
}

RemoveBlockChannelsRequest is the RemoveBlockChannels command payload.

func (*RemoveBlockChannelsRequest) DecodeTLV

func (v *RemoveBlockChannelsRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (RemoveBlockChannelsRequest) EncodeTLV

func (v RemoveBlockChannelsRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type RemoveBlockContentTimeWindowRequest

type RemoveBlockContentTimeWindowRequest struct {
	TimeWindowIndexes []uint16 // 0: list[uint16], M
}

RemoveBlockContentTimeWindowRequest is the RemoveBlockContentTimeWindow command payload.

func (*RemoveBlockContentTimeWindowRequest) DecodeTLV

DecodeTLV decodes the structure n into v.

func (RemoveBlockContentTimeWindowRequest) EncodeTLV

func (v RemoveBlockContentTimeWindowRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type ResetPinRequest

type ResetPinRequest struct{}

ResetPinRequest is the ResetPin command payload.

func (*ResetPinRequest) DecodeTLV

func (v *ResetPinRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (ResetPinRequest) EncodeTLV

func (v ResetPinRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type ResetPinResponse

type ResetPinResponse struct {
	PinCode string // 0: string, M, max 6
}

ResetPinResponse is the ResetPinResponse command payload.

func (*ResetPinResponse) DecodeTLV

func (v *ResetPinResponse) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (ResetPinResponse) EncodeTLV

func (v ResetPinResponse) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

func (ResetPinResponse) ResponseCommand

func (ResetPinResponse) ResponseCommand() (clusterID, commandID uint32)

ResponseCommand implements spec.ResponsePayload.

type SetBlockContentTimeWindowRequest

type SetBlockContentTimeWindowRequest struct {
	TimeWindow TimeWindowStruct // 0: TimeWindowStruct, M
}

SetBlockContentTimeWindowRequest is the SetBlockContentTimeWindow command payload.

func (*SetBlockContentTimeWindowRequest) DecodeTLV

DecodeTLV decodes the structure n into v.

func (SetBlockContentTimeWindowRequest) EncodeTLV

func (v SetBlockContentTimeWindowRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type SetOnDemandRatingThresholdRequest

type SetOnDemandRatingThresholdRequest struct {
	Rating string // 0: string, M, max 8
}

SetOnDemandRatingThresholdRequest is the SetOnDemandRatingThreshold command payload.

func (*SetOnDemandRatingThresholdRequest) DecodeTLV

DecodeTLV decodes the structure n into v.

func (SetOnDemandRatingThresholdRequest) EncodeTLV

func (v SetOnDemandRatingThresholdRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type SetScheduledContentRatingThresholdRequest

type SetScheduledContentRatingThresholdRequest struct {
	Rating string // 0: string, M, max 8
}

SetScheduledContentRatingThresholdRequest is the SetScheduledContentRatingThreshold command payload.

func (*SetScheduledContentRatingThresholdRequest) DecodeTLV

DecodeTLV decodes the structure n into v.

func (SetScheduledContentRatingThresholdRequest) EncodeTLV

EncodeTLV implements spec.Encodable.

type SetScreenDailyTimeRequest

type SetScreenDailyTimeRequest struct {
	ScreenTime uint32 // 0: elapsed-s, M, max 86400
}

SetScreenDailyTimeRequest is the SetScreenDailyTime command payload.

func (*SetScreenDailyTimeRequest) DecodeTLV

func (v *SetScreenDailyTimeRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (SetScreenDailyTimeRequest) EncodeTLV

func (v SetScreenDailyTimeRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type StatusCodeEnum

type StatusCodeEnum uint8

StatusCodeEnum is the StatusCodeEnum enum8.

fabric:reachable:reason="generated: referenced from Definition and the generated test; a package-level initializer, which RTA does not follow"

const (
	StatusCodeInvalidPinCode            StatusCodeEnum = 2
	StatusCodeInvalidRating             StatusCodeEnum = 3
	StatusCodeInvalidChannel            StatusCodeEnum = 4
	StatusCodeChannelAlreadyExist       StatusCodeEnum = 5
	StatusCodeChannelNotExist           StatusCodeEnum = 6
	StatusCodeUnidentifiableApplication StatusCodeEnum = 7
	StatusCodeApplicationAlreadyExist   StatusCodeEnum = 8
	StatusCodeApplicationNotExist       StatusCodeEnum = 9
	StatusCodeTimeWindowAlreadyExist    StatusCodeEnum = 10
	StatusCodeTimeWindowNotExist        StatusCodeEnum = 11
)

StatusCodeEnum values.

type TimePeriodStruct

type TimePeriodStruct struct {
	StartHour   uint8 // 0: uint8, M, 0 to 23
	StartMinute uint8 // 1: uint8, M, 0 to 59
	EndHour     uint8 // 2: uint8, M, 0 to 23
	EndMinute   uint8 // 3: uint8, M, 0 to 59
}

TimePeriodStruct is the TimePeriodStruct struct.

func (*TimePeriodStruct) DecodeTLV

func (v *TimePeriodStruct) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (TimePeriodStruct) EncodeTLV

func (v TimePeriodStruct) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type TimeWindowStruct

type TimeWindowStruct struct {
	TimeWindowIndex spec.Nullable[uint16] // 0: uint16, M, X
	DayOfWeek       DayOfWeekBitmap       // 1: DayOfWeekBitmap, M, desc
	TimePeriod      []TimePeriodStruct    // 2: list[TimePeriodStruct], M, desc
}

TimeWindowStruct is the TimeWindowStruct struct.

func (*TimeWindowStruct) DecodeTLV

func (v *TimeWindowStruct) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (TimeWindowStruct) EncodeTLV

func (v TimeWindowStruct) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type UnblockUnratedContentRequest

type UnblockUnratedContentRequest struct{}

UnblockUnratedContentRequest is the UnblockUnratedContent command payload.

func (*UnblockUnratedContentRequest) DecodeTLV

func (v *UnblockUnratedContentRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (UnblockUnratedContentRequest) EncodeTLV

func (v UnblockUnratedContentRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

type UpdatePinRequest

type UpdatePinRequest struct {
	OldPin string // 0: string, M, max 6
	NewPin string // 1: string, M, max 6
}

UpdatePinRequest is the UpdatePin command payload.

func (*UpdatePinRequest) DecodeTLV

func (v *UpdatePinRequest) DecodeTLV(n spec.Node) error

DecodeTLV decodes the structure n into v.

func (UpdatePinRequest) EncodeTLV

func (v UpdatePinRequest) EncodeTLV(enc *tlv.Encoder, tag tlv.Tag)

EncodeTLV implements spec.Encodable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL