// @file sns_heart_beat.proto
//
// @brief Defines message types for Heart Beat sensors
//
// @copyright
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
// @details
// A Heart Beat sensor reports everytime a heart beat peak is detected.
// Peak ideally corresponds to the positive peak in the QRS complex of
// an ECG signal, and the event timestamp should correspond to the time this
// peak occurred.
//
// The sensor is not expected to be optimized for latency. As a guide, a
// receipt latency of up to 10 seconds is acceptable.
//
// ## Attribute Requirements:
// The Heart Beat Sensor publishes:
// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "heart_beat".
// 2. SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE
// 3. SNS_STD_SENSOR_ATTRID_API attribute contains "sns_heart_beat.proto"
//
// ## Processing Stream Requests:
// - The Heart Beat Sensor handles the SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG
//    message ID for all stream enable/update requests.
// No configuration is available for this sensor.
//
// ## Publishing Stream Events:
// 1. The Heart Beat Sensor publishes heat beat presence using the sns_std_sensor_event message.
//    - sns_std_sensor_event::data[0] = confidence in the detection of the peak
//    where 0.0 represent no information at all, and 1.0 represents certainty.
// 2. Each stream event publishes an accuracy field:
//    - SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is
//    yet to stabilize after the sensor is configured.
//    - SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid.
// 3. The Heart Beat Sensor publishes a configuration event using the
//    sns_std_sensor_physical_config_event message.
//    It publishes this event each time there is change in hardware config of the sensor
//    or when a client sends a new request.
//
syntax = "proto2";
import "sns_std_sensor.proto";