// @file sns_gyro_rot_matrix.proto
//
// Defines standard message types for the Gyro Rotation Matrix
//
// Copyright (c) 2016-2017 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
syntax = "proto2";
import "nanopb.proto";
import "sns_std_sensor.proto";

enum sns_gyro_rot_matrix_msgid
{
  option (nanopb_enumopt).long_names = false;

  SNS_GYRO_ROT_MATRIX_MSGID_SNS_STD_SENSOR_EVENT = 1024;
}

// Data Message
// Data event generated by the gyro rotation matrix.
// Uses sns_std_sensor_event message defined in sns_std_sensor.proto
// The data field of the sns_std_sensor_event message
// contains a float array of length 10 with the following definition
// 1) float data[0] to data[8]
//      3 by 3 Gyro Rotation Matrix output
//      Representing the rotation from previously sampled gyro values
//      to the current one.
//      The matrix definition is as follows:
//      curr_gyro_XYZ[3X1] = gyro_rot_matrix[3X3] * prev_gyro_XYZ[3X1]
//      data[0] = gyro_rot_matrix[0,0]
//      data[1] = gyro_rot_matrix[0,1]
//      data[2] = gyro_rot_matrix[0,2]
//      data[3] = gyro_rot_matrix[1,0]
//      data[4] = gyro_rot_matrix[1,1]
//      data[5] = gyro_rot_matrix[1,2]
//      data[6] = gyro_rot_matrix[2,0]
//      data[7] = gyro_rot_matrix[2,1]
//      data[8] = gyro_rot_matrix[2,2]
// 2) float data[9]
//      Gyro Norm of the currently sampled gyro data
//      determined as the sum of squares of gyro on each of the axes
//      i.e. curr_gyro_X^2 + curr_gyro_Y^2 + curr_gyro_Z^2

// Configuration Message
// Used to either request for a certain configuration of the Gyro Rotation Matrix Sensor or
// alter an already existing configuration of the Simulation Sensor
// Uses sns_std_sensor_config defined in sns_std_sensor.proto
// The message field definitions are as follows:
// 1) float sample_rate
//      containing the required sample rate of the Gyro Rotation Matrix sensor in hertz
