11d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi/* 21d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Copyright (C) 2016 The Android Open Source Project 31d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 41d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Licensed under the Apache License, Version 2.0 (the "License"); 51d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * you may not use this file except in compliance with the License. 61d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * You may obtain a copy of the License at 71d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 81d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * http://www.apache.org/licenses/LICENSE-2.0 91d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Unless required by applicable law or agreed to in writing, software 111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * distributed under the License is distributed on an "AS IS" BASIS, 121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * See the License for the specific language governing permissions and 141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * limitations under the License. 151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshipackage android.hardware.location; 171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.annotation.SystemApi; 191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.os.Parcel; 201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.os.Parcelable; 211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 221d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport java.util.Arrays; 231d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 241d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi/** 251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @hide 269ff7d2235427b211344fa58b608424805a21aa24Peng Xu */ 271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi@SystemApi 281d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshipublic class ContextHubInfo { 291d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mId; 301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private String mName; 311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private String mVendor; 321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private String mToolchain; 331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mPlatformVersion; 341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mStaticSwVersion; 351d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mToolchainVersion; 361d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private float mPeakMips; 371d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private float mStoppedPowerDrawMw; 381d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private float mSleepPowerDrawMw; 391d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private float mPeakPowerDrawMw; 40b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi private int mMaxPacketLengthBytes; 411d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 421d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int[] mSupportedSensors; 431d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 441d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private MemoryRegion[] mMemoryRegions; 451d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 461d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubInfo() { 471d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 481d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 491d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 50b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * returns the maximum number of bytes that can be sent per message to the hub 51b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * 52b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * @return int - maximum bytes that can be transmitted in a 53b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * single packet 54b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi */ 55b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi public int getMaxPacketLengthBytes() { 56b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi return mMaxPacketLengthBytes; 57b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi } 58b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi 59b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi /** 60b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * set the context hub unique identifer 61b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * 62b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * @param bytes - Maximum number of bytes per message 63b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * 64b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi * @hide 65b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi */ 66b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi public void setMaxPacketLenBytes(int bytes) { 67b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi mMaxPacketLengthBytes = bytes; 68b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi } 69b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi 70b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi /** 711d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the context hub unique identifer 721d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 731d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - unique system wide identifier 741d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 751d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getId() { 761d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mId; 771d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 781d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 791d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 801d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set the context hub unique identifer 811d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 821d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param id - unique system wide identifier for the hub 839ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 849ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 851d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 861d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setId(int id) { 871d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mId = id; 881d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 891d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 901d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 911d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get a string as a hub name 921d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 931d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return String - a name for the hub 941d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 951d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public String getName() { 961d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mName; 971d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 981d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 991d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1001d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set a string as the hub name 1011d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1029ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @param name - the name for the hub 1039ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 1049ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 1051d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1061d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setName(String name) { 1071d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mName = name; 1081d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1091d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get a string as the vendor name 1121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return String - a name for the vendor 1141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public String getVendor() { 1161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mVendor; 1171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set a string as the vendor name 1211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1229ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @param vendor - a name for the vendor 1239ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 1249ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 1251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1261d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setVendor(String vendor) { 1271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mVendor = vendor; 1281d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1291d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get tool chain string 1321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return String - description of the tool chain 1341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1351d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public String getToolchain() { 1361d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mToolchain; 1371d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1381d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1391d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1401d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set tool chain string 1411d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1429ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @param toolchain - description of the tool chain 1439ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 1449ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 1451d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1461d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setToolchain(String toolchain) { 1471d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mToolchain = toolchain; 1481d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1491d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1501d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1511d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get platform version 1521d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1531d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - platform version number 1541d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1551d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getPlatformVersion() { 1561d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mPlatformVersion; 1571d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1581d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1591d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1601d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set platform version 1611d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1621d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param platformVersion - platform version number 1639ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 1649ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 1651d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1661d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setPlatformVersion(int platformVersion) { 1671d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPlatformVersion = platformVersion; 1681d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1691d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1701d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1711d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get static platform version number 1721d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1731d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - platform version number 1741d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1751d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getStaticSwVersion() { 1761d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mStaticSwVersion; 1771d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1781d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1791d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1801d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set platform software version 1811d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1821d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param staticSwVersion - platform static s/w version number 1839ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 1849ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 1851d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1861d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setStaticSwVersion(int staticSwVersion) { 1871d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mStaticSwVersion = staticSwVersion; 1881d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1891d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1901d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 1911d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the tool chain version 1921d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 1931d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - the tool chain version 1941d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 1951d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getToolchainVersion() { 1961d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mToolchainVersion; 1971d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1981d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1991d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2001d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set the tool chain version number 2011d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2021d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param toolchainVersion - tool chain version number 2039ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 2049ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 2051d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2061d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setToolchainVersion(int toolchainVersion) { 2071d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mToolchainVersion = toolchainVersion; 2081d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2091d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the peak processing mips the hub can support 2121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return float - peak MIPS that this hub can deliver 2141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public float getPeakMips() { 2161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mPeakMips; 2171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set the peak mips that this hub can support 2211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2221d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param peakMips - peak mips this hub can deliver 2239ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 2249ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 2251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2261d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setPeakMips(float peakMips) { 2271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPeakMips = peakMips; 2281d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2291d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the stopped power draw in milliwatts 2321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * This assumes that the hub enter a stopped state - which is 2331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * different from the sleep state. Latencies on exiting the 2341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * sleep state are typically higher and expect to be in multiple 2351d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * milliseconds. 2361d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2371d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return float - power draw by the hub in stopped state 2381d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2391d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public float getStoppedPowerDrawMw() { 2401d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mStoppedPowerDrawMw; 2411d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2421d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2431d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2441d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Set the power consumed by the hub in stopped state 2451d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2461d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param stoppedPowerDrawMw - stopped power in milli watts 2479ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 2489ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 2491d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2501d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setStoppedPowerDrawMw(float stoppedPowerDrawMw) { 2511d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mStoppedPowerDrawMw = stoppedPowerDrawMw; 2521d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2531d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2541d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2551d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the power draw of the hub in sleep mode. This assumes 2561d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * that the hub supports a sleep mode in which the power draw is 2571d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * lower than the power consumed when the hub is actively 2581d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * processing. As a guideline, assume that the hub should be 2591d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * able to enter sleep mode if it knows reliably on completion 2601d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * of some task that the next interrupt/scheduled work item is 2611d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * at least 250 milliseconds later. 2621d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2631d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return float - sleep power draw in milli watts 2641d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2651d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public float getSleepPowerDrawMw() { 2661d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mSleepPowerDrawMw; 2671d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2681d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2691d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2701d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Set the sleep power draw in milliwatts 2711d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2721d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param sleepPowerDrawMw - sleep power draw in milliwatts. 2739ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 2749ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 2751d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2761d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setSleepPowerDrawMw(float sleepPowerDrawMw) { 2771d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mSleepPowerDrawMw = sleepPowerDrawMw; 2781d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2791d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2801d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2811d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the peak powe draw of the hub. This is the power consumed 2821d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * by the hub at maximum load. 2831d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2841d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return float - peak power draw 2851d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2861d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public float getPeakPowerDrawMw() { 2871d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mPeakPowerDrawMw; 2881d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 2891d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 2901d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 2911d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set the peak power draw of the hub 2921d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 2931d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param peakPowerDrawMw - peak power draw of the hub in 2941d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * milliwatts. 2959ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 2969ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 2971d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 2981d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setPeakPowerDrawMw(float peakPowerDrawMw) { 2991d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPeakPowerDrawMw = peakPowerDrawMw; 3001d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3011d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3021d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 3031d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the sensors supported by this hub 3041d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3051d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int[] - all the supported sensors on this hub 3061d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3071d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @see ContextHubManager 3081d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 3091d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int[] getSupportedSensors() { 3101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return Arrays.copyOf(mSupportedSensors, mSupportedSensors.length); 3111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 3141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get the various memory regions on this hub 3151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return MemoryRegion[] - all the memory regions on this hub 3171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @see MemoryRegion 3191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 3201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public MemoryRegion[] getMemoryRegions() { 3211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return Arrays.copyOf(mMemoryRegions, mMemoryRegions.length); 3221d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3231d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3241d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 3251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set the supported sensors on this hub 3261d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param supportedSensors - supported sensors on this hub 3289ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 3299ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 3301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 3311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setSupportedSensors(int[] supportedSensors) { 3321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mSupportedSensors = Arrays.copyOf(supportedSensors, supportedSensors.length); 3331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3351d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 3361d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set memory regions for this hub 3371d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3381d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param memoryRegions - memory regions information 3391d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 3401d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @see MemoryRegion 3419ff7d2235427b211344fa58b608424805a21aa24Peng Xu * 3429ff7d2235427b211344fa58b608424805a21aa24Peng Xu * @hide 3431d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 3441d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setMemoryRegions(MemoryRegion[] memoryRegions) { 3451d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mMemoryRegions = Arrays.copyOf(memoryRegions, memoryRegions.length); 3461d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3471d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3486239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi @Override 3496239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi public String toString() { 3506239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi String retVal = ""; 3516239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "Id : " + mId; 3526239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += ", Name : " + mName; 3536239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "\n\tVendor : " + mVendor; 3546239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += ", ToolChain : " + mToolchain; 3556239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "\n\tPlatformVersion : " + mPlatformVersion; 3566239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += ", StaticSwVersion : " + mStaticSwVersion; 3576239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "\n\tPeakMips : " + mPeakMips; 3586239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += ", StoppedPowerDraw : " + mStoppedPowerDrawMw + " mW"; 3596239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += ", PeakPowerDraw : " + mPeakPowerDrawMw + " mW"; 3606469c233fb9f7e617a5bc8b5d8348d7241d279c7destradaa retVal += ", MaxPacketLength : " + mMaxPacketLengthBytes + " Bytes"; 3616239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "\n\tSupported sensors : " + Arrays.toString(mSupportedSensors); 3626239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi retVal += "\n\tMemory Regions : " + Arrays.toString(mMemoryRegions); 3636239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi 3646239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi return retVal; 3656239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi } 3666239cc6fe1d18ce4365c56346a09c7963dfa8f10Ashutosh Joshi 3671d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private ContextHubInfo(Parcel in) { 3681d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mId = in.readInt(); 3691d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mName = in.readString(); 3701d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mVendor = in.readString(); 3711d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mToolchain = in.readString(); 3721d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPlatformVersion = in.readInt(); 3731d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mToolchainVersion = in.readInt(); 3741d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mStaticSwVersion = in.readInt(); 3751d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPeakMips = in.readFloat(); 3761d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mStoppedPowerDrawMw = in.readFloat(); 3771d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mSleepPowerDrawMw = in.readFloat(); 3781d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mPeakPowerDrawMw = in.readFloat(); 3796469c233fb9f7e617a5bc8b5d8348d7241d279c7destradaa mMaxPacketLengthBytes = in.readInt(); 3801d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3811d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi int numSupportedSensors = in.readInt(); 3821d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mSupportedSensors = new int[numSupportedSensors]; 3831d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi in.readIntArray(mSupportedSensors); 3841d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mMemoryRegions = in.createTypedArray(MemoryRegion.CREATOR); 3851d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3861d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3871d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int describeContents() { 3881d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return 0; 3891d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 3901d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 3911d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void writeToParcel(Parcel out, int flags) { 3921d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mId); 3931d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeString(mName); 3941d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeString(mVendor); 3951d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeString(mToolchain); 3961d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mPlatformVersion); 3971d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mToolchainVersion); 3981d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mStaticSwVersion); 3991d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeFloat(mPeakMips); 4001d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeFloat(mStoppedPowerDrawMw); 4011d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeFloat(mSleepPowerDrawMw); 4021d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeFloat(mPeakPowerDrawMw); 4036469c233fb9f7e617a5bc8b5d8348d7241d279c7destradaa out.writeInt(mMaxPacketLengthBytes); 4041d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 4051d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mSupportedSensors.length); 4061d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeIntArray(mSupportedSensors); 4071d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeTypedArray(mMemoryRegions, flags); 4081d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 4091d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 4101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public static final Parcelable.Creator<ContextHubInfo> CREATOR 4111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi = new Parcelable.Creator<ContextHubInfo>() { 4121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubInfo createFromParcel(Parcel in) { 4131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return new ContextHubInfo(in); 4141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 4151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 4161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubInfo[] newArray(int size) { 4171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return new ContextHubInfo[size]; 4181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 4191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi }; 4206469c233fb9f7e617a5bc8b5d8348d7241d279c7destradaa} 421