| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2023-24 Project CHIP Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <configurator> |
| <domain name="CHIP"/> |
| |
| Data types |
| <struct name="LocationInfoStruct"> |
| <cluster code="0x0150"/> |
| <item name="LocationInfo" type="HomeLocationStruct" optional="false" isNullable="true"/> |
| <item name="LandmarkTag" type="LandmarkTag" optional="false" isNullable="true"/> |
| <item name="PositionTag" type="PositionTag" optional="false" isNullable="true"/> |
| <item name="SurfaceTag" type="FloorSurfaceTag" optional="false" isNullable="true"/> |
| </struct> |
| |
| <struct name="MapStruct"> |
| <cluster code="0x0150"/> |
| <item name="MapID" type="int8u" optional="false"/> |
| <item name="Name" type="char_string" length="64" optional="false"/> |
| </struct> |
| |
| <struct name="LocationStruct"> |
| <cluster code="0x0150"/> |
| <item name="LocationID" type="int32u" optional="false" isNullable="false"/> |
| <item name="MapID" type="int8u" optional="false" isNullable="true"/> |
| <item name="LocationInfo" type="LocationInfoStruct" optional="false" isNullable="false"/> |
| </struct> |
| |
| <enum name="OperationalStatusEnum" type="enum8"> |
| <cluster code="0x0150"/> |
| <item value="0x00" name="Pending"/> |
| <item value="0x01" name="Operating"/> |
| <item value="0x02" name="Skipped"/> |
| <item value="0x03" name="Completed"/> |
| </enum> |
| |
| <struct name="ProgressStruct"> |
| <cluster code="0x0150"/> |
| <item name="LocationID" type="int32u" optional="false"/> |
| <item name="Status" type="OperationalStatusEnum" optional="false"/> |
| <item name="TotalOperationalTime" type="elapsed_s" optional="true" isNullable="true"/> |
| <item name="EstimatedTime" type="elapsed_s" optional="true" isNullable="true"/> |
| </struct> |
| |
| <enum name="SelectLocationsStatus" type="enum8"> |
| <cluster code="0x0150"/> |
| <item value="0x00" name="Success"/> |
| <item value="0x01" name="UnsupportedLocation"/> |
| <item value="0x02" name="DuplicatedLocations"/> |
| <item value="0x03" name="InvalidInMode"/> |
| <item value="0x04" name="InvalidSet"/> |
| </enum> |
| |
| <enum name="SkipCurrentLocationStatus" type="enum8"> |
| <cluster code="0x0150"/> |
| <item value="0x00" name="Success"/> |
| <item value="0x01" name="InvalidLocationList"/> |
| <item value="0x02" name="InvalidInMode"/> |
| </enum> |
| |
| <cluster> |
| <domain>General</domain> |
| <name>Service Area</name> |
| <description>The Service Area cluster provides an interface for controlling the locations where a device should operate, and for querying the current location.</description> |
| <code>0x0150</code> |
| <define>SERVICE_AREA_CLUSTER</define> |
| |
| <features> |
| <feature bit="0" code="LISTORDER" name="ListOrder" summary="The device operates at the selected locations in the list order"> |
| <optionalConform/> |
| </feature> |
| <feature bit="1" code="SELRUN" name="SelectWhileRunning" summary="The device allows changing the selected locations while running"> |
| <optionalConform/> |
| </feature> |
| </features> |
| |
| <!-- Attributes --> |
| <attribute side="server" code="0x0000" define="SupportedLocations" type="array" entryType="LocationStruct" writable="false" isNullable="false" optional="false">SupportedLocations</attribute> |
| <attribute side="server" code="0x0001" define="SupportedMaps" type="array" entryType="MapStruct" writable="false" isNullable="true" optional="false">SupportedMaps</attribute> |
| <attribute side="server" code="0x0002" define="SelectedLocations" type="array" entryType="int32u" writable="false" isNullable="true" optional="false">SelectedLocations</attribute> |
| <attribute side="server" code="0x0003" define="CurrentLocation" type="int32u" writable="false" isNullable="true" optional="true">CurrentLocation</attribute> |
| <attribute side="server" code="0x0004" define="EstimatedEndTime" type="epoch_s" writable="false" isNullable="true" optional="true" >EstimatedEndTime</attribute> |
| <attribute side="server" code="0x0005" define="Progress" type="array" entryType="ProgressStruct" writable="false" isNullable="true" optional="true">Progress</attribute> |
| |
| <!-- Commands --> |
| <command source="client" code="0x00" name="SelectLocations" response="SelectLocationsResponse" optional="false"> |
| <description> |
| Command used to select a set of device locations, where the device is to operate |
| </description> |
| <arg name="NewLocations" type="int32u" array="true" isNullable="true"/> |
| </command> |
| |
| <command source="server" code="0x01" name="SelectLocationsResponse" disableDefaultResponse="true" optional="false"> |
| <description> |
| This command is sent by the device on receipt of the SelectLocations command. |
| </description> |
| <arg name="Status" type="SelectLocationsStatus" optional="false"/> |
| <arg name="StatusText" type="char_string" length="256" optional="true"/> |
| </command> |
| |
| <command source="client" code="0x02" name="SkipCurrentLocation" response="SkipCurrentLocationResponse" optional="true"> |
| <description> |
| This command is used to skip the current location where the device operates. |
| </description> |
| </command> |
| |
| <command source="server" code="0x03" name="SkipCurrentLocationResponse" disableDefaultResponse="true" optional="true"> |
| <description> |
| This command is sent by the device on receipt of the SelectLocations command. |
| </description> |
| <arg name="Status" type="SkipCurrentLocationStatus" optional="false"/> |
| <arg name="StatusText" type="char_string" length="256" optional="true"/> |
| </command> |
| |
| </cluster> |
| |
| </configurator> |