<?xml version="1.0"?>
<!--
Copyright (c) 2021 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"/>

  <enum name="StatusCode" type="enum8">
    <cluster code="0x0054"/>
    <item value="0x41" name="Stuck"/>
    <item value="0x42" name="DustBinMissing"/>
    <item value="0x43" name="DustBinFull"/>
    <item value="0x44" name="WaterTankEmpty"/>
    <item value="0x45" name="WaterTankMissing"/>
    <item value="0x46" name="WaterTankLidOpen"/>
    <item value="0x47" name="MopCleaningPadMissing"/>
    <item value="0x48" name="BatteryLow"/>
  </enum>

  <enum name="ModeTag" type="enum16">
    <cluster code="0x0054"/>
    <item value="0x4000" name="Idle"/>
    <item value="0x4001" name="Cleaning"/>
    <item value="0x4002" name="Mapping"/>
  </enum>

  <cluster>
    <domain>Robots</domain>
    <name>RVC Run Mode</name>
    <code>0x0054</code>
    <define>RVC_RUN_MODE_CLUSTER</define>
    <client init="false" tick="false">true</client>
    <server init="false" tick="false">true</server>
    <description>Attributes and commands for selecting a mode from a list of supported options.</description>
    <globalAttribute side="either" code="0xFFFD" value="2"/>
    <!-- Base data types -->
    <attribute side="server" code="0x0000" define="SUPPORTED_MODES"  type="array" entryType="ModeOptionStruct" writable="false" optional="false" isNullable="false" length="255">SupportedModes</attribute>
    <attribute side="server" code="0x0001" define="CURRENT_MODE"     type="int8u"                              writable="false" optional="false" isNullable="false" reportable="true">CurrentMode</attribute>
    <!-- Attribute OnMode with code 0x0003 is deprecated -->

    <!-- Commands -->
    <command source="client" code="0x00" name="ChangeToMode" response="ChangeToModeResponse" optional="false">
      <description>
        This command is used to change device modes.
        On receipt of this command the device SHALL respond with a ChangeToModeResponse command.
      </description>
      <arg name="NewMode" type="int8u" optional="false"/>
    </command>

    <command source="server" code="0x01" name="ChangeToModeResponse" disableDefaultResponse="true" optional="false">
      <description>
        This command is sent by the device on receipt of the ChangeToModeWithStatus command.
      </description>
      <arg name="Status"     type="enum8"                   optional="false"/>
      <arg name="StatusText" type="char_string" lenght="64" optional="true"/>
    </command>
  </cluster>

  <bitmap name="Feature" type="bitmap32">
     <cluster code="0x0054"/>
     <field name="NoFeatures" mask="0x0"/>
     <!-- Feature OnOff with code 0x01 is deprecated -->
   </bitmap>
</configurator>
