14e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum/* 24e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * Copyright (C) 2017 The Android Open Source Project 34e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * 44e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * Licensed under the Apache License, Version 2.0 (the "License"); 54e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * you may not use this file except in compliance with the License. 64e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * You may obtain a copy of the License at 74e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * 84e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * http://www.apache.org/licenses/LICENSE-2.0 94e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * 104e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * Unless required by applicable law or agreed to in writing, software 114e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * distributed under the License is distributed on an "AS IS" BASIS, 124e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * See the License for the specific language governing permissions and 144e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum * limitations under the License. 154e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum */ 164e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 174e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaumpackage android.net.lowpan; 184e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaumimport android.os.Parcel; 2080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaumimport android.os.Parcelable; 2180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaumimport java.util.Objects; 2280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 2380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum/** 2480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum * Provides detailed information about a given channel. 2580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum * 2680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum * @hide 2780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum */ 28325b7f5a066bc69c2ad32e1290274d18f40e423bRobert Quattlebaum// @SystemApi 2980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaumpublic class LowpanChannelInfo implements Parcelable { 304e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 314e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public static final int UNKNOWN_POWER = Integer.MAX_VALUE; 3280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public static final float UNKNOWN_FREQUENCY = 0.0f; 3380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public static final float UNKNOWN_BANDWIDTH = 0.0f; 344e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 354e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum private int mIndex = 0; 3680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private String mName = null; 3780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private float mSpectrumCenterFrequency = UNKNOWN_FREQUENCY; 3880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private float mSpectrumBandwidth = UNKNOWN_BANDWIDTH; 394e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum private int mMaxTransmitPower = UNKNOWN_POWER; 4080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private boolean mIsMaskedByRegulatoryDomain = false; 4180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 4280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum /** @hide */ 4380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public static LowpanChannelInfo getChannelInfoForIeee802154Page0(int index) { 4480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum LowpanChannelInfo info = new LowpanChannelInfo(); 4580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 4680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum if (index < 0) { 4780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info = null; 4880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 4980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else if (index == 0) { 5080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumCenterFrequency = 868300000.0f; 5180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumBandwidth = 600000.0f; 5280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 5380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else if (index < 11) { 5480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumCenterFrequency = 906000000.0f - (2000000.0f * 1) + 2000000.0f * (index); 5580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumBandwidth = 0; // Unknown 5680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 5780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else if (index < 26) { 5880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumCenterFrequency = 5980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 2405000000.0f - (5000000.0f * 11) + 5000000.0f * (index); 6080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumBandwidth = 2000000.0f; 6180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 6280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else { 6380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info = null; 6480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 6580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 6680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mName = Integer.toString(index); 6780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 6880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return info; 6980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 7080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 7180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private LowpanChannelInfo() {} 724e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 7380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum private LowpanChannelInfo(int index, String name, float cf, float bw) { 7480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mIndex = index; 7580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mName = name; 7680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mSpectrumCenterFrequency = cf; 7780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mSpectrumBandwidth = bw; 7880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 794e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 804e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public String getName() { 814e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mName; 824e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 834e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 844e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public int getIndex() { 854e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mIndex; 864e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 874e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 884e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public int getMaxTransmitPower() { 894e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mMaxTransmitPower; 904e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 914e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 924e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public boolean isMaskedByRegulatoryDomain() { 934e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mIsMaskedByRegulatoryDomain; 944e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 954e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 964e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public float getSpectrumCenterFrequency() { 974e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mSpectrumCenterFrequency; 984e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 994e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1004e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public float getSpectrumBandwidth() { 1014e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return mSpectrumBandwidth; 1024e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 1034e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1044e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum @Override 1054e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum public String toString() { 1064e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum StringBuffer sb = new StringBuffer(); 1074e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1084e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum sb.append("Channel ").append(mIndex); 1094e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 11080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum if (mName != null && !mName.equals(Integer.toString(mIndex))) { 1114e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum sb.append(" (").append(mName).append(")"); 1124e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 1134e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1144e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum if (mSpectrumCenterFrequency > 0.0f) { 11580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum if (mSpectrumCenterFrequency > 1000000000.0f) { 11680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumCenterFrequency: ") 11780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumCenterFrequency / 1000000000.0f) 11880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("GHz"); 11980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else if (mSpectrumCenterFrequency > 1000000.0f) { 12080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumCenterFrequency: ") 12180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumCenterFrequency / 1000000.0f) 12280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("MHz"); 12380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else { 12480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumCenterFrequency: ") 12580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumCenterFrequency / 1000.0f) 12680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("kHz"); 12780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 1284e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 1294e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1304e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum if (mSpectrumBandwidth > 0.0f) { 13180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum if (mSpectrumBandwidth > 1000000000.0f) { 13280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumBandwidth: ") 13380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumBandwidth / 1000000000.0f) 13480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("GHz"); 13580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else if (mSpectrumBandwidth > 1000000.0f) { 13680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumBandwidth: ") 13780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumBandwidth / 1000000.0f) 13880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("MHz"); 13980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } else { 14080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", SpectrumBandwidth: ") 14180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append(mSpectrumBandwidth / 1000.0f) 14280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum .append("kHz"); 14380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 1444e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 1454e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1464e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum if (mMaxTransmitPower != UNKNOWN_POWER) { 14780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum sb.append(", MaxTransmitPower: ").append(mMaxTransmitPower).append("dBm"); 1484e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 1494e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum 1504e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum return sb.toString(); 1514e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum } 15280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 15380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum @Override 15480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public boolean equals(Object obj) { 15580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum if (!(obj instanceof LowpanChannelInfo)) { 15680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return false; 15780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 15880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum LowpanChannelInfo rhs = (LowpanChannelInfo) obj; 15980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return Objects.equals(mName, rhs.mName) 16080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum && mIndex == rhs.mIndex 16180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum && mIsMaskedByRegulatoryDomain == rhs.mIsMaskedByRegulatoryDomain 16280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum && mSpectrumCenterFrequency == rhs.mSpectrumCenterFrequency 16380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum && mSpectrumBandwidth == rhs.mSpectrumBandwidth 16480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum && mMaxTransmitPower == rhs.mMaxTransmitPower; 16580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 16680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 16780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum @Override 16880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public int hashCode() { 16980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return Objects.hash( 17080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mName, 17180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mIndex, 17280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mIsMaskedByRegulatoryDomain, 17380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mSpectrumCenterFrequency, 17480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mSpectrumBandwidth, 17580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum mMaxTransmitPower); 17680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 17780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 17880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum /** Implement the Parcelable interface. */ 17980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum @Override 18080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public int describeContents() { 18180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return 0; 18280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 18380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 18480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum /** Implement the Parcelable interface. */ 18580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum @Override 18680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public void writeToParcel(Parcel dest, int flags) { 18780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeInt(mIndex); 18880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeString(mName); 18980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeFloat(mSpectrumCenterFrequency); 19080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeFloat(mSpectrumBandwidth); 19180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeInt(mMaxTransmitPower); 19280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum dest.writeBoolean(mIsMaskedByRegulatoryDomain); 19380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 19480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 19580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum /** Implement the Parcelable interface. */ 19680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public static final Creator<LowpanChannelInfo> CREATOR = 19780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum new Creator<LowpanChannelInfo>() { 19880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 19980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public LowpanChannelInfo createFromParcel(Parcel in) { 20080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum LowpanChannelInfo info = new LowpanChannelInfo(); 20180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 20280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mIndex = in.readInt(); 20380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mName = in.readString(); 20480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumCenterFrequency = in.readFloat(); 20580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mSpectrumBandwidth = in.readFloat(); 20680aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mMaxTransmitPower = in.readInt(); 20780aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum info.mIsMaskedByRegulatoryDomain = in.readBoolean(); 20880aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 20980aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return info; 21080aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 21180aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum 21280aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum public LowpanChannelInfo[] newArray(int size) { 21380aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum return new LowpanChannelInfo[size]; 21480aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum } 21580aca1e3b3d3f7afd64a7f18cb2f3ae556f46ccfRobert Quattlebaum }; 2164e0c2195dd999859f4e79cec1884326fb52a5916Robert Quattlebaum} 217