proprietary_vendor_motorola.../proprietary/vendor/etc/sensors/proto/sns_hinge_angle.proto

84 lines
3.2 KiB
Protocol Buffer
Raw Normal View History

// @file sns_hinge_angle.proto
//
// Defines message types for the Hinge Angle Sensor.
//
// Copyright (c) 2020 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
syntax = "proto2";
import "nanopb.proto";
import "sns_std_sensor.proto";
// The Hinge Angle Sensor detects the angle between two rigid bodies connected by a hinge
// around which rotation can occur.
//
// The reference position for Hinge Angle measurement constitues the two rigid bodies being
// parallel to the ground, with surfaces in contact with each other and hinge connecting
// the left edges of the two rigid bodies.
// The rigid body that is located below is defined to be the primary rigid body.
// The rigid body which is located above is defined to be the secondary rigid body.
//
// The Hinge Angle Sensor detects the angle going from the primary rigid body to the
// secondary rigid body, measured counter clockwise around the hinge. The maximum range of
// reported angles will be from 0 degrees to 360 degrees.
//
// A Hinge Angle of 0 degrees is reported when the two rigid bodies have the same surfaces,
// as described in the reference position, in contact with each other.
//
// A Hinge Angle of 360 degrees is reported when the two rigid bodies have the opposite
// surfaces, to those described in the reference position, in contact with each other.
//
// A Hinge Angle of 180 degrees is reported when the two rigid bodies are coplanar.
// Attribute Requirements:
// Hingle Angle Sensor must support the following attributes
// SNS_STD_SENSOR_ATTRID_TYPE: "hinge_angle"
// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE
// SNS_STD_SENSOR_ATTRID_RESOLUTIONS: the smallest hinge angle in degrees that
// can be detected by the sensor
// SNS_STD_SENSOR_ATTRID_RANGES: the range of angles detected by the sensor, for
// example [0,360]
// Request:
// A request message with message id SNS_HINGE_ANGLE_MSGID_SNS_HINGE_ANGLE_CONFIG
// and payload sns_hinge_angle_config is used to enable the Hinge Angle Sensor
// Event:
// Hinge Angle sensor generates an event with message id
// SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_EVENT and payload sns_std_sensor_event
// when hinge angle change is detected
// Message IDs for HINGE_ANGLE Sensor
enum sns_hinge_angle_msgid {
option (nanopb_enumopt).long_names = false;
SNS_HINGE_ANGLE_MSGID_SNS_HINGE_ANGLE_CONFIG = 512;
}
// Request Message
// Used to either request for a new configuration of the Hinge Angle Sensor or
// alter an already existing configuration
message sns_hinge_angle_config
{
// Ids of the primary and secondary rigid bodies between which hinge angle
// is to be measured. Ids must match the SNS_STD_SENSOR_ATTRID_RIGID_BODY
// attributes of the sensors on these rigid bodies that are to be used.
repeated int32 rigid_body = 1 [(nanopb).max_count = 2];
}
// Event Message
// Uses sns_std_sensor_event message defined in sns_std_sensor.proto
// The data field of the sns_std_sensor_event message contains a
// single floating point value representing the detected hinge angle
// in degrees
// The status field of the sns_std_sensor_event message contains the
// accuracy of the detected hinge angle