# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
#

# Package: hw/sensor

syscfg.defs:
    SENSOR_CLI:
        description: 'Whether or not to enable the sensor shell support'
        value: 1

    SENSOR_OIC:
        description: 'Enable/Disable the OIC sensor server'
        value: 0
        restrictions:
            - OC_SERVER

    MATHLIB_SUPPORT:
        description: 'Is MATHLIB support present'
        value: 0

    SENSOR_OIC_OBS_RATE:
        description: 'Set OIC server observation rate in milli seconds'
        value: 1000

    SENSOR_MGR_EVQ:
        description: 'Specify the eventq to be used by sensor mgr'
        value:

    SENSOR_OIC_PERIODIC:
        description: 'Sensor polling is periodic'
        value: 0

    SENSOR_POLL_TEST_LOG:
        description: 'Sensor poller log'
        value: '0'

    SENSOR_MAX_INTERRUPTS_PINS:
         desecrition: 'Max number of interupts configuration for the sensor.
                This should be max from all the sensors attached to the system'
         value: 2

    SENSOR_NOTIF_EVENTS_MAX:
         description: 'Max number of events configuration for sensor
                       notifications, this setting creates a pool of
                       notification events so that multiple events can be put
                       on the eventq for processing'
         value: 5
