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_MOCK_WIFI_STA_HAL_INTERFACE_H 17 #define OHOS_MOCK_WIFI_STA_HAL_INTERFACE_H 18 #include <string> 19 #include <vector> 20 #include "wifi_event_callback.h" 21 #include "wifi_native_struct.h" 22 #include "wifi_error_no.h" 23 #include "wifi_msg.h" 24 #include "inter_scan_info.h" 25 26 namespace OHOS { 27 namespace Wifi { 28 class MockWifiStaHalInterface { 29 public: 30 static MockWifiStaHalInterface &GetInstance(void); 31 void SetRetResult(WifiErrorNo retResult); 32 WifiErrorNo GetRetResult(); 33 void SetStaCapabilities(WifiErrorNo retResult); 34 void SetChipsetFeatureCapability(int chipsetFeatureCapability); 35 private: 36 MockWifiStaHalInterface(); 37 WifiErrorNo mRetResult; 38 WifiErrorNo mGetStaCapabilities; 39 int chipsetFeatureCapability_; 40 }; 41 42 class WifiStaHalInterface { 43 public: 44 static WifiStaHalInterface &GetInstance(void); 45 WifiErrorNo StartWifi(const std::string &ifaceName = "wlan0"); 46 WifiErrorNo StopWifi(void); 47 WifiErrorNo Connect(int networkId); 48 WifiErrorNo Reconnect(void); 49 WifiErrorNo Reassociate(void); 50 WifiErrorNo Disconnect(void); 51 WifiErrorNo GetStaCapabilities(unsigned int &capabilities); 52 WifiErrorNo GetStaDeviceMacAddress(std::string &mac); 53 WifiErrorNo SetWifiCountryCode(const std::string &ifaceName, const std::string &code); 54 WifiErrorNo GetSupportFrequencies(const std::string &ifaceName, int band, std::vector<int> &frequencies); 55 WifiErrorNo SetConnectMacAddr(const std::string &ifaceName, const std::string &mac); 56 WifiErrorNo SetScanMacAddress(const std::string &mac); 57 WifiErrorNo DisconnectLastRoamingBssid(const std::string &mac); 58 WifiErrorNo GetSupportFeature(long &feature); 59 WifiErrorNo SetTxPower(const std::string &ifaceName, int power); 60 WifiErrorNo Scan(const std::string &ifaceName, const WifiHalScanParam &scanParam); 61 WifiErrorNo QueryScanInfos(const std::string &ifaceName, std::vector<InterScanInfo> &scanInfos); 62 WifiErrorNo StartPnoScan(const std::string &ifaceName, const WifiHalPnoScanParam &scanParam); 63 WifiErrorNo StopPnoScan(const std::string &ifaceName); 64 WifiErrorNo RemoveDevice(int networkId); 65 WifiErrorNo ClearDeviceConfig(void) const; 66 WifiErrorNo GetNextNetworkId(int &networkId); 67 WifiErrorNo EnableNetwork(int networkId); 68 WifiErrorNo DisableNetwork(int networkId); 69 WifiErrorNo SetDeviceConfig(int networkId, const WifiHalDeviceConfig &config); 70 WifiErrorNo GetDeviceConfig(WifiHalGetDeviceConfig &config); 71 WifiErrorNo SaveDeviceConfig(void); 72 WifiErrorNo RegisterStaEventCallback(const WifiEventCallback &callback); 73 WifiErrorNo StartWpsPbcMode(const WifiHalWpsConfig &config); 74 WifiErrorNo StartWpsPinMode(const WifiHalWpsConfig &config, int &pinCode); 75 WifiErrorNo StopWps(void); 76 WifiErrorNo GetRoamingCapabilities(WifiHalRoamCapability &capability); 77 WifiErrorNo SetBssid(int networkId, const std::string &bssid); 78 WifiErrorNo SetRoamConfig(const WifiHalRoamConfig &config); 79 WifiErrorNo WpaAutoConnect(int enable); 80 WifiErrorNo WpaBlocklistClear(); 81 WifiErrorNo GetNetworkList(std::vector<WifiHalWpaNetworkInfo> &networkList); 82 WifiErrorNo GetConnectSignalInfo(const std::string &ifaceName, const std::string &endBssid, 83 WifiHalWpaSignalInfo &info); 84 WifiErrorNo SetPmMode(const std::string &ifaceName, int frequency, int mode); 85 WifiErrorNo SetDpiMarkRule(const std::string &ifaceName, int uid, int protocol, int enable); 86 WifiErrorNo ShellCmd(const std::string &ifName, const std::string &cmd); 87 WifiErrorNo GetPskPassphrase(const std::string &ifName, std::string &psk); 88 WifiErrorNo GetChipsetCategory(const std::string &ifaceName, int& chipsetCategory); 89 WifiErrorNo GetChipsetWifiFeatrureCapability(const std::string &ifaceName, int& chipsetFeatrureCapability); 90 WifiErrorNo SetNetworkInterfaceUpDown(const std::string &ifaceName, bool upDown); 91 const WifiEventCallback &GetCallbackInst(void) const; 92 const std::function<void(int)> &GetDeathCallbackInst(void) const; 93 WifiErrorNo RegisterNativeProcessCallback(const std::function<void(int)> &callback); 94 public: 95 WifiHalWpaSignalInfo mInfo; 96 private: 97 WifiEventCallback mStaCallback; 98 std::function<void(int)> mDeathCallback; 99 WifiHalRoamCapability mCapability; 100 }; 101 } // namespace Wifi 102 } // namespace OHOS 103 104 #endif