thermal-hal: Add schema to check thermalHAL JSON files

Added a schema in proto to check fields of the JSON files
during pre-submit.

Test: Build
Bug: 127794899
Change-Id: I9e6cf116746f357d1de1b578f494a2b8f485e640
This commit is contained in:
Will Song 2023-11-03 01:11:39 +00:00
parent 4984f37fe0
commit 24a0f58c33
2 changed files with 171 additions and 0 deletions

View File

@ -0,0 +1,17 @@
cc_library_static {
name: "thermal_HAL_info_config_proto",
host_supported: true,
srcs: [
"thermal_info_config.proto",
],
proto: {
type: "full",
export_proto_headers: true,
include_dirs: ["external/protobuf/src"],
},
cflags: [
"-Wall",
"-Werror",
"-Wno-unused-parameter",
],
}

View File

@ -0,0 +1,154 @@
/*
* Copyright (C) 2023 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.
*/
syntax = "proto3";
package devices.shusky;
message ThermalConfig {
repeated Sensor sensors = 1 [ json_name = "Sensors" ];
repeated CoolingDevice coolingdevices = 2 [ json_name = "CoolingDevices" ];
repeated PowerRails powerrails = 3 [ json_name = "PowerRails" ];
Stats stats = 4 [ json_name = "Stats" ];
}
message Sensor {
string name = 1 [ json_name = "Name" ];
string type = 2 [ json_name = "Type" ];
repeated float hotthreshold = 3 [ json_name = "HotThreshold" ];
repeated float hothysteresis = 4 [ json_name = "HotHysteresis" ];
string temppath = 5 [ json_name = "TempPath" ];
float multiplier = 6 [ json_name = "Multiplier" ];
int32 pollingdelay = 7 [ json_name = "PollingDelay" ];
int32 passivedelay = 8 [ json_name = "PassiveDelay" ];
bool hidden = 9 [ json_name = "Hidden" ];
bool virtualsensor = 10 [ json_name = "VirtualSensor" ];
repeated string triggersensor = 11 [ json_name = "TriggerSensor" ];
string formula = 12 [ json_name = "Formula" ];
repeated string combination = 13 [ json_name = "Combination" ];
repeated float Coefficient = 14 [ json_name = "Coefficient" ];
bool sendpowerhint = 15 [ json_name = "SendPowerHint" ];
bool sendcallback = 16 [ json_name = "SendCallback" ];
PIDInfo pidinfo = 17 [ json_name = "PIDInfo" ];
repeated ExcludedPowerInfo excludedpowerinfo = 18
[ json_name = "ExcludedPowerInfo" ];
repeated BindedCdevInfo bindedcdevinfos = 19 [ json_name = "BindedCdevInfo" ];
repeated string combinationtype = 20 [ json_name = "CombinationType" ];
string version = 21 [ json_name = "Version" ];
int32 offset = 22 [ json_name = "Offset" ];
repeated Profile profile = 23 [ json_name = "Profile" ];
float vrthreshold = 24 [ json_name = "VrThreshold" ];
bool monitor = 25 [ json_name = "Monitor" ];
}
message Profile {
string mode = 1 [ json_name = "Mode" ];
repeated BindedCdevInfo bindedcdevinfo = 2 [ json_name = "BindedCdevInfo" ];
}
message ExcludedPowerInfo {
string powerrail = 1 [ json_name = "PowerRail" ];
repeated float powerweight = 2 [ json_name = "PowerWeight" ];
}
message BindedCdevInfo {
string cdevrequest = 1 [ json_name = "CdevRequest" ];
repeated float cdevweightforpid = 2 [ json_name = "CdevWeightForPID" ];
int32 maxreleasestep = 3 [ json_name = "MaxReleaseStep" ];
int32 maxthrottlestep = 4 [ json_name = "MaxThrottleStep" ];
repeated int32 cdevceiling = 5 [ json_name = "CdevCeiling" ];
repeated int32 limitinfo = 6 [ json_name = "LimitInfo" ];
string bindedpowerrail = 7 [ json_name = "BindedPowerRail" ];
bool disabled = 8 [ json_name = "Disabled" ];
}
message PIDInfo {
repeated float k_po = 1 [ json_name = "K_Po" ];
repeated float k_pu = 2 [ json_name = "K_Pu" ];
repeated float k_i = 3 [ json_name = "K_I" ];
repeated float k_d = 4 [ json_name = "K_D" ];
repeated float i_max = 5 [ json_name = "I_Max" ];
repeated float s_power = 6 [ json_name = "S_Power" ];
repeated float minallocpower = 7 [ json_name = "MinAllocPower" ];
repeated float maxallocpower = 8 [ json_name = "MaxAllocPower" ];
repeated float i_cutoff = 9 [ json_name = "I_Cutoff" ];
int32 i_default = 10 [ json_name = "I_Default" ];
}
message CoolingDevice {
string name = 1 [ json_name = "Name" ];
string type = 2 [ json_name = "Type" ];
string writepath = 3 [ json_name = "WritePath" ];
repeated int32 state2power = 4 [ json_name = "State2Power" ];
}
message PowerRails {
string name = 1 [ json_name = "Name" ];
int32 powersampledelay = 2 [ json_name = "PowerSampleDelay" ];
int32 powersamplecount = 3 [ json_name = "PowerSampleCount" ];
bool virtualrails = 4 [ json_name = "VirtualRails" ];
string formula = 5 [ json_name = "Formula" ];
repeated string combination = 6 [ json_name = "Combination" ];
repeated float coefficient = 7 [ json_name = "Coefficient" ];
}
message Stats {
SensorStats sensorstats = 1 [ json_name = "Sensors" ];
CoolingDeviceStats coolingdevicestats = 2 [ json_name = "CoolingDevices" ];
}
message SensorStats {
repeated string recordwithdefaultthreshold = 1
[ json_name = "RecordWithDefaultThreshold" ];
repeated SensorStat recordwiththreshold = 2
[ json_name = "RecordWithThreshold" ];
Abnormality abnormality = 3 [ json_name = "Abnormality" ];
}
message CoolingDeviceStats {
RecordVotePerSensor recordvotepersensor = 1
[ json_name = "RecordVotePerSensor" ];
}
message RecordVotePerSensor {
bool defaultthresholdenableall = 1
[ json_name = "DefaultThresholdEnableAll" ];
}
message SensorStat {
string name = 1 [ json_name = "Name" ];
repeated int32 thresholds = 2 [ json_name = "Thresholds" ];
}
message Abnormality {
Outlier outlier = 1 [ json_name = "Outlier" ];
Stuck stuck = 2 [ json_name = "Stuck" ];
}
message Outlier { repeated Config configs = 1 [ json_name = "Configs" ]; }
message Stuck { repeated Config configs = 1 [ json_name = "Configs" ]; }
message Config {
repeated string monitor = 1 [ json_name = "Monitor" ];
TempStuck tempstuck = 2 [ json_name = "TempStuck" ];
repeated float temprange = 3 [ json_name = "TempRange" ];
}
message TempStuck {
int32 minpollingcount = 1 [ json_name = "MinPollingCount" ];
int32 minstuckduration = 2 [ json_name = "MinStuckDuration" ];
}