// @file sns_ppg.proto
//
// @brief Defines message types for PPG Sensors.
//
// @copyright
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All rights reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
// ## Attribute Requirements:
// The PPG Sensor publishes:
// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "ppg".
// 2. SNS_STD_SENSOR_ATTRID_RATES attribute values in Hz.
// 3. SNS_STD_SENSOR_ATTRID_STREAM_TYPE attribute as SNS_STD_SENSOR_STREAM_TYPE_STREAMING.
// 4. SNS_STD_SENSOR_ATTRID_API attribute contains "sns_ppg.proto".
//
// ## Processing Stream Requests:
// 1. The PPG Sensor handles the sns_std_sensor_config
//    message request with msgid SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG
//    for all stream enable/update requests.
// 2. The PPG Sensor uses batching_period item in
//    sns_std_request as the requested batching rate to determine
//    hardware FIFO watermark.
//
// ## Publishing Stream Events:
// 1. The PPG Sensor publishes PPG data stream events
//    using the sns_std_sensor_event message.
//    Each sensor can choose to publish a private proto file to specify what
//    each data field look like
// 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 PPG 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
//    and contains current physical sensor config of the sensor.
syntax = "proto2";
import "nanopb.proto";
import "sns_std_sensor.proto";
import "sns_physical_sensor_test.proto";
