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 GetScanInfos(napi_env env, napi_callback_info info); 30 napi_value AddDeviceConfig(napi_env env, napi_callback_info info); 31 napi_value AddUntrustedConfig(napi_env env, napi_callback_info info); 32 napi_value RemoveUntrustedConfig(napi_env env, napi_callback_info info); 33 napi_value ConnectToNetwork(napi_env env, napi_callback_info info); 34 napi_value ConnectToDevice(napi_env env, napi_callback_info info); 35 napi_value IsConnected(napi_env env, napi_callback_info info); 36 napi_value Disconnect(napi_env env, napi_callback_info info); 37 napi_value GetSignalLevel(napi_env env, napi_callback_info info); 38 napi_value ReConnect(napi_env env, napi_callback_info info); 39 napi_value ReAssociate(napi_env env, napi_callback_info info); 40 napi_value GetIpInfo(napi_env env, napi_callback_info info); 41 napi_value GetLinkedInfo(napi_env env, napi_callback_info info); 42 napi_value RemoveDevice(napi_env env, napi_callback_info info); 43 napi_value RemoveAllNetwork(napi_env env, napi_callback_info info); 44 napi_value DisableNetwork(napi_env env, napi_callback_info info); 45 napi_value GetCountryCode(napi_env env, napi_callback_info info); 46 napi_value GetDeviceConfigs(napi_env env, napi_callback_info info); 47 napi_value UpdateNetwork(napi_env env, napi_callback_info info); 48 napi_value GetSupportedFeatures(napi_env env, napi_callback_info info); 49 napi_value IsFeatureSupported(napi_env env, napi_callback_info info); 50 napi_value GetDeviceMacAddress(napi_env env, napi_callback_info info); 51 52 enum class ConnStateJs { 53 SCANNING, /* The device is searching for an available AP */ 54 CONNECTING, /* The Wi-Fi connection is being set up */ 55 AUTHENTICATING, /* The Wi-Fi connection is being authenticated */ 56 OBTAINING_IPADDR, /* The IP address of the Wi-Fi connection is being obtained */ 57 CONNECTED, /* The Wi-Fi connection has been set up */ 58 DISCONNECTING, /* The Wi-Fi connection is being torn down */ 59 DISCONNECTED, /* The Wi-Fi connection has been torn down */ 60 UNKNOWN /* Failed to set up the Wi-Fi connection */ 61 }; 62 63 class ScanInfoAsyncContext : public AsyncContext { 64 public: 65 std::vector<WifiScanInfo> vecScanInfos; 66 67 ScanInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)68 AsyncContext(env, work, deferred){} 69 70 ScanInfoAsyncContext() = delete; 71 ~ScanInfoAsyncContext()72 virtual ~ScanInfoAsyncContext(){} 73 }; 74 75 class AddDeviceConfigContext : public AsyncContext { 76 public: 77 WifiDeviceConfig *config; 78 int addResult; 79 80 AddDeviceConfigContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)81 AsyncContext(env, work, deferred){ 82 config = nullptr; 83 addResult = -1; 84 } 85 86 AddDeviceConfigContext() = delete; 87 ~AddDeviceConfigContext()88 virtual ~AddDeviceConfigContext(){} 89 }; 90 91 class LinkedInfoAsyncContext : public AsyncContext { 92 public: 93 WifiLinkedInfo linkedInfo; 94 95 LinkedInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)96 AsyncContext(env, work, deferred){} 97 98 LinkedInfoAsyncContext() = delete; 99 ~LinkedInfoAsyncContext()100 virtual ~LinkedInfoAsyncContext(){} 101 }; 102 } // namespace Wifi 103 } // namespace OHOS 104 105 #endif 106