186 lines
5.6 KiB
Plaintext
186 lines
5.6 KiB
Plaintext
// Copyright (C) 2019 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.
|
|
|
|
namespace chre.power_test;
|
|
|
|
/// Indicates which of the following messages is being sent to / from the
|
|
/// nanoapp. Use uint as the base type to match the message type in
|
|
/// chreMessageFromHostData.
|
|
enum MessageType : uint {
|
|
UNSPECIFIED = 0,
|
|
/// Should be used with TimerMessage
|
|
TIMER_TEST,
|
|
/// Should be used with WifiScanMessage
|
|
WIFI_SCAN_TEST,
|
|
/// Should be used with GnssLocationMessage
|
|
GNSS_LOCATION_TEST,
|
|
/// Should be used with CellQueryMessage
|
|
CELL_QUERY_TEST,
|
|
/// Should be used with AudioRequestMessage
|
|
AUDIO_REQUEST_TEST,
|
|
/// Should be used with SensorRequestMessage
|
|
SENSOR_REQUEST_TEST,
|
|
/// Should be used with BreakItMessage
|
|
BREAK_IT_TEST,
|
|
/// Should be used with NanoappResponseMessage
|
|
NANOAPP_RESPONSE,
|
|
/// Should be used with GnssMeasurementMessage
|
|
GNSS_MEASUREMENT_TEST,
|
|
/// Should be used with WifiNanSubMessage
|
|
WIFI_NAN_SUB,
|
|
/// Should be used with WifiNanSubCancelMessage
|
|
WIFI_NAN_SUB_CANCEL,
|
|
/// Should be used with WifiNanSubResponseMessage
|
|
WIFI_NAN_SUB_RESP,
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to create a timer that wakes up at
|
|
/// the given interval
|
|
table TimerMessage {
|
|
enable:bool;
|
|
wakeup_interval_ns:ulong;
|
|
}
|
|
|
|
/// All the various WiFi scan types that can be interacted with inside the
|
|
/// nanoapp. The values used here map directly to values from the CHRE API.
|
|
enum WifiScanType : ubyte {
|
|
ACTIVE = 0,
|
|
ACTIVE_PLUS_PASSIVE_DFS = 1,
|
|
PASSIVE = 2,
|
|
NO_PREFERENCE = 3,
|
|
}
|
|
|
|
/// All the various WiFi radio chain preferences that can be interacted with
|
|
/// inside the nanoapp. The values used here map directly to values from the
|
|
/// CHRE API.
|
|
enum WifiRadioChain : ubyte {
|
|
DEFAULT = 0,
|
|
LOW_LATENCY = 1,
|
|
LOW_POWER = 2,
|
|
HIGH_ACCURACY = 3,
|
|
}
|
|
|
|
/// All the various WiFi channel sets that can be interacted with inside the
|
|
/// nanoapp. The values used here map directly to values from the CHRE API.
|
|
enum WifiChannelSet : ubyte {
|
|
NON_DFS = 0,
|
|
ALL = 1,
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start or stop WiFi scanning and
|
|
/// the scan interval to use if scanning is being started
|
|
table WifiScanMessage {
|
|
enable:bool;
|
|
scan_interval_ns:ulong;
|
|
scan_type:WifiScanType;
|
|
radio_chain:WifiRadioChain;
|
|
channel_set:WifiChannelSet;
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start or stop Gnss location
|
|
/// sampling at the requested interval
|
|
table GnssLocationMessage {
|
|
enable:bool;
|
|
scan_interval_millis:uint;
|
|
min_time_to_next_fix_millis:uint;
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start or stop querying the cell
|
|
/// modem for the latest cell scan results on the given interval
|
|
table CellQueryMessage {
|
|
enable:bool;
|
|
query_interval_ns:ulong;
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start / stop requesting Audio
|
|
/// data buffered at given interval. Note: If there is more than one audio
|
|
/// source, the nanoapp will only request audio from the first source.
|
|
table AudioRequestMessage {
|
|
enable:bool;
|
|
/// The buffer duration is also used as the interval for how often
|
|
/// the buffer should be delivered to the nanoapp.
|
|
buffer_duration_ns:ulong;
|
|
}
|
|
|
|
/// All the various sensors that can be interacted with inside the nanoapp.
|
|
/// The values used here map directly to values from the CHRE API
|
|
enum SensorType : ubyte {
|
|
UNKNOWN = 0,
|
|
ACCELEROMETER = 1,
|
|
INSTANT_MOTION_DETECT = 2,
|
|
STATIONARY_DETECT = 3,
|
|
GYROSCOPE = 6,
|
|
UNCALIBRATED_GYROSCOPE = 7,
|
|
GEOMAGNETIC_FIELD = 8,
|
|
UNCALIBRATED_GEOMAGNETIC_FIELD = 9,
|
|
PRESSURE = 10,
|
|
LIGHT = 12,
|
|
PROXIMITY = 13,
|
|
STEP_DETECT = 23,
|
|
STEP_COUNTER = 24,
|
|
UNCALIBRATED_ACCELEROMETER = 55,
|
|
ACCELEROMETER_TEMPERATURE = 56,
|
|
GYROSCOPE_TEMPERATURE = 57,
|
|
GEOMAGNETIC_FIELD_TEMPERATURE = 58,
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start / stop sampling / batching
|
|
/// a given sensor
|
|
table SensorRequestMessage {
|
|
enable:bool;
|
|
sensor:SensorType;
|
|
sampling_interval_ns:ulong;
|
|
latency_ns:ulong;
|
|
}
|
|
|
|
/// Represents a message to enable / disable break-it mode inside the nanoapp.
|
|
/// Break-it mode enables WiFi / GNSS / Cell to be queried every second and
|
|
/// enables all sensors at their fastest sampling rate.
|
|
table BreakItMessage {
|
|
enable:bool;
|
|
}
|
|
|
|
/// Indicates whether the nanoapp successfully performed the requested action.
|
|
/// Any failures will be printed to the logs.
|
|
table NanoappResponseMessage {
|
|
success:bool;
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start or stop Gnss measurement
|
|
/// sampling at the requested interval
|
|
table GnssMeasurementMessage {
|
|
enable:bool;
|
|
min_interval_millis:uint;
|
|
}
|
|
|
|
/// Represents a message to ask the nanoapp to start a NAN subscription session.
|
|
/// See chreWifiNanSubscribeConfig for how to fill in this message.
|
|
table WifiNanSubMessage {
|
|
sub_type:ubyte;
|
|
service_name:[ubyte];
|
|
service_specific_info:[ubyte];
|
|
match_filter:[ubyte];
|
|
}
|
|
|
|
/// Represents a messages to ask the nanoapp to cancel an ongoing subscription
|
|
table WifiNanSubCancelMessage {
|
|
subscription_id:uint;
|
|
}
|
|
|
|
/// Represents a message from the nanoapp indicating whether a subscription
|
|
/// request succeeded
|
|
table WifiNanSubResponseMessage {
|
|
success:bool;
|
|
subscription_id:uint;
|
|
} |