// @file sns_electro_neuro_graph.proto
//
// Defines the API for electro_neuro_graph Sensor.
//
// @copyright
// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
// All rights reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.

syntax = "proto2";
import "nanopb.proto";
import "sns_std_sensor.proto";
import "sns_physical_sensor_test.proto";

// Attribute requirements:
// The electro_neuro_graph Sensor publishes:
// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "electro_neuro_graph".
// 2. SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_STREAMING
// 3. SNS_STD_SENSOR_ATTRID_RATES attribute values in Hz.

// Handling stream events:
// 1. The electro_neuro_graph Sensor publishes electro_neuro_graph data stream events
//    using the sns_std_sensor_event message.
// 2. Each stream event contains output data fields
//    data[0], data[1], data[2], data[3] are raw adc values from each channel.
// 3. Each stream event publishes an accuracy field:
//    SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples
//    SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid.
// 4. The electro_neuro_graph 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.

