| /* |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.frameworks.stats@1.0; |
| |
| /* |
| * Represents the detected speaker impedance value. |
| */ |
| struct SpeakerImpedance { |
| |
| /* |
| * A vendor-specific value identifying a particular speaker on the device. |
| * This value is opaque to the server, it must not try to interpret any |
| * meaning to this location. |
| */ |
| int32_t speakerLocation; |
| |
| /* The detected impedance in milliOhms. */ |
| int32_t milliOhms; |
| }; |
| |
| /* |
| * Represents a failed hardware report. |
| */ |
| struct HardwareFailed { |
| |
| /* HardwareType for reportHardwareFailed */ |
| enum HardwareType : int32_t { |
| UNKNOWN = 0, |
| MICROPHONE = 1, |
| CODEC = 2, |
| SPEAKER = 3, |
| FINGERPRINT = 4, |
| }; |
| HardwareType hardwareType; |
| |
| /** |
| * hardware_location allows vendors to differentiate between multiple |
| * instances of the same hardware_type. The specific locations are vendor |
| * defined integers, referring to board-specific numbering schemes. |
| */ |
| int32_t hardwareLocation; |
| |
| /** |
| * ErrorCodes for reportHardwareFailed. |
| * ErrorCode interpretation depends on the hardwareType parameter. |
| * Values prefixed by different hardwareTypes overlap. |
| * COMPLETE refers to a complete failure e.g. non-responsive microphone. |
| * For most components, unless a more specific failure exists, COMPLETE should be used. |
| * UNKNOWN refers to an unexpected or unknown error. |
| */ |
| enum HardwareErrorCode : int32_t { |
| UNKNOWN, |
| COMPLETE, |
| SPEAKER_HIGH_Z, |
| SPEAKER_SHORT, |
| FINGERPRINT_SENSOR_BROKEN, |
| FINGERPRINT_TOO_MANY_DEAD_PIXELS, |
| DEGRADE, |
| }; |
| HardwareErrorCode errorCode; |
| }; |
| |
| /* |
| * Represents a physical drop detected event. |
| */ |
| struct PhysicalDropDetected { |
| |
| /* Confidence that the event was actually a drop, 0 -> 100 */ |
| uint8_t confidencePctg; |
| |
| /* Peak acceleration of the drop, in 1/1000s of a g. */ |
| int32_t accelPeak; |
| |
| /* Duration of freefall in ms. */ |
| int32_t freefallDuration; |
| }; |
| |
| /** |
| * Represents bucketed battery charge cycles. |
| * |
| * Each list of buckets represents the number of times |
| * the battery has charged past equal-sized fractions of full capacity. |
| * For example, given the vector [12, 11, 10, 9, 8, 7, 6, 5], the battery |
| * has charged past 1/8th full 12 times, 2/8ths full 11 times, etc. |
| */ |
| struct ChargeCycles { |
| |
| vec<int32_t> cycleBucket; |
| }; |
| |
| |
| /** Represents parameters for reportBatteryHealthSnapshot. */ |
| struct BatteryHealthSnapshotArgs { |
| |
| /* The instance of this snapshot. */ |
| enum BatterySnapshotType : int32_t { |
| MIN_TEMP = 1, // Snapshot at min batt temp over 24hrs. |
| MAX_TEMP, // Snapshot at max batt temp over 24hrs. |
| MIN_RESISTANCE, // Snapshot at min batt resistance over 24hrs. |
| MAX_RESISTANCE, // Snapshot at max batt resistance over 24hrs. |
| MIN_VOLTAGE, // Snapshot at min batt voltage over 24hrs. |
| MAX_VOLTAGE, // Snapshot at max batt voltage over 24hrs. |
| MIN_CURRENT, // Snapshot at min batt current over 24hrs. |
| MAX_CURRENT, // Snapshot at max batt current over 24hrs. |
| MIN_BATT_LEVEL, // Snapshot at min battery level (SoC) over 24hrs. |
| MAX_BATT_LEVEL, // Snapshot at max battery level (SoC) over 24hrs. |
| AVG_RESISTANCE, // Snapshot at average battery resistance over 24hrs. |
| }; |
| BatterySnapshotType type; |
| |
| /* Temperature Temperature, in 1/10ths of degree C. */ |
| int32_t temperatureDeciC; |
| |
| /* Voltage Battery Voltage, in microVolts. */ |
| int32_t voltageMicroV; |
| |
| /* Current Battery current, in microAmps. */ |
| int32_t currentMicroA; |
| |
| /* OpenCircuitVoltage Battery Open Circuit Voltage, in microVolts. */ |
| int32_t openCircuitVoltageMicroV; |
| |
| /* Resistance Battery Resistance, in microOhms. */ |
| int32_t resistanceMicroOhm; |
| |
| /* Level Battery Level, as % of full. */ |
| int32_t levelPercent; |
| }; |
| |
| /** Represents slow I/O operations on the primary flash storage, aggregated. */ |
| struct SlowIo { |
| |
| /* Classifications of IO Operations for reportSlowIo. */ |
| enum IoOperation : int32_t { |
| UNKNOWN, |
| READ, |
| WRITE, |
| UNMAP, |
| SYNC, |
| }; |
| IoOperation operation; |
| |
| /* The number of slow IO operations of this type over 24 hours. */ |
| int32_t count; |
| }; |
| |
| /** Represents BatteryCausedShutdown with the last recorded voltage. */ |
| struct BatteryCausedShutdown { |
| |
| /* The last recorded battery voltage prior to shutdown. */ |
| int32_t voltageMicroV; |
| }; |
| |
| /** Represents USB port overheat event. */ |
| struct UsbPortOverheatEvent { |
| |
| /* Temperature of USB port at USB plug event, in 1/10ths of degree C. */ |
| int32_t plugTemperatureDeciC; |
| |
| /* Maximum temperature of USB port during overheat event, in 1/10ths of degree C. */ |
| int32_t maxTemperatureDeciC; |
| |
| /* Time between USB plug event and overheat threshold trip, in seconds. */ |
| int32_t timeToOverheat; |
| |
| /* Time between overheat threshold trip and hysteresis, in seconds. */ |
| int32_t timeToHysteresis; |
| |
| /* Time between hysteresis and active mitigation ending, in seconds. */ |
| int32_t timeToInactive; |
| }; |
| |
| /* |
| * Represents the speech DSP stat of total uptime, downtime, crash count and recover count. |
| */ |
| struct SpeechDspStat { |
| |
| /* Speech DSP total up time in milliseconds. */ |
| int32_t totalUptimeMillis; |
| |
| /* Speech DSP total down time in milliseconds. */ |
| int32_t totalDowntimeMillis; |
| |
| /* Speech DSP total crash count. */ |
| int32_t totalCrashCount; |
| |
| /* Speech DSP recover mechanism trigger count. */ |
| int32_t totalRecoverCount; |
| |
| }; |
| |
| /* |
| * Generic vendor atom that allows dynamically allocated atoms to be uploaded |
| * through statsd. |
| * |
| * Here's an example that uses this struct: |
| * VendorAtom atom = { |
| * .atomId = 100000, |
| * .values = {2, 70000, 5.2, 4, "a"} |
| * }; |
| * |
| * The resulting LogEvent must have the following fields: |
| * Index Value |
| * 0x1 2 |
| * 0x2 70000 |
| * 0x3 5.2 |
| * 0x4 4 |
| * 0x5 "a" |
| */ |
| struct VendorAtom { |
| |
| /** |
| * Vendor or OEM reverse domain name. Must be less than 50 characters. |
| * Ex. "com.google.pixel" |
| */ |
| string reverseDomainName; |
| |
| /* Atom ID. Must be between 100,000 - 199,999 to indicate non-AOSP field. */ |
| int32_t atomId; |
| |
| /* Supported field types for this struct. */ |
| safe_union Value { |
| int32_t intValue; |
| int64_t longValue; |
| float floatValue; |
| string stringValue; |
| }; |
| |
| /* Vector of fields in the order that the LogEvent should be filled. */ |
| vec<Value> values; |
| }; |