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 /** 17 * @addtogroup WLAN 18 * @{ 19 * 20 * @brief Provides cross-OS migration, component adaptation, and modular assembly and compilation. 21 * 22 * Based on the unified APIs provided by the WLAN module, developers of the Hardware Driver Interface 23 * (HDI) are capable of creating, disabling, scanning for, and connecting to WLAN hotspots, managing WLAN chips, 24 * network devices, and power, and applying for, releasing, and moving network data buffers. 25 * 26 * @since 1.0 27 * @version 1.0 28 */ 29 30 /** 31 * @file wifi_hal_ap_feature.h 32 * 33 * @brief Declares WLAN access point (AP) features. 34 * 35 * @since 1.0 36 * @version 1.0 37 */ 38 39 #ifndef WIFI_HAL_AP_FEATURE_H 40 #define WIFI_HAL_AP_FEATURE_H 41 42 #include "wifi_hal_base_feature.h" 43 44 #ifdef __cplusplus 45 #if __cplusplus 46 extern "C" { 47 #endif 48 #endif 49 50 /** 51 * @brief Describes an STA connected to an AP. 52 * 53 * @since 1.0 54 * @version 1.0 55 */ 56 struct StaInfo { 57 unsigned char mac[WIFI_MAC_ADDR_LENGTH]; /**< MAC address of the STA */ 58 }; 59 60 /** 61 * @brief Inherits the basic features of {@link IWiFiBaseFeature} and additionally provides the features of 62 * obtaining information about all the STAs connected to an AP and setting the country/region code. 63 * 64 * @since 1.0 65 * @version 1.0 66 */ 67 struct IWiFiAp { 68 struct IWiFiBaseFeature baseFeature; /**< Basic features of {@link IWiFiBaseFeature} */ 69 70 /** 71 * @brief Obtains information (MAC addresses only in the current version) about all the connected STAs. 72 * 73 * @param apFeature Indicates the pointer to the AP feature, as described in {@link IWiFiAp}. 74 * @param staInfo Indicates the pointer to the information about the STAs connected to the AP. 75 * @param count Indicates the number of elements in the staInfo structure array. 76 * @param num Indicates the pointer to the number of connected STAs. 77 * 78 * @return Returns <b>0</b> if the information is obtained; returns a negative value otherwise. 79 * 80 * @since 1.0 81 * @version 1.0 82 */ 83 int32_t (*getAssociatedStas)(const struct IWiFiAp *apFeature, struct StaInfo *staInfo, 84 uint32_t count, uint32_t *num); 85 86 /** 87 * @brief Sets the country/region code. 88 * 89 * @param apFeature Indicates the pointer to the AP feature, as described in {@link IWiFiAp}. 90 * @param code Indicates the pointer to the country/region code to set. 91 * @param len Indicates the length of the country/region code. 92 * 93 * @return Returns <b>0</b> if the country/region code is set; returns a negative value otherwise. 94 * 95 * @since 1.0 96 * @version 1.0 97 */ 98 int32_t (*setCountryCode)(const struct IWiFiAp *apFeature, const char *code, uint32_t len); 99 100 /** 101 * @brief Obtain ap current bandwidth. 102 * 103 * @param ifName Indicates the NIC name. 104 * @param bandwidth ap current bandwidth, 1(20M), 2(40M), 4(80M), 8(160M). 105 * 106 * @return Returns <b>0</b> if the operation is successful. 107 * @return Returns a negative value if the operation fails. 108 * 109 * @since 4.1 110 * @version 1.2 111 */ 112 int32_t (*getApBandwidth)(const char *ifName, uint8_t *bandwidth); 113 }; 114 115 /** 116 * @brief Initializes a specified AP feature. This function is called during AP {@link FeatureType} creation. 117 * 118 * @param fe Indicates the double pointer to the AP feature. 119 * 120 * @return Returns <b>0</b> if the operation is successful; returns a negative value representing {@link HDF_STATUS} 121 * if the operation fails. 122 * 123 * @since 1.0 124 * @version 1.0 125 */ 126 int32_t InitApFeature(struct IWiFiAp **fe); 127 128 #ifdef __cplusplus 129 #if __cplusplus 130 } 131 #endif 132 #endif 133 134 #endif 135 /** @} */ 136