1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "softbus_network_utils.h" 17 18 #define FREQUENCY_2G_FIRST 2412 19 #define FREQUENCY_2G_LAST 2472 20 #define FREQUENCY_5G_FIRST 5170 21 #define FREQUENCY_5G_LAST 5825 22 23 #define CHANNEL_2G_FIRST 1 24 #define CHANNEL_2G_LAST 13 25 #define CHANNEL_5G_FIRST 34 26 #define CHANNEL_5G_LAST 165 27 28 #define FREQUENCY_STEP 5 29 #define FREQUENCY_INVALID (-1) 30 #define CHANNEL_INVALID (-1) 31 SoftBusChannelToFrequency(int channel)32int SoftBusChannelToFrequency(int channel) 33 { 34 if (channel >= CHANNEL_2G_FIRST && channel <= CHANNEL_2G_LAST) { 35 return (channel - CHANNEL_2G_FIRST) * FREQUENCY_STEP + FREQUENCY_2G_FIRST; 36 } else if (channel >= CHANNEL_5G_FIRST && channel <= CHANNEL_5G_LAST) { 37 return (channel - CHANNEL_5G_FIRST) * FREQUENCY_STEP + FREQUENCY_5G_FIRST; 38 } else { 39 return FREQUENCY_INVALID; 40 } 41 } 42 SoftBusFrequencyToChannel(int frequency)43int SoftBusFrequencyToChannel(int frequency) 44 { 45 if (frequency >= FREQUENCY_2G_FIRST && frequency <= FREQUENCY_2G_LAST) { 46 return (frequency - FREQUENCY_2G_FIRST) / FREQUENCY_STEP + CHANNEL_2G_FIRST; 47 } else if (frequency >= FREQUENCY_5G_FIRST && frequency <= FREQUENCY_5G_LAST) { 48 return (frequency - FREQUENCY_5G_FIRST) / FREQUENCY_STEP + CHANNEL_5G_FIRST; 49 } else { 50 return CHANNEL_INVALID; 51 } 52 } 53 SoftBusIs5GBand(int frequency)54bool SoftBusIs5GBand(int frequency) 55 { 56 if (frequency >= FREQUENCY_5G_FIRST && frequency <= FREQUENCY_5G_LAST) { 57 return true; 58 } 59 return false; 60 } 61 SoftBusIs2GBand(int frequency)62bool SoftBusIs2GBand(int frequency) 63 { 64 if (frequency >= FREQUENCY_2G_FIRST && frequency <= FREQUENCY_2G_LAST) { 65 return true; 66 } 67 return false; 68 } 69