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 WIFI_NAPI_DEVICE_H_ 17 #define WIFI_NAPI_DEVICE_H_ 18 19 #include "wifi_napi_utils.h" 20 #include "wifi_device.h" 21 #include "wifi_scan.h" 22 23 namespace OHOS { 24 namespace Wifi { 25 napi_value EnableWifi(napi_env env, napi_callback_info info); 26 napi_value DisableWifi(napi_env env, napi_callback_info info); 27 napi_value IsWifiActive(napi_env env, napi_callback_info info); 28 napi_value Scan(napi_env env, napi_callback_info info); 29 napi_value StartScan(napi_env env, napi_callback_info info); 30 napi_value GetScanInfos(napi_env env, napi_callback_info info); 31 napi_value GetScanInfoResults(napi_env env, napi_callback_info info); 32 napi_value GetScanResults(napi_env env, napi_callback_info info); 33 napi_value GetScanInfoList(napi_env env, napi_callback_info info); 34 napi_value AddDeviceConfig(napi_env env, napi_callback_info info); 35 napi_value AddUntrustedConfig(napi_env env, napi_callback_info info); 36 napi_value RemoveUntrustedConfig(napi_env env, napi_callback_info info); 37 napi_value AddCandidateConfig(napi_env env, napi_callback_info info); 38 napi_value RemoveCandidateConfig(napi_env env, napi_callback_info info); 39 napi_value ConnectToCandidateConfig(napi_env env, napi_callback_info info); 40 napi_value GetCandidateConfigs(napi_env env, napi_callback_info info); 41 napi_value ConnectToNetwork(napi_env env, napi_callback_info info); 42 napi_value ConnectToDevice(napi_env env, napi_callback_info info); 43 napi_value IsConnected(napi_env env, napi_callback_info info); 44 napi_value Disconnect(napi_env env, napi_callback_info info); 45 napi_value GetSignalLevel(napi_env env, napi_callback_info info); 46 napi_value ReConnect(napi_env env, napi_callback_info info); 47 napi_value ReAssociate(napi_env env, napi_callback_info info); 48 napi_value GetIpInfo(napi_env env, napi_callback_info info); 49 napi_value GetIpv6Info(napi_env env, napi_callback_info info); 50 napi_value GetLinkedInfo(napi_env env, napi_callback_info info); 51 napi_value GetDisconnectedReason(napi_env env, napi_callback_info info); 52 napi_value IsMeteredHotspot(napi_env env, napi_callback_info info); 53 napi_value RemoveDevice(napi_env env, napi_callback_info info); 54 napi_value RemoveAllNetwork(napi_env env, napi_callback_info info); 55 napi_value DisableNetwork(napi_env env, napi_callback_info info); 56 napi_value GetCountryCode(napi_env env, napi_callback_info info); 57 napi_value GetDeviceConfigs(napi_env env, napi_callback_info info); 58 napi_value UpdateNetwork(napi_env env, napi_callback_info info); 59 napi_value GetSupportedFeatures(napi_env env, napi_callback_info info); 60 napi_value IsFeatureSupported(napi_env env, napi_callback_info info); 61 napi_value GetDeviceMacAddress(napi_env env, napi_callback_info info); 62 napi_value IsBandTypeSupported(napi_env env, napi_callback_info info); 63 napi_value Get5GHzChannelList(napi_env env, napi_callback_info info); 64 napi_value SetScanOnlyAvailable(napi_env env, napi_callback_info info); 65 napi_value GetScanOnlyAvailable(napi_env env, napi_callback_info info); 66 napi_value StartPortalCertification(napi_env env, napi_callback_info info); 67 napi_value GetWifiProtect(napi_env env, napi_callback_info info); 68 napi_value PutWifiProtect(napi_env env, napi_callback_info info); 69 napi_value FactoryReset(napi_env env, napi_callback_info info); 70 napi_value EnableHiLinkHandshake(napi_env env, napi_callback_info info); 71 napi_value EnableSemiWifi(napi_env env, napi_callback_info info); 72 napi_value GetWifiDetailState(napi_env env, napi_callback_info info); 73 74 class ScanInfoAsyncContext : public AsyncContext { 75 public: 76 std::vector<WifiScanInfo> vecScanInfos; 77 78 ScanInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : 79 AsyncContext(env, work, deferred){} 80 81 ScanInfoAsyncContext() = delete; 82 ~ScanInfoAsyncContext()83 virtual ~ScanInfoAsyncContext(){} 84 }; 85 86 class DeviceConfigContext : public AsyncContext { 87 public: 88 WifiDeviceConfig *config; 89 int networkId; 90 bool isCandidate; 91 92 DeviceConfigContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : 93 AsyncContext(env, work, deferred) { 94 config = nullptr; 95 networkId = -1; 96 isCandidate = false; 97 } 98 99 DeviceConfigContext() = delete; 100 ~DeviceConfigContext()101 virtual ~DeviceConfigContext() {} 102 }; 103 104 class LinkedInfoAsyncContext : public AsyncContext { 105 public: 106 WifiLinkedInfo linkedInfo; 107 108 LinkedInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : 109 AsyncContext(env, work, deferred){} 110 111 LinkedInfoAsyncContext() = delete; 112 ~LinkedInfoAsyncContext()113 virtual ~LinkedInfoAsyncContext(){} 114 }; 115 } // namespace Wifi 116 } // namespace OHOS 117 118 #endif 119