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 #ifndef OHOS_WIFI_CHIP_HAL_INTERFACE_H 17 #define OHOS_WIFI_CHIP_HAL_INTERFACE_H 18 19 #include <string> 20 #include <vector> 21 #include "i_wifi_chip.h" 22 #include "i_wifi_struct.h" 23 #include "wifi_base_hal_interface.h" 24 #include "wifi_chip_event_callback.h" 25 26 namespace OHOS { 27 namespace Wifi { 28 class WifiChipHalInterface : public WifiBaseHalInterface { 29 public: 30 /** 31 * @Description Get the Instance object. 32 * 33 * @return WifiChipHalInterface& 34 */ 35 static WifiChipHalInterface &GetInstance(void); 36 37 /** 38 * @Description Obtains the chip object by ID. 39 * 40 * @param id 41 * @param chip 42 * @return WifiErrorNo 43 */ 44 WifiErrorNo GetWifiChipObject(int id, IWifiChip &chip); 45 46 /** 47 * @Description Obtains the Wi-Fi chip ID set. 48 * 49 * @param ids 50 * @return WifiErrorNo 51 */ 52 WifiErrorNo GetChipIds(std::vector<int> &ids); 53 54 /** 55 * @Description Obtains the chip ID. 56 * 57 * @param id 58 * @return WifiErrorNo 59 */ 60 WifiErrorNo GetUsedChipId(int &id); 61 62 /** 63 * @Description Obtains chip capabilities. 64 * 65 * @param capabilities 66 * @return WifiErrorNo 67 */ 68 WifiErrorNo GetChipCapabilities(int &capabilities); 69 70 /** 71 * @Description Obtains the joint mode supported by the chip, 72 * for example, sta+sta/sta+p2p/sta+ap/sta+nan/ap+nan. 73 * 74 * @param modes 75 * @return WifiErrorNo 76 */ 77 WifiErrorNo GetSupportedModes(std::vector<int> &modes); 78 79 /** 80 * @Description Configure the current joint mode of the chip. 81 * 82 * @param mode 83 * @return WifiErrorNo 84 */ 85 WifiErrorNo ConfigRunModes(int mode); 86 87 /** 88 * @Description Gets the current federation mode. 89 * 90 * @param mode 91 * @return WifiErrorNo 92 */ 93 WifiErrorNo GetCurrentMode(int &mode); 94 95 /** 96 * @Description Registering a Wi-Fi Chip Event. 97 * 98 * @param callback 99 * @return WifiErrorNo 100 */ 101 WifiErrorNo RegisterChipEventCallback(WifiChipEventCallback &callback); 102 103 /** 104 * @Description Requesting the debugging information of the firmware chip. 105 * 106 * @param debugInfo 107 * @return WifiErrorNo 108 */ 109 WifiErrorNo RequestFirmwareDebugInfo(std::string &debugInfo); 110 111 /** 112 * @Description is support DBDC 113 * 114 * @param isSupport 115 * @return WifiErrorNo 116 */ 117 WifiErrorNo IsSupportDbdc(bool &isSupport) const; 118 119 /** 120 * @Description is support CSA 121 * 122 * @param isSupport 123 * @return WifiErrorNo 124 */ 125 WifiErrorNo IsSupportCsa(bool &isSupport) const; 126 127 /** 128 * @Description is support radar detection 129 * 130 * @param isSupport 131 * @return WifiErrorNo 132 */ 133 WifiErrorNo IsSupportRadarDetect(bool &isSupport) const; 134 135 /** 136 * @Description is support DFS channel 137 * 138 * @param isSupport 139 * @return WifiErrorNo 140 */ 141 WifiErrorNo IsSupportDfsChannel(bool &isSupport) const; 142 143 /** 144 * @Description is support indoor channel 145 * 146 * @param isSupport 147 * @return WifiErrorNo 148 */ 149 WifiErrorNo IsSupportIndoorChannel(bool &isSupport) const; 150 }; 151 } // namespace Wifi 152 } // namespace OHOS 153 154 #endif