17afdb3942adde7efd33b5af5556fead92243e49cNathan Harold/* 27afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * Copyright (C) 2018 The Android Open Source Project 37afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * 47afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * Licensed under the Apache License, Version 2.0 (the "License"); 57afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * you may not use this file except in compliance with the License. 67afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * You may obtain a copy of the License at 77afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * 87afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * http://www.apache.org/licenses/LICENSE-2.0 97afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * 107afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * Unless required by applicable law or agreed to in writing, software 117afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * distributed under the License is distributed on an "AS IS" BASIS, 127afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * See the License for the specific language governing permissions and 147afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * limitations under the License. 157afdb3942adde7efd33b5af5556fead92243e49cNathan Harold */ 167afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 177afdb3942adde7efd33b5af5556fead92243e49cNathan Haroldpackage com.android.internal.telephony; 187afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 197afdb3942adde7efd33b5af5556fead92243e49cNathan Harold/** 207afdb3942adde7efd33b5af5556fead92243e49cNathan Harold * Link Bandwidth Information from the Radio 217afdb3942adde7efd33b5af5556fead92243e49cNathan Harold */ 227afdb3942adde7efd33b5af5556fead92243e49cNathan Haroldpublic class LinkCapacityEstimate { 237afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Any field that is not reported shall be set to INVALID */ 247afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public static final int INVALID = -1; 257afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 267afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** LCE is active; Deprecated in HAL 1.2 */ 277afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public static final int STATUS_ACTIVE = 0; 287afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 297afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** LCE is suspended; Deprecated in HAL 1.2 */ 307afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public static final int STATUS_SUSPENDED = 1; 317afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 327afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Downlink radio link capacity in kbps */ 337afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public final int downlinkCapacityKbps; 347afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 357afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Uplink radio link capacity; added in HAL 1.2 */ 367afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public final int uplinkCapacityKbps; 377afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 387afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Confidence of the downlink estimate as a percentage [1, 100]; deprecated in HAL 1.2 */ 397afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public final int confidence; 407afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 417afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Status of the LCE; deprecated in HAL 1.2 */ 427afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public final int status; // either STATUS_ACTIVE, STATUS_SUSPENDED, or INVALID 437afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 447afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Constructor matching the estimate in Radio HAL v1.0 */ 457afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public LinkCapacityEstimate(int downlinkCapacityKbps, int confidence, int status) { 467afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.downlinkCapacityKbps = downlinkCapacityKbps; 477afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.confidence = confidence; 487afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.status = status; 497afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.uplinkCapacityKbps = INVALID; 507afdb3942adde7efd33b5af5556fead92243e49cNathan Harold } 517afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 527afdb3942adde7efd33b5af5556fead92243e49cNathan Harold /** Constructor matching the estimate in Radio HAL v1.2 */ 537afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public LinkCapacityEstimate(int downlinkCapacityKbps, int uplinkCapacityKbps) { 547afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.downlinkCapacityKbps = downlinkCapacityKbps; 557afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.uplinkCapacityKbps = uplinkCapacityKbps; 567afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.confidence = INVALID; 577afdb3942adde7efd33b5af5556fead92243e49cNathan Harold this.status = INVALID; 587afdb3942adde7efd33b5af5556fead92243e49cNathan Harold } 597afdb3942adde7efd33b5af5556fead92243e49cNathan Harold 607afdb3942adde7efd33b5af5556fead92243e49cNathan Harold @Override 617afdb3942adde7efd33b5af5556fead92243e49cNathan Harold public String toString() { 627afdb3942adde7efd33b5af5556fead92243e49cNathan Harold return new StringBuilder() 637afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append("{downlinkCapacityKbps=") 647afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(downlinkCapacityKbps) 657afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(", uplinkCapacityKbps=") 667afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(uplinkCapacityKbps) 677afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(", confidence=") 687afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(confidence) 697afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(", status=") 707afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .append(status) 717afdb3942adde7efd33b5af5556fead92243e49cNathan Harold .toString(); 727afdb3942adde7efd33b5af5556fead92243e49cNathan Harold } 737afdb3942adde7efd33b5af5556fead92243e49cNathan Harold} 74