1syntax = "proto2"; 2 3package chre_cross_validation_sensor; 4 5option java_package = "com.google.android.chre.nanoapp.proto"; 6option java_outer_classname = "ChreCrossValidationSensor"; 7 8// Nanoappp message type can be either host to chre (H2C) or chre to host (C2H) 9enum MessageType { 10 // Reserved for corrupted messages 11 UNDEFINED = 0; 12 13 // H2C: Host telling nanoapp to start collecting sensor data 14 // Payload must be StartCommand message 15 CHRE_CROSS_VALIDATION_START = 1; 16 17 // C2H: Data payload to be validated. This is a batch of data exactly as it 18 // was received from a CHRE API. 19 // Payload must be Data message 20 CHRE_CROSS_VALIDATION_DATA = 2; 21 22 // H2C: Host asking nanoapp for information about a given sensor. 23 // Payload must be SensorInfoCommand message. 24 CHRE_CROSS_VALIDATION_INFO = 3; 25 26 // C2H: Response to a information request for a sensor. 27 // Payload must be a SensorInfoResponse message. 28 CHRE_CROSS_VALIDATION_INFO_RESPONSE = 4; 29} 30 31message StartCommand { 32 oneof command { 33 StartSensorCommand startSensorCommand = 1; 34 } 35} 36 37/* 38 * apSensorType values defined in Sensor class of 39 * android/frameworks/base/core/java/android/hardware/Sensor.java 40 */ 41message StartSensorCommand { 42 optional uint32 chreSensorType = 1; 43 optional uint64 intervalInMs = 2; 44 optional uint64 latencyInMs = 3; 45 optional bool isContinuous = 4; 46 optional uint32 sensorIndex = 5; 47} 48 49/* 50 * Asks for the nanoapp to provide stats about the provided CHRE sensor type. 51 */ 52message SensorInfoCommand { 53 optional uint32 chreSensorType = 1; 54 // The sensor name given by android.hardware.Sensor#getSensorName() 55 optional bytes sensorName = 2; 56} 57 58/* 59 * Response to a SensorInfoCommand containing data about the requested sensor. 60 */ 61message SensorInfoResponse { 62 optional uint32 chreSensorType = 1; 63 optional bool isAvailable = 2; 64 optional uint32 sensorIndex = 3; 65 optional bytes sensorName = 4; 66} 67 68message Data { 69 oneof data { 70 SensorData sensorData = 1; 71 } 72} 73 74/* 75 * Similar data to structs with naming scheme chreSensor*Data found in 76 * android/system/chre/chre_api/include/chre_api/chre/sensor_types.h 77 */ 78message SensorData { 79 optional uint32 chreSensorType = 1; 80 optional uint32 accuracy = 2; 81 repeated SensorDatapoint datapoints = 3; 82} 83 84/* 85 * Similar data to structs with naming scheme chreSensor*SampleData found in 86 * android/system/chre/chre_api/include/chre_api/chre/sensor_types.h except 87 * that timestampDelta has been replaced with timestampInNs which is an 88 * absolute timestamp instead of the delta relative to the last sample. 89 */ 90message SensorDatapoint { 91 optional uint64 timestampInNs = 1; 92 repeated float values = 2; 93} 94