David Fletcher
/
cc3100_test
TI's CC3100 host driver and demo. Experimental and a work in progress.
simplelink/cc3100_wlan.h@0:bbe98578d4c0, 2014-11-17 (annotated)
- Committer:
- dflet
- Date:
- Mon Nov 17 19:38:34 2014 +0000
- Revision:
- 0:bbe98578d4c0
Experimental and a work in progress. Mostly left as TI C code. Does compile and run, but I have seen a few glitches. cc3100_sl_common.h will need your ssid and pass key at line 82.....
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dflet | 0:bbe98578d4c0 | 1 | /* |
dflet | 0:bbe98578d4c0 | 2 | * wlan.h - CC31xx/CC32xx Host Driver Implementation |
dflet | 0:bbe98578d4c0 | 3 | * |
dflet | 0:bbe98578d4c0 | 4 | * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ |
dflet | 0:bbe98578d4c0 | 5 | * |
dflet | 0:bbe98578d4c0 | 6 | * |
dflet | 0:bbe98578d4c0 | 7 | * Redistribution and use in source and binary forms, with or without |
dflet | 0:bbe98578d4c0 | 8 | * modification, are permitted provided that the following conditions |
dflet | 0:bbe98578d4c0 | 9 | * are met: |
dflet | 0:bbe98578d4c0 | 10 | * |
dflet | 0:bbe98578d4c0 | 11 | * Redistributions of source code must retain the above copyright |
dflet | 0:bbe98578d4c0 | 12 | * notice, this list of conditions and the following disclaimer. |
dflet | 0:bbe98578d4c0 | 13 | * |
dflet | 0:bbe98578d4c0 | 14 | * Redistributions in binary form must reproduce the above copyright |
dflet | 0:bbe98578d4c0 | 15 | * notice, this list of conditions and the following disclaimer in the |
dflet | 0:bbe98578d4c0 | 16 | * documentation and/or other materials provided with the |
dflet | 0:bbe98578d4c0 | 17 | * distribution. |
dflet | 0:bbe98578d4c0 | 18 | * |
dflet | 0:bbe98578d4c0 | 19 | * Neither the name of Texas Instruments Incorporated nor the names of |
dflet | 0:bbe98578d4c0 | 20 | * its contributors may be used to endorse or promote products derived |
dflet | 0:bbe98578d4c0 | 21 | * from this software without specific prior written permission. |
dflet | 0:bbe98578d4c0 | 22 | * |
dflet | 0:bbe98578d4c0 | 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
dflet | 0:bbe98578d4c0 | 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
dflet | 0:bbe98578d4c0 | 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
dflet | 0:bbe98578d4c0 | 26 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
dflet | 0:bbe98578d4c0 | 27 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
dflet | 0:bbe98578d4c0 | 28 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
dflet | 0:bbe98578d4c0 | 29 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
dflet | 0:bbe98578d4c0 | 30 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
dflet | 0:bbe98578d4c0 | 31 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
dflet | 0:bbe98578d4c0 | 32 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
dflet | 0:bbe98578d4c0 | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
dflet | 0:bbe98578d4c0 | 34 | * |
dflet | 0:bbe98578d4c0 | 35 | */ |
dflet | 0:bbe98578d4c0 | 36 | |
dflet | 0:bbe98578d4c0 | 37 | #ifndef __WLAN_H__ |
dflet | 0:bbe98578d4c0 | 38 | #define __WLAN_H__ |
dflet | 0:bbe98578d4c0 | 39 | |
dflet | 0:bbe98578d4c0 | 40 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 41 | /* Include files */ |
dflet | 0:bbe98578d4c0 | 42 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 43 | #include "cc3100_simplelink.h" |
dflet | 0:bbe98578d4c0 | 44 | |
dflet | 0:bbe98578d4c0 | 45 | |
dflet | 0:bbe98578d4c0 | 46 | #ifdef __cplusplus |
dflet | 0:bbe98578d4c0 | 47 | extern "C" { |
dflet | 0:bbe98578d4c0 | 48 | #endif |
dflet | 0:bbe98578d4c0 | 49 | |
dflet | 0:bbe98578d4c0 | 50 | |
dflet | 0:bbe98578d4c0 | 51 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 52 | /* Macro declarations */ |
dflet | 0:bbe98578d4c0 | 53 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 54 | |
dflet | 0:bbe98578d4c0 | 55 | /*! |
dflet | 0:bbe98578d4c0 | 56 | |
dflet | 0:bbe98578d4c0 | 57 | \addtogroup wlan |
dflet | 0:bbe98578d4c0 | 58 | @{ |
dflet | 0:bbe98578d4c0 | 59 | |
dflet | 0:bbe98578d4c0 | 60 | */ |
dflet | 0:bbe98578d4c0 | 61 | |
dflet | 0:bbe98578d4c0 | 62 | #define SL_BSSID_LENGTH (6) |
dflet | 0:bbe98578d4c0 | 63 | #define MAXIMAL_SSID_LENGTH (32) |
dflet | 0:bbe98578d4c0 | 64 | |
dflet | 0:bbe98578d4c0 | 65 | #define NUM_OF_RATE_INDEXES (20) |
dflet | 0:bbe98578d4c0 | 66 | #define SIZE_OF_RSSI_HISTOGRAM (6) |
dflet | 0:bbe98578d4c0 | 67 | |
dflet | 0:bbe98578d4c0 | 68 | /* WLAN Disconnect Reason Codes */ |
dflet | 0:bbe98578d4c0 | 69 | #define SL_DISCONNECT_RESERVED_0 (0) |
dflet | 0:bbe98578d4c0 | 70 | #define SL_DISCONNECT_UNSPECIFIED_REASON (1) |
dflet | 0:bbe98578d4c0 | 71 | #define SL_PREVIOUS_AUTHENTICATION_NO_LONGER_VALID (2) |
dflet | 0:bbe98578d4c0 | 72 | #define SL_DEAUTHENTICATED_BECAUSE_SENDING_STATION_IS_LEAVING (3) |
dflet | 0:bbe98578d4c0 | 73 | #define SL_DISASSOCIATED_DUE_TO_INACTIVITY (4) |
dflet | 0:bbe98578d4c0 | 74 | #define SL_DISASSOCIATED_BECAUSE_AP_IS_UNABLE_TO_HANDLE_ALL_CURRENTLY_ASSOCIATED_STATIONS (5) |
dflet | 0:bbe98578d4c0 | 75 | #define SL_CLASS_2_FRAME_RECEIVED_FROM_NONAUTHENTICATED_STATION (6) |
dflet | 0:bbe98578d4c0 | 76 | #define SL_CLASS_3_FRAME_RECEIVED_FROM_NONASSOCIATED_STATION (7) |
dflet | 0:bbe98578d4c0 | 77 | #define SL_DISASSOCIATED_BECAUSE_SENDING_STATION_IS_LEAVING_BSS (8) |
dflet | 0:bbe98578d4c0 | 78 | #define SL_STATION_REQUESTING_ASSOCIATION_IS_NOT_AUTHENTICATED_WITH_RESPONDING_STATION (9) |
dflet | 0:bbe98578d4c0 | 79 | #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_POWER_CAPABILITY_ELEMENT_IS_UNACCEPTABLE (10) |
dflet | 0:bbe98578d4c0 | 80 | #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_SUPPORTED_CHANNELS_ELEMENT_IS_UNACCEPTABLE (11) |
dflet | 0:bbe98578d4c0 | 81 | #define SL_DISCONNECT_RESERVED_1 (12) |
dflet | 0:bbe98578d4c0 | 82 | #define SL_INVALID_INFORMATION_ELEMENT (13) |
dflet | 0:bbe98578d4c0 | 83 | #define SL_MESSAGE_INTEGRITY_CODE_MIC_FAILURE (14) |
dflet | 0:bbe98578d4c0 | 84 | #define SL_FOUR_WAY_HANDSHAKE_TIMEOUT (15) |
dflet | 0:bbe98578d4c0 | 85 | #define SL_GROUP_KEY_HANDSHAKE_TIMEOUT (16) |
dflet | 0:bbe98578d4c0 | 86 | #define SL_RE_ASSOCIATION_REQUEST_PROBE_RESPONSE_BEACON_FRAME (17) |
dflet | 0:bbe98578d4c0 | 87 | #define SL_INVALID_GROUP_CIPHER (18) |
dflet | 0:bbe98578d4c0 | 88 | #define SL_INVALID_PAIRWISE_CIPHER (19) |
dflet | 0:bbe98578d4c0 | 89 | #define SL_INVALID_AKMP (20) |
dflet | 0:bbe98578d4c0 | 90 | #define SL_UNSUPPORTED_RSN_INFORMATION_ELEMENT_VERSION (21) |
dflet | 0:bbe98578d4c0 | 91 | #define SL_INVALID_RSN_INFORMATION_ELEMENT_CAPABILITIES (22) |
dflet | 0:bbe98578d4c0 | 92 | #define SL_IEEE_802_1X_AUTHENTICATION_FAILED (23) |
dflet | 0:bbe98578d4c0 | 93 | #define SL_CIPHER_SUITE_REJECTED_BECAUSE_OF_THE_SECURITY_POLICY (24) |
dflet | 0:bbe98578d4c0 | 94 | #define SL_DISCONNECT_RESERVED_2 (25) |
dflet | 0:bbe98578d4c0 | 95 | #define SL_DISCONNECT_RESERVED_3 (26) |
dflet | 0:bbe98578d4c0 | 96 | #define SL_DISCONNECT_RESERVED_4 (27) |
dflet | 0:bbe98578d4c0 | 97 | #define SL_DISCONNECT_RESERVED_5 (28) |
dflet | 0:bbe98578d4c0 | 98 | #define SL_DISCONNECT_RESERVED_6 (29) |
dflet | 0:bbe98578d4c0 | 99 | #define SL_DISCONNECT_RESERVED_7 (30) |
dflet | 0:bbe98578d4c0 | 100 | #define SL_DISCONNECT_RESERVED_8 (31) |
dflet | 0:bbe98578d4c0 | 101 | #define SL_DISASSOCIATED_FOR_UNSPECIFIED_QOS_RELATED_REASON (32) |
dflet | 0:bbe98578d4c0 | 102 | #define SL_DISASSOCIATED_BECAUSE_QAP_LACKS_SUFFICIENT_BANDWIDTH_FOR_THIS_QSTA (33) |
dflet | 0:bbe98578d4c0 | 103 | #define SL_DISASSOCIATED_BECAUSE_EXCESSIVE_NUMBER_OF_FRAMES_NEED_TO_BE_ACKNOWLEDGED (34) |
dflet | 0:bbe98578d4c0 | 104 | #define SL_DISASSOCIATED_BECAUSE_QSTA_IS_TRANSMITTING_OUTSIDE_THE_LIMITS_OF_ITS_TXOPS (35) |
dflet | 0:bbe98578d4c0 | 105 | #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_IS_LEAVING_THE_QBSS (36) |
dflet | 0:bbe98578d4c0 | 106 | #define SL_REQUESTED_FROM_PEER_QSTA_AS_IT_DOES_NO_WANT_TO_USE_THE_MECHANISM (37) |
dflet | 0:bbe98578d4c0 | 107 | #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_RECEIVED_FRAMES_SETUP_IS_REQUIRED (38) |
dflet | 0:bbe98578d4c0 | 108 | #define SL_REQUESTED_FROM_PEER_QSTA_DUE_TO_TIMEOUT (39) |
dflet | 0:bbe98578d4c0 | 109 | #define SL_PEER_QSTA_DOES_NOT_SUPPORT_THE_REQUESTED_CIPHER_SUITE (40) |
dflet | 0:bbe98578d4c0 | 110 | #define SL_CISCO_DEFINED (98) |
dflet | 0:bbe98578d4c0 | 111 | #define SL_CISCO_DEFINED_1 (99) |
dflet | 0:bbe98578d4c0 | 112 | #define SL_ROAMING_TRIGGER_NONE (100) |
dflet | 0:bbe98578d4c0 | 113 | #define SL_ROAMING_TRIGGER_LOW_QUALITY_FOR_BG_SCAN (101) |
dflet | 0:bbe98578d4c0 | 114 | #define SL_ROAMING_TRIGGER_HIGH_QUALITY_FOR_BG_SCAN (102) |
dflet | 0:bbe98578d4c0 | 115 | #define SL_ROAMING_TRIGGER_NORMAL_QUALITY_FOR_BG_SCAN (103) |
dflet | 0:bbe98578d4c0 | 116 | #define SL_ROAMING_TRIGGER_LOW_TX_RATE (104) |
dflet | 0:bbe98578d4c0 | 117 | #define SL_ROAMING_TRIGGER_LOW_SNR (105) |
dflet | 0:bbe98578d4c0 | 118 | #define SL_ROAMING_TRIGGER_LOW_QUALITY (106) |
dflet | 0:bbe98578d4c0 | 119 | #define SL_ROAMING_TRIGGER_TSPEC_REJECTED (107) |
dflet | 0:bbe98578d4c0 | 120 | #define SL_ROAMING_TRIGGER_MAX_TX_RETRIES (108) |
dflet | 0:bbe98578d4c0 | 121 | #define SL_ROAMING_TRIGGER_BSS_LOSS (109) |
dflet | 0:bbe98578d4c0 | 122 | #define SL_ROAMING_TRIGGER_BSS_LOSS_DUE_TO_MAX_TX_RETRY (110) |
dflet | 0:bbe98578d4c0 | 123 | #define SL_ROAMING_TRIGGER_SWITCH_CHANNEL (111) |
dflet | 0:bbe98578d4c0 | 124 | #define SL_ROAMING_TRIGGER_AP_DISCONNECT (112) |
dflet | 0:bbe98578d4c0 | 125 | #define SL_ROAMING_TRIGGER_SECURITY_ATTACK (113) |
dflet | 0:bbe98578d4c0 | 126 | #define SL_ROAMING_TRIGGER_MAX (114) |
dflet | 0:bbe98578d4c0 | 127 | #define SL_USER_INITIATED_DISCONNECTION (200) |
dflet | 0:bbe98578d4c0 | 128 | |
dflet | 0:bbe98578d4c0 | 129 | /* Wlan error codes */ |
dflet | 0:bbe98578d4c0 | 130 | #define SL_ERROR_KEY_ERROR (-3) |
dflet | 0:bbe98578d4c0 | 131 | #define SL_ERROR_INVALID_ROLE (-71) |
dflet | 0:bbe98578d4c0 | 132 | #define SL_ERROR_INVALID_SECURITY_TYPE (-84) |
dflet | 0:bbe98578d4c0 | 133 | #define SL_ERROR_PASSPHRASE_TOO_LONG (-85) |
dflet | 0:bbe98578d4c0 | 134 | #define SL_ERROR_WPS_NO_PIN_OR_WRONG_PIN_LEN (-87) |
dflet | 0:bbe98578d4c0 | 135 | #define SL_ERROR_EAP_WRONG_METHOD (-88) |
dflet | 0:bbe98578d4c0 | 136 | #define SL_ERROR_PASSWORD_ERROR (-89) |
dflet | 0:bbe98578d4c0 | 137 | #define SL_ERROR_EAP_ANONYMOUS_LEN_ERROR (-90) |
dflet | 0:bbe98578d4c0 | 138 | #define SL_ERROR_SSID_LEN_ERROR (-91) |
dflet | 0:bbe98578d4c0 | 139 | #define SL_ERROR_USER_ID_LEN_ERROR (-92) |
dflet | 0:bbe98578d4c0 | 140 | #define SL_ERROR_ILLEGAL_WEP_KEY_INDEX (-95) |
dflet | 0:bbe98578d4c0 | 141 | #define SL_ERROR_INVALID_DWELL_TIME_VALUES (-96) |
dflet | 0:bbe98578d4c0 | 142 | #define SL_ERROR_INVALID_POLICY_TYPE (-97) |
dflet | 0:bbe98578d4c0 | 143 | #define SL_ERROR_PM_POLICY_INVALID_OPTION (-98) |
dflet | 0:bbe98578d4c0 | 144 | #define SL_ERROR_PM_POLICY_INVALID_PARAMS (-99) |
dflet | 0:bbe98578d4c0 | 145 | #define SL_ERROR_WIFI_ALREADY_DISCONNECTED (-129) |
dflet | 0:bbe98578d4c0 | 146 | #define SL_ERROR_WIFI_NOT_CONNECTED (-59) |
dflet | 0:bbe98578d4c0 | 147 | |
dflet | 0:bbe98578d4c0 | 148 | |
dflet | 0:bbe98578d4c0 | 149 | |
dflet | 0:bbe98578d4c0 | 150 | #define SL_SEC_TYPE_OPEN (0) |
dflet | 0:bbe98578d4c0 | 151 | #define SL_SEC_TYPE_WEP (1) |
dflet | 0:bbe98578d4c0 | 152 | #define SL_SEC_TYPE_WPA (2) /* deprecated */ |
dflet | 0:bbe98578d4c0 | 153 | #define SL_SEC_TYPE_WPA_WPA2 (2) |
dflet | 0:bbe98578d4c0 | 154 | #define SL_SEC_TYPE_WPS_PBC (3) |
dflet | 0:bbe98578d4c0 | 155 | #define SL_SEC_TYPE_WPS_PIN (4) |
dflet | 0:bbe98578d4c0 | 156 | #define SL_SEC_TYPE_WPA_ENT (5) |
dflet | 0:bbe98578d4c0 | 157 | #define SL_SEC_TYPE_P2P_PBC (6) |
dflet | 0:bbe98578d4c0 | 158 | #define SL_SEC_TYPE_P2P_PIN_KEYPAD (7) |
dflet | 0:bbe98578d4c0 | 159 | #define SL_SEC_TYPE_P2P_PIN_DISPLAY (8) |
dflet | 0:bbe98578d4c0 | 160 | #define SL_SEC_TYPE_P2P_PIN_AUTO (9) /* NOT Supported yet */ |
dflet | 0:bbe98578d4c0 | 161 | |
dflet | 0:bbe98578d4c0 | 162 | |
dflet | 0:bbe98578d4c0 | 163 | |
dflet | 0:bbe98578d4c0 | 164 | #define SL_SCAN_SEC_TYPE_OPEN (0) |
dflet | 0:bbe98578d4c0 | 165 | #define SL_SCAN_SEC_TYPE_WEP (1) |
dflet | 0:bbe98578d4c0 | 166 | #define SL_SCAN_SEC_TYPE_WPA (2) |
dflet | 0:bbe98578d4c0 | 167 | #define SL_SCAN_SEC_TYPE_WPA2 (3) |
dflet | 0:bbe98578d4c0 | 168 | |
dflet | 0:bbe98578d4c0 | 169 | |
dflet | 0:bbe98578d4c0 | 170 | |
dflet | 0:bbe98578d4c0 | 171 | #define TLS (0x1) |
dflet | 0:bbe98578d4c0 | 172 | #define MSCHAP (0x0) |
dflet | 0:bbe98578d4c0 | 173 | #define PSK (0x2) |
dflet | 0:bbe98578d4c0 | 174 | #define TTLS (0x10) |
dflet | 0:bbe98578d4c0 | 175 | #define PEAP0 (0x20) |
dflet | 0:bbe98578d4c0 | 176 | #define PEAP1 (0x40) |
dflet | 0:bbe98578d4c0 | 177 | #define FAST (0x80) |
dflet | 0:bbe98578d4c0 | 178 | |
dflet | 0:bbe98578d4c0 | 179 | #define FAST_AUTH_PROVISIONING (0x02) |
dflet | 0:bbe98578d4c0 | 180 | #define FAST_UNAUTH_PROVISIONING (0x01) |
dflet | 0:bbe98578d4c0 | 181 | #define FAST_NO_PROVISIONING (0x00) |
dflet | 0:bbe98578d4c0 | 182 | |
dflet | 0:bbe98578d4c0 | 183 | #define EAPMETHOD_PHASE2_SHIFT (8) |
dflet | 0:bbe98578d4c0 | 184 | #define EAPMETHOD_PAIRWISE_CIPHER_SHIFT (19) |
dflet | 0:bbe98578d4c0 | 185 | #define EAPMETHOD_GROUP_CIPHER_SHIFT (27) |
dflet | 0:bbe98578d4c0 | 186 | |
dflet | 0:bbe98578d4c0 | 187 | #define WPA_CIPHER_CCMP (0x1) |
dflet | 0:bbe98578d4c0 | 188 | #define WPA_CIPHER_TKIP (0x2) |
dflet | 0:bbe98578d4c0 | 189 | #define CC31XX_DEFAULT_CIPHER (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP) |
dflet | 0:bbe98578d4c0 | 190 | |
dflet | 0:bbe98578d4c0 | 191 | #define EAPMETHOD(phase1,phase2,pairwise_cipher,group_cipher) \ |
dflet | 0:bbe98578d4c0 | 192 | ((phase1) | \ |
dflet | 0:bbe98578d4c0 | 193 | ((phase2) << EAPMETHOD_PHASE2_SHIFT ) |\ |
dflet | 0:bbe98578d4c0 | 194 | ((_u32)(pairwise_cipher) << EAPMETHOD_PAIRWISE_CIPHER_SHIFT ) |\ |
dflet | 0:bbe98578d4c0 | 195 | ((_u32)(group_cipher) << EAPMETHOD_GROUP_CIPHER_SHIFT )) |
dflet | 0:bbe98578d4c0 | 196 | |
dflet | 0:bbe98578d4c0 | 197 | /* phase1 phase2 pairwise_cipher group_cipher */ |
dflet | 0:bbe98578d4c0 | 198 | #define SL_ENT_EAP_METHOD_TLS EAPMETHOD(TLS , 0 , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 199 | #define SL_ENT_EAP_METHOD_TTLS_TLS EAPMETHOD(TTLS , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 200 | #define SL_ENT_EAP_METHOD_TTLS_MSCHAPv2 EAPMETHOD(TTLS , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 201 | #define SL_ENT_EAP_METHOD_TTLS_PSK EAPMETHOD(TTLS , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 202 | #define SL_ENT_EAP_METHOD_PEAP0_TLS EAPMETHOD(PEAP0 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 203 | #define SL_ENT_EAP_METHOD_PEAP0_MSCHAPv2 EAPMETHOD(PEAP0 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 204 | #define SL_ENT_EAP_METHOD_PEAP0_PSK EAPMETHOD(PEAP0 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 205 | #define SL_ENT_EAP_METHOD_PEAP1_TLS EAPMETHOD(PEAP1 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 206 | #define SL_ENT_EAP_METHOD_PEAP1_MSCHAPv2 EAPMETHOD(PEAP1 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 207 | #define SL_ENT_EAP_METHOD_PEAP1_PSK EAPMETHOD(PEAP1 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 208 | #define SL_ENT_EAP_METHOD_FAST_AUTH_PROVISIONING EAPMETHOD(FAST , FAST_AUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 209 | #define SL_ENT_EAP_METHOD_FAST_UNAUTH_PROVISIONING EAPMETHOD(FAST , FAST_UNAUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 210 | #define SL_ENT_EAP_METHOD_FAST_NO_PROVISIONING EAPMETHOD(FAST , FAST_NO_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) |
dflet | 0:bbe98578d4c0 | 211 | |
dflet | 0:bbe98578d4c0 | 212 | #define SL_LONG_PREAMBLE (0) |
dflet | 0:bbe98578d4c0 | 213 | #define SL_SHORT_PREAMBLE (1) |
dflet | 0:bbe98578d4c0 | 214 | |
dflet | 0:bbe98578d4c0 | 215 | #define SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT (0) |
dflet | 0:bbe98578d4c0 | 216 | #define SL_RAW_RF_TX_PARAMS_RATE_SHIFT (6) |
dflet | 0:bbe98578d4c0 | 217 | #define SL_RAW_RF_TX_PARAMS_POWER_SHIFT (11) |
dflet | 0:bbe98578d4c0 | 218 | #define SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT (15) |
dflet | 0:bbe98578d4c0 | 219 | |
dflet | 0:bbe98578d4c0 | 220 | #define SL_RAW_RF_TX_PARAMS(chan,rate,power,preamble) \ |
dflet | 0:bbe98578d4c0 | 221 | ((chan << SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT) | \ |
dflet | 0:bbe98578d4c0 | 222 | (rate << SL_RAW_RF_TX_PARAMS_RATE_SHIFT) | \ |
dflet | 0:bbe98578d4c0 | 223 | (power << SL_RAW_RF_TX_PARAMS_POWER_SHIFT) | \ |
dflet | 0:bbe98578d4c0 | 224 | (preamble << SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT)) |
dflet | 0:bbe98578d4c0 | 225 | |
dflet | 0:bbe98578d4c0 | 226 | |
dflet | 0:bbe98578d4c0 | 227 | /* wlan config application IDs */ |
dflet | 0:bbe98578d4c0 | 228 | #define SL_WLAN_CFG_AP_ID (0) |
dflet | 0:bbe98578d4c0 | 229 | #define SL_WLAN_CFG_GENERAL_PARAM_ID (1) |
dflet | 0:bbe98578d4c0 | 230 | #define SL_WLAN_CFG_P2P_PARAM_ID (2) |
dflet | 0:bbe98578d4c0 | 231 | |
dflet | 0:bbe98578d4c0 | 232 | /* wlan AP Config set/get options */ |
dflet | 0:bbe98578d4c0 | 233 | #define WLAN_AP_OPT_SSID (0) |
dflet | 0:bbe98578d4c0 | 234 | #define WLAN_AP_OPT_CHANNEL (3) |
dflet | 0:bbe98578d4c0 | 235 | #define WLAN_AP_OPT_HIDDEN_SSID (4) |
dflet | 0:bbe98578d4c0 | 236 | #define WLAN_AP_OPT_SECURITY_TYPE (6) |
dflet | 0:bbe98578d4c0 | 237 | #define WLAN_AP_OPT_PASSWORD (7) |
dflet | 0:bbe98578d4c0 | 238 | #define WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE (9) |
dflet | 0:bbe98578d4c0 | 239 | #define WLAN_GENERAL_PARAM_OPT_STA_TX_POWER (10) |
dflet | 0:bbe98578d4c0 | 240 | #define WLAN_GENERAL_PARAM_OPT_AP_TX_POWER (11) |
dflet | 0:bbe98578d4c0 | 241 | |
dflet | 0:bbe98578d4c0 | 242 | #define WLAN_P2P_OPT_DEV_NAME (12) |
dflet | 0:bbe98578d4c0 | 243 | #define WLAN_P2P_OPT_DEV_TYPE (13) |
dflet | 0:bbe98578d4c0 | 244 | #define WLAN_P2P_OPT_CHANNEL_N_REGS (14) |
dflet | 0:bbe98578d4c0 | 245 | #define WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT (16) |
dflet | 0:bbe98578d4c0 | 246 | #define WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS (18) /* change the scan channels and RSSI threshold using this configuration option */ |
dflet | 0:bbe98578d4c0 | 247 | |
dflet | 0:bbe98578d4c0 | 248 | /* SmartConfig CIPHER options */ |
dflet | 0:bbe98578d4c0 | 249 | #define SMART_CONFIG_CIPHER_SFLASH (0) /* password is not delivered by the application. The Simple Manager should */ |
dflet | 0:bbe98578d4c0 | 250 | /* check if the keys are stored in the Flash. */ |
dflet | 0:bbe98578d4c0 | 251 | #define SMART_CONFIG_CIPHER_AES (1) /* AES (other types are not supported) */ |
dflet | 0:bbe98578d4c0 | 252 | #define SMART_CONFIG_CIPHER_NONE (0xFF) /* do not check in the flash */ |
dflet | 0:bbe98578d4c0 | 253 | |
dflet | 0:bbe98578d4c0 | 254 | |
dflet | 0:bbe98578d4c0 | 255 | #define SL_POLICY_CONNECTION (0x10) |
dflet | 0:bbe98578d4c0 | 256 | #define SL_POLICY_SCAN (0x20) |
dflet | 0:bbe98578d4c0 | 257 | #define SL_POLICY_PM (0x30) |
dflet | 0:bbe98578d4c0 | 258 | #define SL_POLICY_P2P (0x40) |
dflet | 0:bbe98578d4c0 | 259 | |
dflet | 0:bbe98578d4c0 | 260 | #define VAL_2_MASK(position,value) ((1 & (value))<<(position)) |
dflet | 0:bbe98578d4c0 | 261 | #define MASK_2_VAL(position,mask) (((1 << position) & (mask)) >> (position)) |
dflet | 0:bbe98578d4c0 | 262 | |
dflet | 0:bbe98578d4c0 | 263 | #define SL_CONNECTION_POLICY(Auto,Fast,Open,anyP2P,autoSmartConfig) (VAL_2_MASK(0,Auto) | VAL_2_MASK(1,Fast) | VAL_2_MASK(2,Open) | VAL_2_MASK(3,anyP2P) | VAL_2_MASK(4,autoSmartConfig)) |
dflet | 0:bbe98578d4c0 | 264 | #define SL_SCAN_POLICY_EN(policy) (MASK_2_VAL(0,policy)) |
dflet | 0:bbe98578d4c0 | 265 | #define SL_SCAN_POLICY(Enable) (VAL_2_MASK(0,Enable)) |
dflet | 0:bbe98578d4c0 | 266 | |
dflet | 0:bbe98578d4c0 | 267 | |
dflet | 0:bbe98578d4c0 | 268 | #define SL_NORMAL_POLICY (0) |
dflet | 0:bbe98578d4c0 | 269 | #define SL_LOW_LATENCY_POLICY (1) |
dflet | 0:bbe98578d4c0 | 270 | #define SL_LOW_POWER_POLICY (2) |
dflet | 0:bbe98578d4c0 | 271 | #define SL_ALWAYS_ON_POLICY (3) |
dflet | 0:bbe98578d4c0 | 272 | #define SL_LONG_SLEEP_INTERVAL_POLICY (4) |
dflet | 0:bbe98578d4c0 | 273 | |
dflet | 0:bbe98578d4c0 | 274 | #define SL_P2P_ROLE_NEGOTIATE (3) |
dflet | 0:bbe98578d4c0 | 275 | #define SL_P2P_ROLE_GROUP_OWNER (15) |
dflet | 0:bbe98578d4c0 | 276 | #define SL_P2P_ROLE_CLIENT (0) |
dflet | 0:bbe98578d4c0 | 277 | |
dflet | 0:bbe98578d4c0 | 278 | #define SL_P2P_NEG_INITIATOR_ACTIVE (0) |
dflet | 0:bbe98578d4c0 | 279 | #define SL_P2P_NEG_INITIATOR_PASSIVE (1) |
dflet | 0:bbe98578d4c0 | 280 | #define SL_P2P_NEG_INITIATOR_RAND_BACKOFF (2) |
dflet | 0:bbe98578d4c0 | 281 | |
dflet | 0:bbe98578d4c0 | 282 | #define POLICY_VAL_2_OPTIONS(position,mask,policy) ((mask & policy) << position ) |
dflet | 0:bbe98578d4c0 | 283 | |
dflet | 0:bbe98578d4c0 | 284 | #define SL_P2P_POLICY(p2pNegType,p2pNegInitiator) (POLICY_VAL_2_OPTIONS(0,0xF,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? SL_P2P_ROLE_GROUP_OWNER : p2pNegType)) | \ |
dflet | 0:bbe98578d4c0 | 285 | POLICY_VAL_2_OPTIONS(4,0x1,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? 1:0)) | \ |
dflet | 0:bbe98578d4c0 | 286 | POLICY_VAL_2_OPTIONS(5,0x3, p2pNegInitiator)) |
dflet | 0:bbe98578d4c0 | 287 | |
dflet | 0:bbe98578d4c0 | 288 | |
dflet | 0:bbe98578d4c0 | 289 | /* Info elements */ |
dflet | 0:bbe98578d4c0 | 290 | |
dflet | 0:bbe98578d4c0 | 291 | #define INFO_ELEMENT_DEFAULT_ID (0) /* 221 will be used */ |
dflet | 0:bbe98578d4c0 | 292 | |
dflet | 0:bbe98578d4c0 | 293 | /* info element size is up to 252 bytes (+ 3 bytes of OUI). */ |
dflet | 0:bbe98578d4c0 | 294 | #define INFO_ELEMENT_MAX_SIZE (252) |
dflet | 0:bbe98578d4c0 | 295 | |
dflet | 0:bbe98578d4c0 | 296 | /* For AP - the total length of all info elements is 300 bytes (for example - 4 info elements of 75 bytes each) */ |
dflet | 0:bbe98578d4c0 | 297 | #define INFO_ELEMENT_MAX_TOTAL_LENGTH_AP (300) |
dflet | 0:bbe98578d4c0 | 298 | /* For P2P - the total length of all info elements is 150 bytes (for example - 4 info elements of 40 bytes each) */ |
dflet | 0:bbe98578d4c0 | 299 | #define INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO (160) |
dflet | 0:bbe98578d4c0 | 300 | |
dflet | 0:bbe98578d4c0 | 301 | #define INFO_ELEMENT_AP_ROLE (0) |
dflet | 0:bbe98578d4c0 | 302 | #define INFO_ELEMENT_P2P_GO_ROLE (1) |
dflet | 0:bbe98578d4c0 | 303 | |
dflet | 0:bbe98578d4c0 | 304 | /* we support up to 4 info elements per Role. */ |
dflet | 0:bbe98578d4c0 | 305 | #define MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED (4) |
dflet | 0:bbe98578d4c0 | 306 | |
dflet | 0:bbe98578d4c0 | 307 | #define INFO_ELEMENT_DEFAULT_OUI_0 (0x08) |
dflet | 0:bbe98578d4c0 | 308 | #define INFO_ELEMENT_DEFAULT_OUI_1 (0x00) |
dflet | 0:bbe98578d4c0 | 309 | #define INFO_ELEMENT_DEFAULT_OUI_2 (0x28) |
dflet | 0:bbe98578d4c0 | 310 | |
dflet | 0:bbe98578d4c0 | 311 | #define INFO_ELEMENT_DEFAULT_OUI (0x000000) /* 08, 00, 28 will be used */ |
dflet | 0:bbe98578d4c0 | 312 | |
dflet | 0:bbe98578d4c0 | 313 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 314 | /* Structure/Enum declarations */ |
dflet | 0:bbe98578d4c0 | 315 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 316 | |
dflet | 0:bbe98578d4c0 | 317 | typedef enum |
dflet | 0:bbe98578d4c0 | 318 | { |
dflet | 0:bbe98578d4c0 | 319 | RATE_1M = 1, |
dflet | 0:bbe98578d4c0 | 320 | RATE_2M = 2, |
dflet | 0:bbe98578d4c0 | 321 | RATE_5_5M = 3, |
dflet | 0:bbe98578d4c0 | 322 | RATE_11M = 4, |
dflet | 0:bbe98578d4c0 | 323 | RATE_6M = 6, |
dflet | 0:bbe98578d4c0 | 324 | RATE_9M = 7, |
dflet | 0:bbe98578d4c0 | 325 | RATE_12M = 8, |
dflet | 0:bbe98578d4c0 | 326 | RATE_18M = 9, |
dflet | 0:bbe98578d4c0 | 327 | RATE_24M = 10, |
dflet | 0:bbe98578d4c0 | 328 | RATE_36M = 11, |
dflet | 0:bbe98578d4c0 | 329 | RATE_48M = 12, |
dflet | 0:bbe98578d4c0 | 330 | RATE_54M = 13, |
dflet | 0:bbe98578d4c0 | 331 | RATE_MCS_0 = 14, |
dflet | 0:bbe98578d4c0 | 332 | RATE_MCS_1 = 15, |
dflet | 0:bbe98578d4c0 | 333 | RATE_MCS_2 = 16, |
dflet | 0:bbe98578d4c0 | 334 | RATE_MCS_3 = 17, |
dflet | 0:bbe98578d4c0 | 335 | RATE_MCS_4 = 18, |
dflet | 0:bbe98578d4c0 | 336 | RATE_MCS_5 = 19, |
dflet | 0:bbe98578d4c0 | 337 | RATE_MCS_6 = 20, |
dflet | 0:bbe98578d4c0 | 338 | RATE_MCS_7 = 21, |
dflet | 0:bbe98578d4c0 | 339 | MAX_NUM_RATES = 0xFF |
dflet | 0:bbe98578d4c0 | 340 | }SlRateIndex_e; |
dflet | 0:bbe98578d4c0 | 341 | |
dflet | 0:bbe98578d4c0 | 342 | typedef enum { |
dflet | 0:bbe98578d4c0 | 343 | DEV_PW_DEFAULT=0, |
dflet | 0:bbe98578d4c0 | 344 | DEV_PW_PIN_KEYPAD=1, |
dflet | 0:bbe98578d4c0 | 345 | DEV_PW_PUSH_BUTTON=4, |
dflet | 0:bbe98578d4c0 | 346 | DEV_PW_PIN_DISPLAY=5 |
dflet | 0:bbe98578d4c0 | 347 | } sl_p2p_dev_password_method; |
dflet | 0:bbe98578d4c0 | 348 | |
dflet | 0:bbe98578d4c0 | 349 | |
dflet | 0:bbe98578d4c0 | 350 | typedef struct |
dflet | 0:bbe98578d4c0 | 351 | { |
dflet | 0:bbe98578d4c0 | 352 | _u32 status; |
dflet | 0:bbe98578d4c0 | 353 | _u32 ssid_len; |
dflet | 0:bbe98578d4c0 | 354 | _u8 ssid[32]; |
dflet | 0:bbe98578d4c0 | 355 | _u32 private_token_len; |
dflet | 0:bbe98578d4c0 | 356 | _u8 private_token[32]; |
dflet | 0:bbe98578d4c0 | 357 | }slSmartConfigStartAsyncResponse_t; |
dflet | 0:bbe98578d4c0 | 358 | |
dflet | 0:bbe98578d4c0 | 359 | typedef struct |
dflet | 0:bbe98578d4c0 | 360 | { |
dflet | 0:bbe98578d4c0 | 361 | _u16 status; |
dflet | 0:bbe98578d4c0 | 362 | _u16 padding; |
dflet | 0:bbe98578d4c0 | 363 | }slSmartConfigStopAsyncResponse_t; |
dflet | 0:bbe98578d4c0 | 364 | |
dflet | 0:bbe98578d4c0 | 365 | typedef struct |
dflet | 0:bbe98578d4c0 | 366 | { |
dflet | 0:bbe98578d4c0 | 367 | _u16 status; |
dflet | 0:bbe98578d4c0 | 368 | _u16 padding; |
dflet | 0:bbe98578d4c0 | 369 | }slWlanConnFailureAsyncResponse_t; |
dflet | 0:bbe98578d4c0 | 370 | |
dflet | 0:bbe98578d4c0 | 371 | typedef struct |
dflet | 0:bbe98578d4c0 | 372 | { |
dflet | 0:bbe98578d4c0 | 373 | _u8 connection_type;/* 0-STA,3-P2P_CL */ |
dflet | 0:bbe98578d4c0 | 374 | _u8 ssid_len; |
dflet | 0:bbe98578d4c0 | 375 | _u8 ssid_name[32]; |
dflet | 0:bbe98578d4c0 | 376 | _u8 go_peer_device_name_len; |
dflet | 0:bbe98578d4c0 | 377 | _u8 go_peer_device_name[32]; |
dflet | 0:bbe98578d4c0 | 378 | _u8 bssid[6]; |
dflet | 0:bbe98578d4c0 | 379 | _u8 reason_code; |
dflet | 0:bbe98578d4c0 | 380 | _u8 padding[2]; |
dflet | 0:bbe98578d4c0 | 381 | } slWlanConnectAsyncResponse_t; |
dflet | 0:bbe98578d4c0 | 382 | |
dflet | 0:bbe98578d4c0 | 383 | typedef struct |
dflet | 0:bbe98578d4c0 | 384 | { |
dflet | 0:bbe98578d4c0 | 385 | _u8 go_peer_device_name[32]; |
dflet | 0:bbe98578d4c0 | 386 | _u8 mac[6]; |
dflet | 0:bbe98578d4c0 | 387 | _u8 go_peer_device_name_len; |
dflet | 0:bbe98578d4c0 | 388 | _u8 wps_dev_password_id; |
dflet | 0:bbe98578d4c0 | 389 | _u8 own_ssid[32];/* relevant for event sta-connected only */ |
dflet | 0:bbe98578d4c0 | 390 | _u8 own_ssid_len;/* relevant for event sta-connected only */ |
dflet | 0:bbe98578d4c0 | 391 | _u8 padding[3]; |
dflet | 0:bbe98578d4c0 | 392 | }slPeerInfoAsyncResponse_t; |
dflet | 0:bbe98578d4c0 | 393 | |
dflet | 0:bbe98578d4c0 | 394 | |
dflet | 0:bbe98578d4c0 | 395 | typedef union |
dflet | 0:bbe98578d4c0 | 396 | { |
dflet | 0:bbe98578d4c0 | 397 | slSmartConfigStartAsyncResponse_t smartConfigStartResponse; /*SL_WLAN_SMART_CONFIG_COMPLETE_EVENT*/ |
dflet | 0:bbe98578d4c0 | 398 | slSmartConfigStopAsyncResponse_t smartConfigStopResponse; /*SL_WLAN_SMART_CONFIG_STOP_EVENT */ |
dflet | 0:bbe98578d4c0 | 399 | slPeerInfoAsyncResponse_t APModeStaConnected; /* SL_WLAN_STA_CONNECTED_EVENT - relevant only in AP mode - holds information regarding a new STA connection */ |
dflet | 0:bbe98578d4c0 | 400 | slPeerInfoAsyncResponse_t APModestaDisconnected; /* SL_WLAN_STA_DISCONNECTED_EVENT - relevant only in AP mode - holds information regarding a STA disconnection */ |
dflet | 0:bbe98578d4c0 | 401 | slWlanConnectAsyncResponse_t STAandP2PModeWlanConnected; /* SL_WLAN_CONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a new connection */ |
dflet | 0:bbe98578d4c0 | 402 | slWlanConnectAsyncResponse_t STAandP2PModeDisconnected; /* SL_WLAN_DISCONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a disconnection */ |
dflet | 0:bbe98578d4c0 | 403 | slPeerInfoAsyncResponse_t P2PModeDevFound; /* SL_WLAN_P2P_DEV_FOUND_EVENT - relevant only in P2P mode */ |
dflet | 0:bbe98578d4c0 | 404 | slPeerInfoAsyncResponse_t P2PModeNegReqReceived; /* SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT - relevant only in P2P mode */ |
dflet | 0:bbe98578d4c0 | 405 | slWlanConnFailureAsyncResponse_t P2PModewlanConnectionFailure; /* SL_WLAN_CONNECTION_FAILED_EVENT - relevant only in P2P mode */ |
dflet | 0:bbe98578d4c0 | 406 | |
dflet | 0:bbe98578d4c0 | 407 | } SlWlanEventData_u; |
dflet | 0:bbe98578d4c0 | 408 | |
dflet | 0:bbe98578d4c0 | 409 | typedef struct |
dflet | 0:bbe98578d4c0 | 410 | { |
dflet | 0:bbe98578d4c0 | 411 | _u32 Event; |
dflet | 0:bbe98578d4c0 | 412 | SlWlanEventData_u EventData; |
dflet | 0:bbe98578d4c0 | 413 | } SlWlanEvent_t; |
dflet | 0:bbe98578d4c0 | 414 | |
dflet | 0:bbe98578d4c0 | 415 | |
dflet | 0:bbe98578d4c0 | 416 | typedef struct |
dflet | 0:bbe98578d4c0 | 417 | { |
dflet | 0:bbe98578d4c0 | 418 | _u32 ReceivedValidPacketsNumber; /* sum of the packets that been received OK (include filtered) */ |
dflet | 0:bbe98578d4c0 | 419 | _u32 ReceivedFcsErrorPacketsNumber; /* sum of the packets that been dropped due to FCS error */ |
dflet | 0:bbe98578d4c0 | 420 | _u32 ReceivedPlcpErrorPacketsNumber; /* sum of the packets that been dropped due to PLCP error */ |
dflet | 0:bbe98578d4c0 | 421 | _i16 AvarageDataCtrlRssi; /* average RSSI for all valid data packets received */ |
dflet | 0:bbe98578d4c0 | 422 | _i16 AvarageMgMntRssi; /* average RSSI for all valid management packets received */ |
dflet | 0:bbe98578d4c0 | 423 | _u16 RateHistogram[NUM_OF_RATE_INDEXES]; /* rate histogram for all valid packets received */ |
dflet | 0:bbe98578d4c0 | 424 | _u16 RssiHistogram[SIZE_OF_RSSI_HISTOGRAM]; /* RSSI histogram from -40 until -87 (all below and above\n RSSI will appear in the first and last cells */ |
dflet | 0:bbe98578d4c0 | 425 | _u32 StartTimeStamp; /* the time stamp started collecting the statistics in uSec */ |
dflet | 0:bbe98578d4c0 | 426 | _u32 GetTimeStamp; /* the time stamp called the get statistics command */ |
dflet | 0:bbe98578d4c0 | 427 | }SlGetRxStatResponse_t; |
dflet | 0:bbe98578d4c0 | 428 | |
dflet | 0:bbe98578d4c0 | 429 | |
dflet | 0:bbe98578d4c0 | 430 | typedef struct |
dflet | 0:bbe98578d4c0 | 431 | { |
dflet | 0:bbe98578d4c0 | 432 | _u8 ssid[MAXIMAL_SSID_LENGTH]; |
dflet | 0:bbe98578d4c0 | 433 | _u8 ssid_len; |
dflet | 0:bbe98578d4c0 | 434 | _u8 sec_type; |
dflet | 0:bbe98578d4c0 | 435 | _u8 bssid[SL_BSSID_LENGTH]; |
dflet | 0:bbe98578d4c0 | 436 | _i8 rssi; |
dflet | 0:bbe98578d4c0 | 437 | _i8 reserved[3]; |
dflet | 0:bbe98578d4c0 | 438 | }Sl_WlanNetworkEntry_t; |
dflet | 0:bbe98578d4c0 | 439 | |
dflet | 0:bbe98578d4c0 | 440 | |
dflet | 0:bbe98578d4c0 | 441 | typedef struct |
dflet | 0:bbe98578d4c0 | 442 | { |
dflet | 0:bbe98578d4c0 | 443 | _u8 Type; |
dflet | 0:bbe98578d4c0 | 444 | _i8* Key; |
dflet | 0:bbe98578d4c0 | 445 | _u8 KeyLen; |
dflet | 0:bbe98578d4c0 | 446 | }SlSecParams_t; |
dflet | 0:bbe98578d4c0 | 447 | |
dflet | 0:bbe98578d4c0 | 448 | typedef struct |
dflet | 0:bbe98578d4c0 | 449 | { |
dflet | 0:bbe98578d4c0 | 450 | _i8* User; |
dflet | 0:bbe98578d4c0 | 451 | _u8 UserLen; |
dflet | 0:bbe98578d4c0 | 452 | _i8* AnonUser; |
dflet | 0:bbe98578d4c0 | 453 | _u8 AnonUserLen; |
dflet | 0:bbe98578d4c0 | 454 | _u8 CertIndex; /* not supported */ |
dflet | 0:bbe98578d4c0 | 455 | _u32 EapMethod; |
dflet | 0:bbe98578d4c0 | 456 | }SlSecParamsExt_t; |
dflet | 0:bbe98578d4c0 | 457 | |
dflet | 0:bbe98578d4c0 | 458 | typedef struct |
dflet | 0:bbe98578d4c0 | 459 | { |
dflet | 0:bbe98578d4c0 | 460 | _i8 User[32]; |
dflet | 0:bbe98578d4c0 | 461 | _u8 UserLen; |
dflet | 0:bbe98578d4c0 | 462 | _i8 AnonUser[32]; |
dflet | 0:bbe98578d4c0 | 463 | _u8 AnonUserLen; |
dflet | 0:bbe98578d4c0 | 464 | _u8 CertIndex; //not supported |
dflet | 0:bbe98578d4c0 | 465 | _u32 EapMethod; |
dflet | 0:bbe98578d4c0 | 466 | }SlGetSecParamsExt_t; |
dflet | 0:bbe98578d4c0 | 467 | |
dflet | 0:bbe98578d4c0 | 468 | typedef enum |
dflet | 0:bbe98578d4c0 | 469 | { |
dflet | 0:bbe98578d4c0 | 470 | ROLE_STA = 0, |
dflet | 0:bbe98578d4c0 | 471 | ROLE_AP = 2, |
dflet | 0:bbe98578d4c0 | 472 | ROLE_P2P = 3, |
dflet | 0:bbe98578d4c0 | 473 | ROLE_STA_ERR = -1, /* Failure to load MAC/PHY in STA role */ |
dflet | 0:bbe98578d4c0 | 474 | ROLE_AP_ERR = -ROLE_AP, /* Failure to load MAC/PHY in AP role */ |
dflet | 0:bbe98578d4c0 | 475 | ROLE_P2P_ERR = -ROLE_P2P /* Failure to load MAC/PHY in P2P role */ |
dflet | 0:bbe98578d4c0 | 476 | }SlWlanMode_t; |
dflet | 0:bbe98578d4c0 | 477 | |
dflet | 0:bbe98578d4c0 | 478 | typedef struct |
dflet | 0:bbe98578d4c0 | 479 | { |
dflet | 0:bbe98578d4c0 | 480 | _u32 G_Channels_mask; |
dflet | 0:bbe98578d4c0 | 481 | _i32 rssiThershold; |
dflet | 0:bbe98578d4c0 | 482 | }slWlanScanParamCommand_t; |
dflet | 0:bbe98578d4c0 | 483 | |
dflet | 0:bbe98578d4c0 | 484 | |
dflet | 0:bbe98578d4c0 | 485 | typedef struct |
dflet | 0:bbe98578d4c0 | 486 | { |
dflet | 0:bbe98578d4c0 | 487 | _u8 id; |
dflet | 0:bbe98578d4c0 | 488 | _u8 oui[3]; |
dflet | 0:bbe98578d4c0 | 489 | _u16 length; |
dflet | 0:bbe98578d4c0 | 490 | _u8 data[252]; |
dflet | 0:bbe98578d4c0 | 491 | } sl_protocol_InfoElement_t; |
dflet | 0:bbe98578d4c0 | 492 | |
dflet | 0:bbe98578d4c0 | 493 | typedef struct |
dflet | 0:bbe98578d4c0 | 494 | { |
dflet | 0:bbe98578d4c0 | 495 | _u8 index; /* 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED */ |
dflet | 0:bbe98578d4c0 | 496 | _u8 role; /* bit0: AP = 0, GO = 1 */ |
dflet | 0:bbe98578d4c0 | 497 | sl_protocol_InfoElement_t ie; |
dflet | 0:bbe98578d4c0 | 498 | } sl_protocol_WlanSetInfoElement_t; |
dflet | 0:bbe98578d4c0 | 499 | |
dflet | 0:bbe98578d4c0 | 500 | |
dflet | 0:bbe98578d4c0 | 501 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 502 | /* Function prototypes */ |
dflet | 0:bbe98578d4c0 | 503 | /*****************************************************************************/ |
dflet | 0:bbe98578d4c0 | 504 | |
dflet | 0:bbe98578d4c0 | 505 | |
dflet | 0:bbe98578d4c0 | 506 | /*! |
dflet | 0:bbe98578d4c0 | 507 | \brief Connect to wlan network as a station |
dflet | 0:bbe98578d4c0 | 508 | |
dflet | 0:bbe98578d4c0 | 509 | \param[in] sec_type security types options: \n |
dflet | 0:bbe98578d4c0 | 510 | - SL_SEC_TYPE_OPEN |
dflet | 0:bbe98578d4c0 | 511 | - SL_SEC_TYPE_WEP |
dflet | 0:bbe98578d4c0 | 512 | - SL_SEC_TYPE_WPA_WPA2 |
dflet | 0:bbe98578d4c0 | 513 | - SL_SEC_TYPE_WPA_ENT |
dflet | 0:bbe98578d4c0 | 514 | - SL_SEC_TYPE_WPS_PBC |
dflet | 0:bbe98578d4c0 | 515 | - SL_SEC_TYPE_WPS_PIN |
dflet | 0:bbe98578d4c0 | 516 | |
dflet | 0:bbe98578d4c0 | 517 | \param[in] pName up to 32 bytes in case of STA the name is the SSID of the Access Point |
dflet | 0:bbe98578d4c0 | 518 | \param[in] NameLen name length |
dflet | 0:bbe98578d4c0 | 519 | \param[in] pMacAddr 6 bytes for MAC address |
dflet | 0:bbe98578d4c0 | 520 | \param[in] pSecParams Security parameters (use NULL key for SL_SEC_TYPE_OPEN) |
dflet | 0:bbe98578d4c0 | 521 | \param[in] pSecExtParams Enterprise parameters (set NULL in case Enterprise parameters is not in use) |
dflet | 0:bbe98578d4c0 | 522 | |
dflet | 0:bbe98578d4c0 | 523 | \return On success, zero is returned. On error, negative is returned |
dflet | 0:bbe98578d4c0 | 524 | In case error number (-71) is returned, it indicates a connection was activated while the device it running in AP role |
dflet | 0:bbe98578d4c0 | 525 | |
dflet | 0:bbe98578d4c0 | 526 | \sa sl_WlanDisconnect |
dflet | 0:bbe98578d4c0 | 527 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 528 | \warning In this version only single enterprise mode could be used |
dflet | 0:bbe98578d4c0 | 529 | SL_SEC_TYPE_WPA is a deprecated definition, the new definition is SL_SEC_TYPE_WPA_WPA2 |
dflet | 0:bbe98578d4c0 | 530 | */ |
dflet | 0:bbe98578d4c0 | 531 | #if _SL_INCLUDE_FUNC(sl_WlanConnect) |
dflet | 0:bbe98578d4c0 | 532 | _i16 sl_WlanConnect(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams); |
dflet | 0:bbe98578d4c0 | 533 | #endif |
dflet | 0:bbe98578d4c0 | 534 | |
dflet | 0:bbe98578d4c0 | 535 | /*! |
dflet | 0:bbe98578d4c0 | 536 | \brief wlan disconnect |
dflet | 0:bbe98578d4c0 | 537 | |
dflet | 0:bbe98578d4c0 | 538 | Disconnect connection |
dflet | 0:bbe98578d4c0 | 539 | |
dflet | 0:bbe98578d4c0 | 540 | \return 0 disconnected done, other already disconnected |
dflet | 0:bbe98578d4c0 | 541 | |
dflet | 0:bbe98578d4c0 | 542 | \sa sl_WlanConnect |
dflet | 0:bbe98578d4c0 | 543 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 544 | \warning |
dflet | 0:bbe98578d4c0 | 545 | */ |
dflet | 0:bbe98578d4c0 | 546 | #if _SL_INCLUDE_FUNC(sl_WlanDisconnect) |
dflet | 0:bbe98578d4c0 | 547 | _i16 sl_WlanDisconnect(void); |
dflet | 0:bbe98578d4c0 | 548 | #endif |
dflet | 0:bbe98578d4c0 | 549 | |
dflet | 0:bbe98578d4c0 | 550 | /*! |
dflet | 0:bbe98578d4c0 | 551 | \brief add profile |
dflet | 0:bbe98578d4c0 | 552 | |
dflet | 0:bbe98578d4c0 | 553 | When auto start is enabled, the device connects to a |
dflet | 0:bbe98578d4c0 | 554 | station from the profiles table. Up to 7 profiles are |
dflet | 0:bbe98578d4c0 | 555 | supported. If several profiles configured the device chose |
dflet | 0:bbe98578d4c0 | 556 | the highest priority profile, within each priority group, |
dflet | 0:bbe98578d4c0 | 557 | device will chose profile based on security policy, signal |
dflet | 0:bbe98578d4c0 | 558 | strength, etc parameters. |
dflet | 0:bbe98578d4c0 | 559 | |
dflet | 0:bbe98578d4c0 | 560 | |
dflet | 0:bbe98578d4c0 | 561 | \param[in] pName up to 32 bytes in case of STA the name is the |
dflet | 0:bbe98578d4c0 | 562 | SSID of the Access Point |
dflet | 0:bbe98578d4c0 | 563 | in case of P2P the name is the remote device name |
dflet | 0:bbe98578d4c0 | 564 | \param[in] NameLen name length |
dflet | 0:bbe98578d4c0 | 565 | \param[in] pMacAddr 6 bytes for MAC address |
dflet | 0:bbe98578d4c0 | 566 | \param[in] pSecParams Security parameters - security type |
dflet | 0:bbe98578d4c0 | 567 | (SL_SEC_TYPE_OPEN,SL_SEC_TYPE_WEP,SL_SEC_TYPE_WPA_WPA2, |
dflet | 0:bbe98578d4c0 | 568 | SL_SEC_TYPE_P2P_PBC,SL_SEC_TYPE_P2P_PIN_KEYPAD,SL_SEC_TYPE_P2P_PIN_DISPLAY, SL_SEC_TYPE_WPA_ENT), key, and key length |
dflet | 0:bbe98578d4c0 | 569 | in case of p2p security type pin the key refers to pin code |
dflet | 0:bbe98578d4c0 | 570 | \param[in] pSecExtParams Enterprise parameters - identity, identity length, |
dflet | 0:bbe98578d4c0 | 571 | Anonymous, Anonymous length, CertIndex (not supported, |
dflet | 0:bbe98578d4c0 | 572 | certificates need to be placed in a specific file ID), |
dflet | 0:bbe98578d4c0 | 573 | EapMethod.Use NULL in case Enterprise parameters is not in use |
dflet | 0:bbe98578d4c0 | 574 | |
dflet | 0:bbe98578d4c0 | 575 | \param[in] Priority profile priority. Lowest priority: 0 |
dflet | 0:bbe98578d4c0 | 576 | \param[in] Options Not supported |
dflet | 0:bbe98578d4c0 | 577 | |
dflet | 0:bbe98578d4c0 | 578 | \return On success, profile stored index is returned. On error, negative value is returned |
dflet | 0:bbe98578d4c0 | 579 | |
dflet | 0:bbe98578d4c0 | 580 | \sa sl_WlanProfileGet , sl_WlanProfileDel |
dflet | 0:bbe98578d4c0 | 581 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 582 | \warning Only one Enterprise profile is supported. |
dflet | 0:bbe98578d4c0 | 583 | Please Note that in case of adding an existing profile (compared by pName,pMACAddr and security type) |
dflet | 0:bbe98578d4c0 | 584 | the old profile will be deleted and the same index will be returned. |
dflet | 0:bbe98578d4c0 | 585 | SL_SEC_TYPE_WPA is a deprecated definition, the new definition is SL_SEC_TYPE_WPA_WPA2 |
dflet | 0:bbe98578d4c0 | 586 | |
dflet | 0:bbe98578d4c0 | 587 | */ |
dflet | 0:bbe98578d4c0 | 588 | #if _SL_INCLUDE_FUNC(sl_WlanProfileAdd) |
dflet | 0:bbe98578d4c0 | 589 | _i16 sl_WlanProfileAdd(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams, _u32 Priority, _u32 Options); |
dflet | 0:bbe98578d4c0 | 590 | #endif |
dflet | 0:bbe98578d4c0 | 591 | |
dflet | 0:bbe98578d4c0 | 592 | /*! |
dflet | 0:bbe98578d4c0 | 593 | \brief get profile |
dflet | 0:bbe98578d4c0 | 594 | |
dflet | 0:bbe98578d4c0 | 595 | read profile from the device |
dflet | 0:bbe98578d4c0 | 596 | |
dflet | 0:bbe98578d4c0 | 597 | \param[in] Index profile stored index, if index does not exists |
dflet | 0:bbe98578d4c0 | 598 | error is return |
dflet | 0:bbe98578d4c0 | 599 | \param[out] pName up to 32 bytes, in case of sta mode the name of the Access Point |
dflet | 0:bbe98578d4c0 | 600 | in case of p2p mode the name of the Remote Device |
dflet | 0:bbe98578d4c0 | 601 | \param[out] pNameLen name length |
dflet | 0:bbe98578d4c0 | 602 | \param[out] pMacAddr 6 bytes for MAC address |
dflet | 0:bbe98578d4c0 | 603 | \param[out] pSecParams security parameters - security type |
dflet | 0:bbe98578d4c0 | 604 | (LAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or |
dflet | 0:bbe98578d4c0 | 605 | WLAN_SEC_WPA2, WLAN_SEC_P2P_PBC, WLAN_SEC_P2P_PIN_KEYPAD or WLAN_SEC_P2P_DISPLAY), key and key length are not |
dflet | 0:bbe98578d4c0 | 606 | in case of p2p security type pin the key refers to pin code |
dflet | 0:bbe98578d4c0 | 607 | return due to security reasons. |
dflet | 0:bbe98578d4c0 | 608 | \param[out] pSecExtParams enterprise parameters - identity, identity |
dflet | 0:bbe98578d4c0 | 609 | length, Anonymous, Anonymous length |
dflet | 0:bbe98578d4c0 | 610 | CertIndex (not supported), EapMethod. |
dflet | 0:bbe98578d4c0 | 611 | \param[out] Priority profile priority |
dflet | 0:bbe98578d4c0 | 612 | |
dflet | 0:bbe98578d4c0 | 613 | \return On success, Profile security type is returned (0 or positive number). On error, -1 is |
dflet | 0:bbe98578d4c0 | 614 | returned |
dflet | 0:bbe98578d4c0 | 615 | |
dflet | 0:bbe98578d4c0 | 616 | \sa sl_WlanProfileAdd , sl_WlanProfileDel |
dflet | 0:bbe98578d4c0 | 617 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 618 | \warning |
dflet | 0:bbe98578d4c0 | 619 | */ |
dflet | 0:bbe98578d4c0 | 620 | #if _SL_INCLUDE_FUNC(sl_WlanProfileGet) |
dflet | 0:bbe98578d4c0 | 621 | _i16 sl_WlanProfileGet(_i16 Index,_i8* pName, _i16 *pNameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams, SlGetSecParamsExt_t* pSecExtParams, _u32 *pPriority); |
dflet | 0:bbe98578d4c0 | 622 | #endif |
dflet | 0:bbe98578d4c0 | 623 | |
dflet | 0:bbe98578d4c0 | 624 | /*! |
dflet | 0:bbe98578d4c0 | 625 | \brief Delete WLAN profile |
dflet | 0:bbe98578d4c0 | 626 | |
dflet | 0:bbe98578d4c0 | 627 | Delete WLAN profile |
dflet | 0:bbe98578d4c0 | 628 | |
dflet | 0:bbe98578d4c0 | 629 | \param[in] index number of profile to delete.Possible values are 0 to 6. |
dflet | 0:bbe98578d4c0 | 630 | Index value 255 will delete all saved profiles |
dflet | 0:bbe98578d4c0 | 631 | |
dflet | 0:bbe98578d4c0 | 632 | \return On success, zero is returned. On error, -1 is |
dflet | 0:bbe98578d4c0 | 633 | returned |
dflet | 0:bbe98578d4c0 | 634 | |
dflet | 0:bbe98578d4c0 | 635 | \sa sl_WlanProfileAdd , sl_WlanProfileGet |
dflet | 0:bbe98578d4c0 | 636 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 637 | \warning |
dflet | 0:bbe98578d4c0 | 638 | */ |
dflet | 0:bbe98578d4c0 | 639 | #if _SL_INCLUDE_FUNC(sl_WlanProfileDel) |
dflet | 0:bbe98578d4c0 | 640 | _i16 sl_WlanProfileDel(_i16 Index); |
dflet | 0:bbe98578d4c0 | 641 | #endif |
dflet | 0:bbe98578d4c0 | 642 | |
dflet | 0:bbe98578d4c0 | 643 | /*! |
dflet | 0:bbe98578d4c0 | 644 | \brief Set policy values |
dflet | 0:bbe98578d4c0 | 645 | |
dflet | 0:bbe98578d4c0 | 646 | \param[in] Type Type of policy to be modified. The Options are:\n |
dflet | 0:bbe98578d4c0 | 647 | - SL_POLICY_CONNECTION |
dflet | 0:bbe98578d4c0 | 648 | - SL_POLICY_SCAN |
dflet | 0:bbe98578d4c0 | 649 | - SL_POLICY_PM |
dflet | 0:bbe98578d4c0 | 650 | - SL_POLICY_P2P |
dflet | 0:bbe98578d4c0 | 651 | \param[in] Policy The option value which depends on action type |
dflet | 0:bbe98578d4c0 | 652 | \param[in] pVal An optional value pointer |
dflet | 0:bbe98578d4c0 | 653 | \param[in] ValLen An optional value length, in bytes |
dflet | 0:bbe98578d4c0 | 654 | \return On success, zero is returned. On error, -1 is |
dflet | 0:bbe98578d4c0 | 655 | returned |
dflet | 0:bbe98578d4c0 | 656 | \sa sl_WlanPolicyGet |
dflet | 0:bbe98578d4c0 | 657 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 658 | \warning |
dflet | 0:bbe98578d4c0 | 659 | \par |
dflet | 0:bbe98578d4c0 | 660 | SL_POLICY_CONNECTION type defines three options available to connect the CC31xx device to the AP: \n |
dflet | 0:bbe98578d4c0 | 661 | |
dflet | 0:bbe98578d4c0 | 662 | - If Auto Connect is set, the CC31xx device tries to automatically reconnect to one of its stored profiles, each time the connection fails or the device is rebooted.\n |
dflet | 0:bbe98578d4c0 | 663 | To set this option, use: \n |
dflet | 0:bbe98578d4c0 | 664 | <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(1,0,0,0,0),NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 665 | - If Fast Connect is set, the CC31xx device tries to establish a fast connection to AP. \n |
dflet | 0:bbe98578d4c0 | 666 | To set this option, use: \n |
dflet | 0:bbe98578d4c0 | 667 | <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,1,0,0,0),NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 668 | - (relevant for P2P mode only) - If Any P2P is set, CC31xx/CC32xx device tries to automatically connect to the first P2P device available, \n |
dflet | 0:bbe98578d4c0 | 669 | supporting push button only. To set this option, use: \n |
dflet | 0:bbe98578d4c0 | 670 | <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,1,0),NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 671 | - For auto smart config upon restart (any command from Host will end this state) use: \n |
dflet | 0:bbe98578d4c0 | 672 | <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,0,1),NULL,0) </b> \n |
dflet | 0:bbe98578d4c0 | 673 | The options above could be combined to a single action, if more than one action is required. \n |
dflet | 0:bbe98578d4c0 | 674 | \par |
dflet | 0:bbe98578d4c0 | 675 | SL_POLICY_SCAN defines system scan time interval in case there is no connection. Default interval is 10 minutes. \n |
dflet | 0:bbe98578d4c0 | 676 | After settings scan interval, an immediate scan is activated. The next scan will be based on the interval settings. \n |
dflet | 0:bbe98578d4c0 | 677 | - For example, setting scan interval to 1 minute interval use: \n |
dflet | 0:bbe98578d4c0 | 678 | _u32 intervalInSeconds = 60; \n |
dflet | 0:bbe98578d4c0 | 679 | #define SL_SCAN_ENABLE 1 \n<b> |
dflet | 0:bbe98578d4c0 | 680 | sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_ENABLE, (_u8 *)&intervalInSeconds,sizeof(intervalInSeconds)); </b>\n |
dflet | 0:bbe98578d4c0 | 681 | |
dflet | 0:bbe98578d4c0 | 682 | - For example, disable scan: \n |
dflet | 0:bbe98578d4c0 | 683 | #define SL_SCAN_DISABLE 0 \n<b> |
dflet | 0:bbe98578d4c0 | 684 | sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_DISABLE,0,0); </b>\n |
dflet | 0:bbe98578d4c0 | 685 | \par |
dflet | 0:bbe98578d4c0 | 686 | SL_POLICY_PM defines a power management policy for Station mode only: |
dflet | 0:bbe98578d4c0 | 687 | - For setting normal power management (default) policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_NORMAL_POLICY, NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 688 | - For setting low latency power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_LOW_LATENCY_POLICY, NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 689 | - For setting low power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_LOW_POWER_POLICY, NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 690 | - For setting always on power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_ALWAYS_ON_POLICY, NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 691 | - For setting Long Sleep Interval policy use: \n |
dflet | 0:bbe98578d4c0 | 692 | _u16 PolicyBuff[4] = {0,0,800,0}; // PolicyBuff[2] is max sleep time in mSec \n<b> |
dflet | 0:bbe98578d4c0 | 693 | sl_WlanPolicySet(SL_POLICY_PM , SL_LONG_SLEEP_INTERVAL_POLICY, (_u8*)PolicyBuff,sizeof(PolicyBuff)); </b>\n |
dflet | 0:bbe98578d4c0 | 694 | |
dflet | 0:bbe98578d4c0 | 695 | SL_POLICY_P2P defines p2p negotiation policy parameters for P2P role: |
dflet | 0:bbe98578d4c0 | 696 | - To set intent negotiation value, set on of the following: |
dflet | 0:bbe98578d4c0 | 697 | SL_P2P_ROLE_NEGOTIATE - intent 3 |
dflet | 0:bbe98578d4c0 | 698 | SL_P2P_ROLE_GROUP_OWNER - intent 15 |
dflet | 0:bbe98578d4c0 | 699 | SL_P2P_ROLE_CLIENT - intent 0 |
dflet | 0:bbe98578d4c0 | 700 | - To set negotiation initiator value (initiator policy of first negotiation action frame), set on of the following: |
dflet | 0:bbe98578d4c0 | 701 | SL_P2P_NEG_INITIATOR_ACTIVE |
dflet | 0:bbe98578d4c0 | 702 | SL_P2P_NEG_INITIATOR_PASSIVE |
dflet | 0:bbe98578d4c0 | 703 | SL_P2P_NEG_INITIATOR_RAND_BACKOFF |
dflet | 0:bbe98578d4c0 | 704 | For example: \n |
dflet | 0:bbe98578d4c0 | 705 | <b>sl_WlanPolicySet(SL_POLICY_P2P, SL_P2P_POLICY(SL_P2P_ROLE_NEGOTIATE,SL_P2P_NEG_INITIATOR_RAND_BACKOFF),NULL,0) </b> |
dflet | 0:bbe98578d4c0 | 706 | |
dflet | 0:bbe98578d4c0 | 707 | */ |
dflet | 0:bbe98578d4c0 | 708 | #if _SL_INCLUDE_FUNC(sl_WlanPolicySet) |
dflet | 0:bbe98578d4c0 | 709 | _i16 sl_WlanPolicySet(_u8 Type , const _u8 Policy, _u8 *pVal,_u8 ValLen); |
dflet | 0:bbe98578d4c0 | 710 | #endif |
dflet | 0:bbe98578d4c0 | 711 | /*! |
dflet | 0:bbe98578d4c0 | 712 | \brief get policy values |
dflet | 0:bbe98578d4c0 | 713 | |
dflet | 0:bbe98578d4c0 | 714 | \param[in] Type SL_POLICY_CONNECTION, SL_POLICY_SCAN, SL_POLICY_PM,SL_POLICY_P2P \n |
dflet | 0:bbe98578d4c0 | 715 | |
dflet | 0:bbe98578d4c0 | 716 | \param[in] Policy argument may be set to any value \n |
dflet | 0:bbe98578d4c0 | 717 | |
dflet | 0:bbe98578d4c0 | 718 | \param[out] The returned values, depends on each policy type, will be stored in the allocated buffer pointed by pVal |
dflet | 0:bbe98578d4c0 | 719 | with a maximum buffer length set by the calling function and pointed to by argument *pValLen |
dflet | 0:bbe98578d4c0 | 720 | |
dflet | 0:bbe98578d4c0 | 721 | \return On success, zero is returned. On error, -1 is returned |
dflet | 0:bbe98578d4c0 | 722 | |
dflet | 0:bbe98578d4c0 | 723 | \sa sl_WlanPolicySet |
dflet | 0:bbe98578d4c0 | 724 | |
dflet | 0:bbe98578d4c0 | 725 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 726 | |
dflet | 0:bbe98578d4c0 | 727 | \warning The value pointed by the argument *pValLen should be set to a value different from 0 and |
dflet | 0:bbe98578d4c0 | 728 | greater than the buffer length returned from the SL device. Otherwise, an error will be returned. |
dflet | 0:bbe98578d4c0 | 729 | |
dflet | 0:bbe98578d4c0 | 730 | */ |
dflet | 0:bbe98578d4c0 | 731 | #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet) |
dflet | 0:bbe98578d4c0 | 732 | _i16 sl_WlanPolicyGet(_u8 Type , _u8 Policy,_u8 *pVal,_u8 *pValLen); |
dflet | 0:bbe98578d4c0 | 733 | #endif |
dflet | 0:bbe98578d4c0 | 734 | /*! |
dflet | 0:bbe98578d4c0 | 735 | \brief Gets the WLAN scan operation results |
dflet | 0:bbe98578d4c0 | 736 | |
dflet | 0:bbe98578d4c0 | 737 | Gets scan results , gets entry from scan result table |
dflet | 0:bbe98578d4c0 | 738 | |
dflet | 0:bbe98578d4c0 | 739 | \param[in] Index - Starting index identifier (range 0-19) for getting scan results |
dflet | 0:bbe98578d4c0 | 740 | \param[in] Count - How many entries to fetch. Max is (20-"Index"). |
dflet | 0:bbe98578d4c0 | 741 | \param[out] pEntries - pointer to an allocated Sl_WlanNetworkEntry_t. |
dflet | 0:bbe98578d4c0 | 742 | the number of array items should match "Count" |
dflet | 0:bbe98578d4c0 | 743 | sec_type: SL_SCAN_SEC_TYPE_OPEN, SL_SCAN_SEC_TYPE_WEP, SL_SCAN_SEC_TYPE_WPA or SL_SCAN_SEC_TYPE_WPA2 |
dflet | 0:bbe98578d4c0 | 744 | |
dflet | 0:bbe98578d4c0 | 745 | |
dflet | 0:bbe98578d4c0 | 746 | \return Number of valid networks list items |
dflet | 0:bbe98578d4c0 | 747 | |
dflet | 0:bbe98578d4c0 | 748 | \sa |
dflet | 0:bbe98578d4c0 | 749 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 750 | \warning This command do not initiate any active scanning action |
dflet | 0:bbe98578d4c0 | 751 | \par Example: |
dflet | 0:bbe98578d4c0 | 752 | \code An example of fetching max 10 results: |
dflet | 0:bbe98578d4c0 | 753 | |
dflet | 0:bbe98578d4c0 | 754 | Sl_WlanNetworkEntry_t netEntries[10]; |
dflet | 0:bbe98578d4c0 | 755 | _i16 resultsCount = sl_WlanGetNetworkList(0,10,&netEntries[0]); |
dflet | 0:bbe98578d4c0 | 756 | for(i=0; i< resultsCount; i++) |
dflet | 0:bbe98578d4c0 | 757 | { |
dflet | 0:bbe98578d4c0 | 758 | printf("%s\n",netEntries[i].ssid); |
dflet | 0:bbe98578d4c0 | 759 | } |
dflet | 0:bbe98578d4c0 | 760 | \endcode |
dflet | 0:bbe98578d4c0 | 761 | */ |
dflet | 0:bbe98578d4c0 | 762 | #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList) |
dflet | 0:bbe98578d4c0 | 763 | _i16 sl_WlanGetNetworkList(_u8 Index, _u8 Count, Sl_WlanNetworkEntry_t *pEntries); |
dflet | 0:bbe98578d4c0 | 764 | #endif |
dflet | 0:bbe98578d4c0 | 765 | |
dflet | 0:bbe98578d4c0 | 766 | /*! |
dflet | 0:bbe98578d4c0 | 767 | \brief Start collecting wlan RX statistics, for unlimited time. |
dflet | 0:bbe98578d4c0 | 768 | |
dflet | 0:bbe98578d4c0 | 769 | \return On success, zero is returned. On error, -1 is returned |
dflet | 0:bbe98578d4c0 | 770 | |
dflet | 0:bbe98578d4c0 | 771 | \sa sl_WlanRxStatStop sl_WlanRxStatGet |
dflet | 0:bbe98578d4c0 | 772 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 773 | \warning This API is deprecated and should be removed for next release |
dflet | 0:bbe98578d4c0 | 774 | \par Example: |
dflet | 0:bbe98578d4c0 | 775 | \code Getting wlan RX statistics: |
dflet | 0:bbe98578d4c0 | 776 | |
dflet | 0:bbe98578d4c0 | 777 | void RxStatCollectTwice() |
dflet | 0:bbe98578d4c0 | 778 | { |
dflet | 0:bbe98578d4c0 | 779 | SlGetRxStatResponse_t rxStat; |
dflet | 0:bbe98578d4c0 | 780 | _i16 rawSocket; |
dflet | 0:bbe98578d4c0 | 781 | _i8 DataFrame[200]; |
dflet | 0:bbe98578d4c0 | 782 | struct SlTimeval_t timeval; |
dflet | 0:bbe98578d4c0 | 783 | timeval.tv_sec = 0; // Seconds |
dflet | 0:bbe98578d4c0 | 784 | timeval.tv_usec = 20000; // Microseconds. 10000 microseconds resolution |
dflet | 0:bbe98578d4c0 | 785 | |
dflet | 0:bbe98578d4c0 | 786 | sl_WlanRxStatStart(); // set statistics mode |
dflet | 0:bbe98578d4c0 | 787 | |
dflet | 0:bbe98578d4c0 | 788 | rawSocket = sl_Socket(SL_AF_RF, SL_SOCK_RAW, eChannel); |
dflet | 0:bbe98578d4c0 | 789 | // set timeout - in case we have no activity for the specified channel |
dflet | 0:bbe98578d4c0 | 790 | sl_SetSockOpt(rawSocket,SL_SOL_SOCKET,SL_SO_RCVTIMEO, &timeval, sizeof(timeval)); // Enable receive timeout |
dflet | 0:bbe98578d4c0 | 791 | status = sl_Recv(rawSocket, DataFrame, sizeof(DataFrame), 0); |
dflet | 0:bbe98578d4c0 | 792 | |
dflet | 0:bbe98578d4c0 | 793 | Sleep(1000); // sleep for 1 sec |
dflet | 0:bbe98578d4c0 | 794 | sl_WlanRxStatGet(&rxStat,0); // statistics has been cleared upon read |
dflet | 0:bbe98578d4c0 | 795 | Sleep(1000); // sleep for 1 sec |
dflet | 0:bbe98578d4c0 | 796 | sl_WlanRxStatGet(&rxStat,0); |
dflet | 0:bbe98578d4c0 | 797 | |
dflet | 0:bbe98578d4c0 | 798 | } |
dflet | 0:bbe98578d4c0 | 799 | \endcode |
dflet | 0:bbe98578d4c0 | 800 | */ |
dflet | 0:bbe98578d4c0 | 801 | #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart) |
dflet | 0:bbe98578d4c0 | 802 | _i16 sl_WlanRxStatStart(void); |
dflet | 0:bbe98578d4c0 | 803 | #endif |
dflet | 0:bbe98578d4c0 | 804 | |
dflet | 0:bbe98578d4c0 | 805 | |
dflet | 0:bbe98578d4c0 | 806 | /*! |
dflet | 0:bbe98578d4c0 | 807 | \brief Stop collecting wlan RX statistic, (if previous called sl_WlanRxStatStart) |
dflet | 0:bbe98578d4c0 | 808 | |
dflet | 0:bbe98578d4c0 | 809 | \return On success, zero is returned. On error, -1 is returned |
dflet | 0:bbe98578d4c0 | 810 | |
dflet | 0:bbe98578d4c0 | 811 | \sa sl_WlanRxStatStart sl_WlanRxStatGet |
dflet | 0:bbe98578d4c0 | 812 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 813 | \warning This API is deprecated and should be removed for next release |
dflet | 0:bbe98578d4c0 | 814 | */ |
dflet | 0:bbe98578d4c0 | 815 | #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop) |
dflet | 0:bbe98578d4c0 | 816 | _i16 sl_WlanRxStatStop(void); |
dflet | 0:bbe98578d4c0 | 817 | #endif |
dflet | 0:bbe98578d4c0 | 818 | |
dflet | 0:bbe98578d4c0 | 819 | |
dflet | 0:bbe98578d4c0 | 820 | /*! |
dflet | 0:bbe98578d4c0 | 821 | \brief Get wlan RX statistics. upon calling this command, the statistics counters will be cleared. |
dflet | 0:bbe98578d4c0 | 822 | |
dflet | 0:bbe98578d4c0 | 823 | \param[in] Flags should be 0 ( not applicable right now, will be added the future ) |
dflet | 0:bbe98578d4c0 | 824 | \param[in] pRxStat a pointer to SlGetRxStatResponse_t filled with Rx statistics results |
dflet | 0:bbe98578d4c0 | 825 | \return On success, zero is returned. On error, -1 is returned |
dflet | 0:bbe98578d4c0 | 826 | |
dflet | 0:bbe98578d4c0 | 827 | \sa sl_WlanRxStatStart sl_WlanRxStatStop |
dflet | 0:bbe98578d4c0 | 828 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 829 | \warning |
dflet | 0:bbe98578d4c0 | 830 | */ |
dflet | 0:bbe98578d4c0 | 831 | #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet) |
dflet | 0:bbe98578d4c0 | 832 | _i16 sl_WlanRxStatGet(SlGetRxStatResponse_t *pRxStat,_u32 Flags); |
dflet | 0:bbe98578d4c0 | 833 | #endif |
dflet | 0:bbe98578d4c0 | 834 | |
dflet | 0:bbe98578d4c0 | 835 | |
dflet | 0:bbe98578d4c0 | 836 | /*! |
dflet | 0:bbe98578d4c0 | 837 | \brief Stop Smart Config procedure. Once Smart Config will be stopped, |
dflet | 0:bbe98578d4c0 | 838 | Asynchronous event will be received - SL_OPCODE_WLAN_SMART_CONFIG_STOP_ASYNC_RESPONSE. |
dflet | 0:bbe98578d4c0 | 839 | |
dflet | 0:bbe98578d4c0 | 840 | \param[in] none |
dflet | 0:bbe98578d4c0 | 841 | \param[out] none |
dflet | 0:bbe98578d4c0 | 842 | |
dflet | 0:bbe98578d4c0 | 843 | \return 0 - if Stop Smart Config is about to be executed without errors. |
dflet | 0:bbe98578d4c0 | 844 | |
dflet | 0:bbe98578d4c0 | 845 | \sa sl_WlanSmartConfigStart |
dflet | 0:bbe98578d4c0 | 846 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 847 | \warning This API is deprecated and should be removed for next release |
dflet | 0:bbe98578d4c0 | 848 | |
dflet | 0:bbe98578d4c0 | 849 | */ |
dflet | 0:bbe98578d4c0 | 850 | #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStop) |
dflet | 0:bbe98578d4c0 | 851 | _i16 sl_WlanSmartConfigStop(void); |
dflet | 0:bbe98578d4c0 | 852 | #endif |
dflet | 0:bbe98578d4c0 | 853 | |
dflet | 0:bbe98578d4c0 | 854 | /*! |
dflet | 0:bbe98578d4c0 | 855 | \brief Start Smart Config procedure |
dflet | 0:bbe98578d4c0 | 856 | \par |
dflet | 0:bbe98578d4c0 | 857 | The target of the procedure is to let the \n |
dflet | 0:bbe98578d4c0 | 858 | device to gain the network parameters: SSID and Password (if network is secured) \n |
dflet | 0:bbe98578d4c0 | 859 | and to connect to it once located in the network range. \n |
dflet | 0:bbe98578d4c0 | 860 | An external application should be used on a device connected to any mobile network. \n |
dflet | 0:bbe98578d4c0 | 861 | The external application will transmit over the air the network parameters in secured manner.\n |
dflet | 0:bbe98578d4c0 | 862 | The Password may be decrypted using a Key. \n |
dflet | 0:bbe98578d4c0 | 863 | The decryption method may be decided in the command or embedded in the Flash. \n |
dflet | 0:bbe98578d4c0 | 864 | The procedure can be activated for 1-3 group ID in the range of BIT_0 - BIT_15 where the default group ID id 0 (BIT_0) \n |
dflet | 0:bbe98578d4c0 | 865 | Once Smart Config has ended successfully, Asynchronous event will be received - \n |
dflet | 0:bbe98578d4c0 | 866 | SL_OPCODE_WLAN_SMART_CONFIG_START_ASYNC_RESPONSE. \n |
dflet | 0:bbe98578d4c0 | 867 | The Event will hold the SSID and an extra field that might have been delivered as well (i.e. - device name) |
dflet | 0:bbe98578d4c0 | 868 | |
dflet | 0:bbe98578d4c0 | 869 | \param[in] groupIdBitmask - each bit represent a group ID that should be searched. |
dflet | 0:bbe98578d4c0 | 870 | The Default group ID id BIT_0. 2 more group can be searched |
dflet | 0:bbe98578d4c0 | 871 | in addition. The range is BIT_0 - BIT_15. |
dflet | 0:bbe98578d4c0 | 872 | \param[in] chiper - 0: check in flash, 1 - AES, 0xFF - do not check in flash |
dflet | 0:bbe98578d4c0 | 873 | \param[in] publicKeyLen - public key len (used for the default group ID - BIT_0) |
dflet | 0:bbe98578d4c0 | 874 | \param[in] group1KeyLen - group ID1 length |
dflet | 0:bbe98578d4c0 | 875 | \param[in] group2KeyLen - group ID2 length |
dflet | 0:bbe98578d4c0 | 876 | \param[in] publicKey - public key (used for the default group ID - BIT_0) |
dflet | 0:bbe98578d4c0 | 877 | \param[in] group1Key - group ID1 key |
dflet | 0:bbe98578d4c0 | 878 | \param[in] group2Key - group ID2 key |
dflet | 0:bbe98578d4c0 | 879 | |
dflet | 0:bbe98578d4c0 | 880 | \param[out] none |
dflet | 0:bbe98578d4c0 | 881 | |
dflet | 0:bbe98578d4c0 | 882 | \return 0 - if Smart Config started successfully. |
dflet | 0:bbe98578d4c0 | 883 | |
dflet | 0:bbe98578d4c0 | 884 | \sa sl_WlanSmartConfigStop |
dflet | 0:bbe98578d4c0 | 885 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 886 | \warning |
dflet | 0:bbe98578d4c0 | 887 | \par |
dflet | 0:bbe98578d4c0 | 888 | \code An example of starting smart Config on group ID's 0 + 1 + 2 |
dflet | 0:bbe98578d4c0 | 889 | |
dflet | 0:bbe98578d4c0 | 890 | sl_WlanSmartConfigStart(7, //group ID's (BIT_0 | BIT_1 | BIT_2) |
dflet | 0:bbe98578d4c0 | 891 | 1, //decrypt key by AES method |
dflet | 0:bbe98578d4c0 | 892 | 16, //decryption key length for group ID0 |
dflet | 0:bbe98578d4c0 | 893 | 16, //decryption key length for group ID1 |
dflet | 0:bbe98578d4c0 | 894 | 16, //decryption key length for group ID2 |
dflet | 0:bbe98578d4c0 | 895 | "Key0Key0Key0Key0", //decryption key for group ID0 |
dflet | 0:bbe98578d4c0 | 896 | "Key1Key1Key1Key1", //decryption key for group ID1 |
dflet | 0:bbe98578d4c0 | 897 | "Key2Key2Key2Key2" //decryption key for group ID2 |
dflet | 0:bbe98578d4c0 | 898 | ); |
dflet | 0:bbe98578d4c0 | 899 | \endcode |
dflet | 0:bbe98578d4c0 | 900 | */ |
dflet | 0:bbe98578d4c0 | 901 | #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStart) |
dflet | 0:bbe98578d4c0 | 902 | _i16 sl_WlanSmartConfigStart(const _u32 groupIdBitmask, |
dflet | 0:bbe98578d4c0 | 903 | const _u8 cipher, |
dflet | 0:bbe98578d4c0 | 904 | const _u8 publicKeyLen, |
dflet | 0:bbe98578d4c0 | 905 | const _u8 group1KeyLen, |
dflet | 0:bbe98578d4c0 | 906 | const _u8 group2KeyLen, |
dflet | 0:bbe98578d4c0 | 907 | const _u8* publicKey, |
dflet | 0:bbe98578d4c0 | 908 | const _u8* group1Key, |
dflet | 0:bbe98578d4c0 | 909 | const _u8* group2Key); |
dflet | 0:bbe98578d4c0 | 910 | #endif |
dflet | 0:bbe98578d4c0 | 911 | |
dflet | 0:bbe98578d4c0 | 912 | |
dflet | 0:bbe98578d4c0 | 913 | /*! |
dflet | 0:bbe98578d4c0 | 914 | \brief Wlan set mode |
dflet | 0:bbe98578d4c0 | 915 | |
dflet | 0:bbe98578d4c0 | 916 | Setting WLAN mode |
dflet | 0:bbe98578d4c0 | 917 | |
dflet | 0:bbe98578d4c0 | 918 | \param[in] mode - WLAN mode to start the CC31xx device. Possible options are: |
dflet | 0:bbe98578d4c0 | 919 | - ROLE_STA - for WLAN station mode |
dflet | 0:bbe98578d4c0 | 920 | - ROLE_AP - for WLAN AP mode |
dflet | 0:bbe98578d4c0 | 921 | - ROLE_P2P -for WLAN P2P mode |
dflet | 0:bbe98578d4c0 | 922 | \return 0 - if mode was set correctly |
dflet | 0:bbe98578d4c0 | 923 | \sa sl_Start sl_Stop |
dflet | 0:bbe98578d4c0 | 924 | \note belongs to \ref ext_api |
dflet | 0:bbe98578d4c0 | 925 | \warning After setting the mode the system must be restarted for activating the new mode |
dflet | 0:bbe98578d4c0 | 926 | \par Example: |
dflet | 0:bbe98578d4c0 | 927 | \code |
dflet | 0:bbe98578d4c0 | 928 | //Switch from any role to STA: |
dflet | 0:bbe98578d4c0 | 929 | sl_WlanSetMode(ROLE_STA); |
dflet | 0:bbe98578d4c0 | 930 | sl_Stop(0); |
dflet | 0:bbe98578d4c0 | 931 | sl_Start(NULL,NULL,NULL); |
dflet | 0:bbe98578d4c0 | 932 | \endcode |
dflet | 0:bbe98578d4c0 | 933 | |
dflet | 0:bbe98578d4c0 | 934 | */ |
dflet | 0:bbe98578d4c0 | 935 | #if _SL_INCLUDE_FUNC(sl_WlanSetMode) |
dflet | 0:bbe98578d4c0 | 936 | _i16 sl_WlanSetMode(const _u8 mode); |
dflet | 0:bbe98578d4c0 | 937 | #endif |
dflet | 0:bbe98578d4c0 | 938 | |
dflet | 0:bbe98578d4c0 | 939 | |
dflet | 0:bbe98578d4c0 | 940 | /*! |
dflet | 0:bbe98578d4c0 | 941 | \brief Internal function for setting WLAN configurations |
dflet | 0:bbe98578d4c0 | 942 | |
dflet | 0:bbe98578d4c0 | 943 | \return On success, zero is returned. On error one of the following error codes returned: |
dflet | 0:bbe98578d4c0 | 944 | - CONF_ERROR (-1) |
dflet | 0:bbe98578d4c0 | 945 | - CONF_NVMEM_ACCESS_FAILED (-2) |
dflet | 0:bbe98578d4c0 | 946 | - CONF_OLD_FILE_VERSION (-3) |
dflet | 0:bbe98578d4c0 | 947 | - CONF_ERROR_NO_SUCH_COUNTRY_CODE (-4) |
dflet | 0:bbe98578d4c0 | 948 | |
dflet | 0:bbe98578d4c0 | 949 | |
dflet | 0:bbe98578d4c0 | 950 | \param[in] ConfigId - configuration id |
dflet | 0:bbe98578d4c0 | 951 | - <b>SL_WLAN_CFG_AP_ID</b> |
dflet | 0:bbe98578d4c0 | 952 | - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 953 | - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 954 | |
dflet | 0:bbe98578d4c0 | 955 | \param[in] ConfigOpt - configurations option |
dflet | 0:bbe98578d4c0 | 956 | - <b>SL_WLAN_CFG_AP_ID</b> |
dflet | 0:bbe98578d4c0 | 957 | - <b>WLAN_AP_OPT_SSID</b> \n |
dflet | 0:bbe98578d4c0 | 958 | Set SSID for AP mode. \n |
dflet | 0:bbe98578d4c0 | 959 | This options takes <b>_u8</b> buffer as parameter |
dflet | 0:bbe98578d4c0 | 960 | - <b>WLAN_AP_OPT_CHANNEL</b> \n |
dflet | 0:bbe98578d4c0 | 961 | Set channel for AP mode. \n |
dflet | 0:bbe98578d4c0 | 962 | The channel is dependant on the country code which is set. i.e. for "US" the channel should be in the range of [1-11] \n |
dflet | 0:bbe98578d4c0 | 963 | This option takes <b>_u8</b> as a parameter |
dflet | 0:bbe98578d4c0 | 964 | - <b>WLAN_AP_OPT_HIDDEN_SSID</b> \n |
dflet | 0:bbe98578d4c0 | 965 | Set Hidden SSID Mode for AP mode.Hidden options: \n |
dflet | 0:bbe98578d4c0 | 966 | 0: disabled \n |
dflet | 0:bbe98578d4c0 | 967 | 1: Send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID \n |
dflet | 0:bbe98578d4c0 | 968 | 2: Clear SSID (ASCII 0), but keep the original length (this may be required with some \n |
dflet | 0:bbe98578d4c0 | 969 | clients that do not support empty SSID) and ignore probe requests for broadcast SSID \n |
dflet | 0:bbe98578d4c0 | 970 | This option takes <b>_u8</b> as a parameter |
dflet | 0:bbe98578d4c0 | 971 | - <b>WLAN_AP_OPT_SECURITY_TYPE</b> \n |
dflet | 0:bbe98578d4c0 | 972 | Set Security type for AP mode. Security options are: |
dflet | 0:bbe98578d4c0 | 973 | - Open security: SL_SEC_TYPE_OPEN |
dflet | 0:bbe98578d4c0 | 974 | - WEP security: SL_SEC_TYPE_WEP |
dflet | 0:bbe98578d4c0 | 975 | - WPA security: SL_SEC_TYPE_WPA_WPA2 \n |
dflet | 0:bbe98578d4c0 | 976 | This option takes <b>_u8</b> pointer as a parameter |
dflet | 0:bbe98578d4c0 | 977 | - <b>WLAN_AP_OPT_PASSWORD</b> \n |
dflet | 0:bbe98578d4c0 | 978 | Set Password for for AP mode (for WEP or for WPA): \n |
dflet | 0:bbe98578d4c0 | 979 | Password - for WPA: 8 - 63 characters \n |
dflet | 0:bbe98578d4c0 | 980 | for WEP: 5 / 13 characters (ascii) \n |
dflet | 0:bbe98578d4c0 | 981 | This options takes <b>_u8</b> buffer as parameter |
dflet | 0:bbe98578d4c0 | 982 | - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 983 | - <b>WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE</b> \n |
dflet | 0:bbe98578d4c0 | 984 | Set Country Code for AP mode \n |
dflet | 0:bbe98578d4c0 | 985 | This options takes <b>_u8</b> 2 bytes buffer as parameter |
dflet | 0:bbe98578d4c0 | 986 | - <b>WLAN_GENERAL_PARAM_OPT_STA_TX_POWER</b> \n |
dflet | 0:bbe98578d4c0 | 987 | Set STA mode Tx power level \n |
dflet | 0:bbe98578d4c0 | 988 | Number between 0-15, as dB offset from max power (0 will set MAX power) \n |
dflet | 0:bbe98578d4c0 | 989 | This options takes <b>_u8</b> as parameter |
dflet | 0:bbe98578d4c0 | 990 | - <b>WLAN_GENERAL_PARAM_OPT_AP_TX_POWER</b> |
dflet | 0:bbe98578d4c0 | 991 | Set AP mode Tx power level \n |
dflet | 0:bbe98578d4c0 | 992 | Number between 0-15, as dB offset from max power (0 will set MAX power) \n |
dflet | 0:bbe98578d4c0 | 993 | This options takes <b>_u8</b> as parameter |
dflet | 0:bbe98578d4c0 | 994 | - <b>WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT</b> |
dflet | 0:bbe98578d4c0 | 995 | Set Info Element for AP mode. \n |
dflet | 0:bbe98578d4c0 | 996 | The Application can set up to MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED info elements per Role (AP / P2P GO). \n |
dflet | 0:bbe98578d4c0 | 997 | To delete an info element use the relevant index and length = 0. \n |
dflet | 0:bbe98578d4c0 | 998 | The Application can set up to MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED to the same role. \n |
dflet | 0:bbe98578d4c0 | 999 | However, for AP - no more than INFO_ELEMENT_MAX_TOTAL_LENGTH_AP bytes can be stored for all info elements. \n |
dflet | 0:bbe98578d4c0 | 1000 | For P2P GO - no more than INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO bytes can be stored for all info elements. \n |
dflet | 0:bbe98578d4c0 | 1001 | This option takes sl_protocol_WlanSetInfoElement_t as parameter |
dflet | 0:bbe98578d4c0 | 1002 | - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 1003 | - <b>WLAN_P2P_OPT_DEV_TYPE</b> \n |
dflet | 0:bbe98578d4c0 | 1004 | Set P2P Device type.Maximum length of 17 characters. Device type is published under P2P I.E, \n |
dflet | 0:bbe98578d4c0 | 1005 | allows to make devices easier to recognize. \n |
dflet | 0:bbe98578d4c0 | 1006 | In case no device type is set, the default type is "1-0050F204-1" \n |
dflet | 0:bbe98578d4c0 | 1007 | This options takes <b>_u8</b> buffer as parameter |
dflet | 0:bbe98578d4c0 | 1008 | - <b>WLAN_P2P_OPT_CHANNEL_N_REGS</b> \n |
dflet | 0:bbe98578d4c0 | 1009 | Set P2P Channels. \n |
dflet | 0:bbe98578d4c0 | 1010 | listen channel (either 1/6/11 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1011 | listen regulatory class (81 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1012 | oper channel (either 1/6/11 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1013 | oper regulatory class (81 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1014 | listen channel and regulatory class will determine the device listen channel during p2p find listen phase \n |
dflet | 0:bbe98578d4c0 | 1015 | oper channel and regulatory class will determine the operating channel preferred by this device (in case it is group owner this will be the operating channel) \n |
dflet | 0:bbe98578d4c0 | 1016 | channels should be one of the social channels (1/6/11). In case no listen/oper channel selected, a random 1/6/11 will be selected. |
dflet | 0:bbe98578d4c0 | 1017 | This option takes pointer to <b>_u8[4]</b> as parameter |
dflet | 0:bbe98578d4c0 | 1018 | |
dflet | 0:bbe98578d4c0 | 1019 | \param[in] ConfigLen - configurations len |
dflet | 0:bbe98578d4c0 | 1020 | |
dflet | 0:bbe98578d4c0 | 1021 | \param[in] pValues - configurations values |
dflet | 0:bbe98578d4c0 | 1022 | |
dflet | 0:bbe98578d4c0 | 1023 | \sa |
dflet | 0:bbe98578d4c0 | 1024 | \note |
dflet | 0:bbe98578d4c0 | 1025 | \warning |
dflet | 0:bbe98578d4c0 | 1026 | \par Examples: |
dflet | 0:bbe98578d4c0 | 1027 | \par |
dflet | 0:bbe98578d4c0 | 1028 | <b> WLAN_AP_OPT_SSID: </b> |
dflet | 0:bbe98578d4c0 | 1029 | \code |
dflet | 0:bbe98578d4c0 | 1030 | _u8 str[33]; |
dflet | 0:bbe98578d4c0 | 1031 | memset(str, 0, 33); |
dflet | 0:bbe98578d4c0 | 1032 | memcpy(str, ssid, len); // ssid string of 32 characters |
dflet | 0:bbe98578d4c0 | 1033 | sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SSID, strlen(ssid), str); |
dflet | 0:bbe98578d4c0 | 1034 | \endcode |
dflet | 0:bbe98578d4c0 | 1035 | \par |
dflet | 0:bbe98578d4c0 | 1036 | <b> WLAN_AP_OPT_CHANNEL: </b> |
dflet | 0:bbe98578d4c0 | 1037 | \code |
dflet | 0:bbe98578d4c0 | 1038 | _u8 val = channel; |
dflet | 0:bbe98578d4c0 | 1039 | sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_CHANNEL, 1, (_u8 *)&val); |
dflet | 0:bbe98578d4c0 | 1040 | \endcode |
dflet | 0:bbe98578d4c0 | 1041 | \par |
dflet | 0:bbe98578d4c0 | 1042 | <b> WLAN_AP_OPT_HIDDEN_SSID: </b> |
dflet | 0:bbe98578d4c0 | 1043 | \code |
dflet | 0:bbe98578d4c0 | 1044 | _u8 val = hidden; |
dflet | 0:bbe98578d4c0 | 1045 | sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_HIDDEN_SSID, 1, (_u8 *)&val); |
dflet | 0:bbe98578d4c0 | 1046 | \endcode |
dflet | 0:bbe98578d4c0 | 1047 | \par |
dflet | 0:bbe98578d4c0 | 1048 | <b> WLAN_AP_OPT_SECURITY_TYPE: </b> |
dflet | 0:bbe98578d4c0 | 1049 | \code |
dflet | 0:bbe98578d4c0 | 1050 | _u8 val = SL_SEC_TYPE_WPA_WPA2; |
dflet | 0:bbe98578d4c0 | 1051 | sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SECURITY_TYPE, 1, (_u8 *)&val); |
dflet | 0:bbe98578d4c0 | 1052 | \endcode |
dflet | 0:bbe98578d4c0 | 1053 | \par |
dflet | 0:bbe98578d4c0 | 1054 | <b> WLAN_AP_OPT_PASSWORD: </b> |
dflet | 0:bbe98578d4c0 | 1055 | \code |
dflet | 0:bbe98578d4c0 | 1056 | _u8 str[65]; |
dflet | 0:bbe98578d4c0 | 1057 | _u16 len = strlen(password); |
dflet | 0:bbe98578d4c0 | 1058 | memset(str, 0, 65); |
dflet | 0:bbe98578d4c0 | 1059 | memcpy(str, password, len); |
dflet | 0:bbe98578d4c0 | 1060 | sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_PASSWORD, len, (_u8 *)str); |
dflet | 0:bbe98578d4c0 | 1061 | \endcode |
dflet | 0:bbe98578d4c0 | 1062 | \par |
dflet | 0:bbe98578d4c0 | 1063 | <b> WLAN_GENERAL_PARAM_OPT_STA_TX_POWER: </b> |
dflet | 0:bbe98578d4c0 | 1064 | \code |
dflet | 0:bbe98578d4c0 | 1065 | _u8 stapower=(_u8)power; |
dflet | 0:bbe98578d4c0 | 1066 | sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_STA_TX_POWER,1,(_u8 *)&stapower); |
dflet | 0:bbe98578d4c0 | 1067 | \endcode |
dflet | 0:bbe98578d4c0 | 1068 | \par |
dflet | 0:bbe98578d4c0 | 1069 | <b> WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE: </b> |
dflet | 0:bbe98578d4c0 | 1070 | \code |
dflet | 0:bbe98578d4c0 | 1071 | _u8* str = (_u8 *) country; // string of 2 characters. i.e. - "US" |
dflet | 0:bbe98578d4c0 | 1072 | sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE, 2, str); |
dflet | 0:bbe98578d4c0 | 1073 | \endcode |
dflet | 0:bbe98578d4c0 | 1074 | \par |
dflet | 0:bbe98578d4c0 | 1075 | <b> WLAN_GENERAL_PARAM_OPT_AP_TX_POWER: </b> |
dflet | 0:bbe98578d4c0 | 1076 | \code |
dflet | 0:bbe98578d4c0 | 1077 | _u8 appower=(_u8)power; |
dflet | 0:bbe98578d4c0 | 1078 | sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_AP_TX_POWER,1,(_u8 *)&appower); |
dflet | 0:bbe98578d4c0 | 1079 | \endcode |
dflet | 0:bbe98578d4c0 | 1080 | \par |
dflet | 0:bbe98578d4c0 | 1081 | <b> WLAN_P2P_OPT_DEV_TYPE: </b> |
dflet | 0:bbe98578d4c0 | 1082 | \code |
dflet | 0:bbe98578d4c0 | 1083 | _u8 str[17]; |
dflet | 0:bbe98578d4c0 | 1084 | _u16 len = strlen(device_type); |
dflet | 0:bbe98578d4c0 | 1085 | memset(str, 0, 17); |
dflet | 0:bbe98578d4c0 | 1086 | memcpy(str, device_type, len); |
dflet | 0:bbe98578d4c0 | 1087 | sl_WlanSet(SL_WLAN_CFG_P2P_PARAM_ID, WLAN_P2P_OPT_DEV_TYPE, len, str); |
dflet | 0:bbe98578d4c0 | 1088 | \endcode |
dflet | 0:bbe98578d4c0 | 1089 | \par |
dflet | 0:bbe98578d4c0 | 1090 | <b> WLAN_P2P_OPT_CHANNEL_N_REGS: </b> |
dflet | 0:bbe98578d4c0 | 1091 | \code |
dflet | 0:bbe98578d4c0 | 1092 | _u8 str[4]; |
dflet | 0:bbe98578d4c0 | 1093 | str[0] = (_u8)11; // listen channel |
dflet | 0:bbe98578d4c0 | 1094 | str[1] = (_u8)81; // listen regulatory class |
dflet | 0:bbe98578d4c0 | 1095 | str[2] = (_u8)6; // oper channel |
dflet | 0:bbe98578d4c0 | 1096 | str[3] = (_u8)81; // oper regulatory class |
dflet | 0:bbe98578d4c0 | 1097 | sl_WlanSet(SL_WLAN_CFG_P2P_PARAM_ID, WLAN_P2P_OPT_CHANNEL_N_REGS, 4, str); |
dflet | 0:bbe98578d4c0 | 1098 | \endcode |
dflet | 0:bbe98578d4c0 | 1099 | \par |
dflet | 0:bbe98578d4c0 | 1100 | <b> WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT: </b> |
dflet | 0:bbe98578d4c0 | 1101 | \code |
dflet | 0:bbe98578d4c0 | 1102 | sl_protocol_WlanSetInfoElement_t infoele; |
dflet | 0:bbe98578d4c0 | 1103 | infoele.index = Index; // Index of the info element. range: 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED |
dflet | 0:bbe98578d4c0 | 1104 | infoele.role = Role; // INFO_ELEMENT_AP_ROLE (0) or INFO_ELEMENT_P2P_GO_ROLE (1) |
dflet | 0:bbe98578d4c0 | 1105 | infoele.ie.id = Id; // Info element ID. if INFO_ELEMENT_DEFAULT_ID (0) is set, ID will be set to 221. |
dflet | 0:bbe98578d4c0 | 1106 | // Organization unique ID. If all 3 bytes are zero - it will be replaced with 08,00,28. |
dflet | 0:bbe98578d4c0 | 1107 | infoele.ie.oui[0] = Oui0; // Organization unique ID first Byte |
dflet | 0:bbe98578d4c0 | 1108 | infoele.ie.oui[1] = Oui1; // Organization unique ID second Byte |
dflet | 0:bbe98578d4c0 | 1109 | infoele.ie.oui[2] = Oui2; // Organization unique ID third Byte |
dflet | 0:bbe98578d4c0 | 1110 | infoele.ie.length = Len; // Length of the info element. must be smaller than 253 bytes |
dflet | 0:bbe98578d4c0 | 1111 | memset(infoele.ie.data, 0, INFO_ELEMENT_MAX_SIZE); |
dflet | 0:bbe98578d4c0 | 1112 | if ( Len <= INFO_ELEMENT_MAX_SIZE ) |
dflet | 0:bbe98578d4c0 | 1113 | { |
dflet | 0:bbe98578d4c0 | 1114 | memcpy(infoele.ie.data, IE, Len); // Info element. length of the info element is [0-252] |
dflet | 0:bbe98578d4c0 | 1115 | sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT,sizeof(sl_protocol_WlanSetInfoElement_t),(_u8* ) &infoele); |
dflet | 0:bbe98578d4c0 | 1116 | } |
dflet | 0:bbe98578d4c0 | 1117 | sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT,sizeof(sl_protocol_WlanSetInfoElement_t),(_u8* ) &infoele); |
dflet | 0:bbe98578d4c0 | 1118 | \endcode |
dflet | 0:bbe98578d4c0 | 1119 | |
dflet | 0:bbe98578d4c0 | 1120 | */ |
dflet | 0:bbe98578d4c0 | 1121 | #if _SL_INCLUDE_FUNC(sl_WlanSet) |
dflet | 0:bbe98578d4c0 | 1122 | _i16 sl_WlanSet(_u16 ConfigId ,_u16 ConfigOpt,_u16 ConfigLen, _u8 *pValues); |
dflet | 0:bbe98578d4c0 | 1123 | #endif |
dflet | 0:bbe98578d4c0 | 1124 | |
dflet | 0:bbe98578d4c0 | 1125 | /*! |
dflet | 0:bbe98578d4c0 | 1126 | \brief Internal function for getting WLAN configurations |
dflet | 0:bbe98578d4c0 | 1127 | |
dflet | 0:bbe98578d4c0 | 1128 | \return On success, zero is returned. On error, -1 is |
dflet | 0:bbe98578d4c0 | 1129 | returned |
dflet | 0:bbe98578d4c0 | 1130 | |
dflet | 0:bbe98578d4c0 | 1131 | \param[in] ConfigId - configuration id |
dflet | 0:bbe98578d4c0 | 1132 | - <b>SL_WLAN_CFG_AP_ID</b> |
dflet | 0:bbe98578d4c0 | 1133 | - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 1134 | - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 1135 | |
dflet | 0:bbe98578d4c0 | 1136 | \param[out] pConfigOpt - get configurations option |
dflet | 0:bbe98578d4c0 | 1137 | - <b>SL_WLAN_CFG_AP_ID</b> |
dflet | 0:bbe98578d4c0 | 1138 | - <b>WLAN_AP_OPT_SSID</b> \n |
dflet | 0:bbe98578d4c0 | 1139 | Get SSID for AP mode. \n |
dflet | 0:bbe98578d4c0 | 1140 | Get up to 32 characters of SSID \n |
dflet | 0:bbe98578d4c0 | 1141 | This options takes <b>_u8</b> as parameter |
dflet | 0:bbe98578d4c0 | 1142 | - <b>WLAN_AP_OPT_CHANNEL</b> \n |
dflet | 0:bbe98578d4c0 | 1143 | Get channel for AP mode. \n |
dflet | 0:bbe98578d4c0 | 1144 | This option takes <b>_u8</b> as a parameter |
dflet | 0:bbe98578d4c0 | 1145 | - <b>WLAN_AP_OPT_HIDDEN_SSID</b> \n |
dflet | 0:bbe98578d4c0 | 1146 | Get Hidden SSID Mode for AP mode.Hidden options: \n |
dflet | 0:bbe98578d4c0 | 1147 | 0: disabled \n |
dflet | 0:bbe98578d4c0 | 1148 | 1: Send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID \n |
dflet | 0:bbe98578d4c0 | 1149 | 2: Clear SSID (ASCII 0), but keep the original length (this may be required with some \n |
dflet | 0:bbe98578d4c0 | 1150 | clients that do not support empty SSID) and ignore probe requests for broadcast SSID \n |
dflet | 0:bbe98578d4c0 | 1151 | This option takes <b>_u8</b> as a parameter |
dflet | 0:bbe98578d4c0 | 1152 | - <b>WLAN_AP_OPT_SECURITY_TYPE</b> \n |
dflet | 0:bbe98578d4c0 | 1153 | Get Security type for AP mode. Security options are: |
dflet | 0:bbe98578d4c0 | 1154 | - Open security: SL_SEC_TYPE_OPEN |
dflet | 0:bbe98578d4c0 | 1155 | - WEP security: SL_SEC_TYPE_WEP |
dflet | 0:bbe98578d4c0 | 1156 | - WPA security: SL_SEC_TYPE_WPA_WPA2 \n |
dflet | 0:bbe98578d4c0 | 1157 | This option takes <b>_u8</b> as a parameter |
dflet | 0:bbe98578d4c0 | 1158 | - <b>WLAN_AP_OPT_PASSWORD</b> \n |
dflet | 0:bbe98578d4c0 | 1159 | Get Password for for AP mode (for WEP or for WPA): \n |
dflet | 0:bbe98578d4c0 | 1160 | Returns password - string, fills up to 64 characters. \n |
dflet | 0:bbe98578d4c0 | 1161 | This options takes <b>_u8</b> buffer as parameter |
dflet | 0:bbe98578d4c0 | 1162 | - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 1163 | - <b> WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS </b> \n |
dflet | 0:bbe98578d4c0 | 1164 | Get scan parameters. |
dflet | 0:bbe98578d4c0 | 1165 | This option uses slWlanScanParamCommand_t as parameter |
dflet | 0:bbe98578d4c0 | 1166 | - <b>WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE</b> \n |
dflet | 0:bbe98578d4c0 | 1167 | Get Country Code for AP mode \n |
dflet | 0:bbe98578d4c0 | 1168 | This options takes <b>_u8</b> buffer as parameter |
dflet | 0:bbe98578d4c0 | 1169 | - <b>WLAN_GENERAL_PARAM_OPT_STA_TX_POWER</b> \n |
dflet | 0:bbe98578d4c0 | 1170 | Get STA mode Tx power level \n |
dflet | 0:bbe98578d4c0 | 1171 | Number between 0-15, as dB offset from max power (0 indicates MAX power) \n |
dflet | 0:bbe98578d4c0 | 1172 | This options takes <b>_u8</b> as parameter |
dflet | 0:bbe98578d4c0 | 1173 | - <b>WLAN_GENERAL_PARAM_OPT_AP_TX_POWER</b> |
dflet | 0:bbe98578d4c0 | 1174 | Get AP mode Tx power level \n |
dflet | 0:bbe98578d4c0 | 1175 | Number between 0-15, as dB offset from max power (0 indicates MAX power) \n |
dflet | 0:bbe98578d4c0 | 1176 | This options takes <b>_u8</b> as parameter |
dflet | 0:bbe98578d4c0 | 1177 | - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> |
dflet | 0:bbe98578d4c0 | 1178 | - <b>WLAN_P2P_OPT_CHANNEL_N_REGS</b> \n |
dflet | 0:bbe98578d4c0 | 1179 | Get P2P Channels. \n |
dflet | 0:bbe98578d4c0 | 1180 | listen channel (either 1/6/11 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1181 | listen regulatory class (81 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1182 | oper channel (either 1/6/11 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1183 | oper regulatory class (81 for 2.4GHz) \n |
dflet | 0:bbe98578d4c0 | 1184 | listen channel and regulatory class will determine the device listen channel during p2p find listen phase \n |
dflet | 0:bbe98578d4c0 | 1185 | oper channel and regulatory class will determine the operating channel preferred by this device (in case it is group owner this will be the operating channel) \n |
dflet | 0:bbe98578d4c0 | 1186 | channels should be one of the social channels (1/6/11). In case no listen/oper channel selected, a random 1/6/11 will be selected. \n |
dflet | 0:bbe98578d4c0 | 1187 | This option takes pointer to <b>_u8[4]</b> as parameter |
dflet | 0:bbe98578d4c0 | 1188 | |
dflet | 0:bbe98578d4c0 | 1189 | \param[out] pConfigLen - The length of the allocated memory as input, when the |
dflet | 0:bbe98578d4c0 | 1190 | function complete, the value of this parameter would be |
dflet | 0:bbe98578d4c0 | 1191 | the len that actually read from the device. |
dflet | 0:bbe98578d4c0 | 1192 | If the device return length that is longer from the input |
dflet | 0:bbe98578d4c0 | 1193 | value, the function will cut the end of the returned structure |
dflet | 0:bbe98578d4c0 | 1194 | and will return SL_ESMALLBUF. |
dflet | 0:bbe98578d4c0 | 1195 | |
dflet | 0:bbe98578d4c0 | 1196 | |
dflet | 0:bbe98578d4c0 | 1197 | \param[out] pValues - get configurations values |
dflet | 0:bbe98578d4c0 | 1198 | |
dflet | 0:bbe98578d4c0 | 1199 | \sa sl_WlanSet |
dflet | 0:bbe98578d4c0 | 1200 | |
dflet | 0:bbe98578d4c0 | 1201 | \note |
dflet | 0:bbe98578d4c0 | 1202 | |
dflet | 0:bbe98578d4c0 | 1203 | \warning |
dflet | 0:bbe98578d4c0 | 1204 | |
dflet | 0:bbe98578d4c0 | 1205 | \par Examples: |
dflet | 0:bbe98578d4c0 | 1206 | \par |
dflet | 0:bbe98578d4c0 | 1207 | <b> WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS: </b> |
dflet | 0:bbe98578d4c0 | 1208 | \code |
dflet | 0:bbe98578d4c0 | 1209 | slWlanScanParamCommand_t ScanParamConfig; |
dflet | 0:bbe98578d4c0 | 1210 | _u16 Option = WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS; |
dflet | 0:bbe98578d4c0 | 1211 | _u16 OptionLen = sizeof(slWlanScanParamCommand_t); |
dflet | 0:bbe98578d4c0 | 1212 | sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&ScanParamConfig); |
dflet | 0:bbe98578d4c0 | 1213 | \endcode |
dflet | 0:bbe98578d4c0 | 1214 | \par |
dflet | 0:bbe98578d4c0 | 1215 | <b> WLAN_GENERAL_PARAM_OPT_AP_TX_POWER: </b> |
dflet | 0:bbe98578d4c0 | 1216 | \code |
dflet | 0:bbe98578d4c0 | 1217 | _i16 TXPower = 0; |
dflet | 0:bbe98578d4c0 | 1218 | _u16 Option = WLAN_GENERAL_PARAM_OPT_AP_TX_POWER; |
dflet | 0:bbe98578d4c0 | 1219 | _u16 OptionLen = sizeof(_i16); |
dflet | 0:bbe98578d4c0 | 1220 | sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&TXPower); |
dflet | 0:bbe98578d4c0 | 1221 | \endcode |
dflet | 0:bbe98578d4c0 | 1222 | \par |
dflet | 0:bbe98578d4c0 | 1223 | <b> WLAN_GENERAL_PARAM_OPT_STA_TX_POWER: </b> |
dflet | 0:bbe98578d4c0 | 1224 | \code |
dflet | 0:bbe98578d4c0 | 1225 | _i16 TXPower = 0; |
dflet | 0:bbe98578d4c0 | 1226 | _u16 Option = WLAN_GENERAL_PARAM_OPT_STA_TX_POWER; |
dflet | 0:bbe98578d4c0 | 1227 | _u16 OptionLen = sizeof(_i16); |
dflet | 0:bbe98578d4c0 | 1228 | |
dflet | 0:bbe98578d4c0 | 1229 | sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&TXPower); |
dflet | 0:bbe98578d4c0 | 1230 | \endcode |
dflet | 0:bbe98578d4c0 | 1231 | \par |
dflet | 0:bbe98578d4c0 | 1232 | <b> WLAN_P2P_OPT_DEV_TYPE: </b> |
dflet | 0:bbe98578d4c0 | 1233 | \code |
dflet | 0:bbe98578d4c0 | 1234 | _i8 device_type[18]; |
dflet | 0:bbe98578d4c0 | 1235 | _u16 len = 18; |
dflet | 0:bbe98578d4c0 | 1236 | _u16 config_opt = WLAN_P2P_OPT_DEV_TYPE; |
dflet | 0:bbe98578d4c0 | 1237 | sl_WlanGet(SL_WLAN_CFG_P2P_PARAM_ID, &config_opt , &len, (_u8* )device_type); |
dflet | 0:bbe98578d4c0 | 1238 | \endcode |
dflet | 0:bbe98578d4c0 | 1239 | \par |
dflet | 0:bbe98578d4c0 | 1240 | <b> WLAN_AP_OPT_SSID: </b> |
dflet | 0:bbe98578d4c0 | 1241 | \code |
dflet | 0:bbe98578d4c0 | 1242 | _i8 ssid[32]; |
dflet | 0:bbe98578d4c0 | 1243 | _u16 len = 32; |
dflet | 0:bbe98578d4c0 | 1244 | _u16 config_opt = WLAN_AP_OPT_SSID; |
dflet | 0:bbe98578d4c0 | 1245 | sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt , &len, (_u8* )ssid); |
dflet | 0:bbe98578d4c0 | 1246 | \endcode |
dflet | 0:bbe98578d4c0 | 1247 | \par |
dflet | 0:bbe98578d4c0 | 1248 | <b> WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE: </b> |
dflet | 0:bbe98578d4c0 | 1249 | \code |
dflet | 0:bbe98578d4c0 | 1250 | _i8 country[3]; |
dflet | 0:bbe98578d4c0 | 1251 | _u16 len = 3; |
dflet | 0:bbe98578d4c0 | 1252 | _u16 config_opt = WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE; |
dflet | 0:bbe98578d4c0 | 1253 | sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID, &config_opt, &len, (_u8* )country); |
dflet | 0:bbe98578d4c0 | 1254 | \endcode |
dflet | 0:bbe98578d4c0 | 1255 | \par |
dflet | 0:bbe98578d4c0 | 1256 | <b> WLAN_AP_OPT_CHANNEL: </b> |
dflet | 0:bbe98578d4c0 | 1257 | \code |
dflet | 0:bbe98578d4c0 | 1258 | _i8 channel; |
dflet | 0:bbe98578d4c0 | 1259 | _u16 len = 1; |
dflet | 0:bbe98578d4c0 | 1260 | _u16 config_opt = WLAN_AP_OPT_CHANNEL; |
dflet | 0:bbe98578d4c0 | 1261 | sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&channel); |
dflet | 0:bbe98578d4c0 | 1262 | \endcode |
dflet | 0:bbe98578d4c0 | 1263 | \par |
dflet | 0:bbe98578d4c0 | 1264 | <b> WLAN_AP_OPT_HIDDEN_SSID: </b> |
dflet | 0:bbe98578d4c0 | 1265 | \code |
dflet | 0:bbe98578d4c0 | 1266 | _u8 hidden; |
dflet | 0:bbe98578d4c0 | 1267 | _u16 len = 1; |
dflet | 0:bbe98578d4c0 | 1268 | _u16 config_opt = WLAN_AP_OPT_HIDDEN_SSID; |
dflet | 0:bbe98578d4c0 | 1269 | sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&hidden); |
dflet | 0:bbe98578d4c0 | 1270 | \endcode |
dflet | 0:bbe98578d4c0 | 1271 | \par |
dflet | 0:bbe98578d4c0 | 1272 | <b> WLAN_AP_OPT_SECURITY_TYPE: </b> |
dflet | 0:bbe98578d4c0 | 1273 | \code |
dflet | 0:bbe98578d4c0 | 1274 | _u8 sec_type; |
dflet | 0:bbe98578d4c0 | 1275 | _u16 len = 1; |
dflet | 0:bbe98578d4c0 | 1276 | _u16 config_opt = WLAN_AP_OPT_SECURITY_TYPE; |
dflet | 0:bbe98578d4c0 | 1277 | sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&sec_type); |
dflet | 0:bbe98578d4c0 | 1278 | \endcode |
dflet | 0:bbe98578d4c0 | 1279 | \par |
dflet | 0:bbe98578d4c0 | 1280 | <b> WLAN_AP_OPT_PASSWORD: </b> |
dflet | 0:bbe98578d4c0 | 1281 | \code |
dflet | 0:bbe98578d4c0 | 1282 | _u8 password[64]; |
dflet | 0:bbe98578d4c0 | 1283 | _u16 len = 64; |
dflet | 0:bbe98578d4c0 | 1284 | memset(password,0,64); |
dflet | 0:bbe98578d4c0 | 1285 | _u16 config_opt = WLAN_AP_OPT_PASSWORD; |
dflet | 0:bbe98578d4c0 | 1286 | sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )password); |
dflet | 0:bbe98578d4c0 | 1287 | |
dflet | 0:bbe98578d4c0 | 1288 | \endcode |
dflet | 0:bbe98578d4c0 | 1289 | \par |
dflet | 0:bbe98578d4c0 | 1290 | <b> WLAN_P2P_OPT_CHANNEL_N_REGS: </b> |
dflet | 0:bbe98578d4c0 | 1291 | \code |
dflet | 0:bbe98578d4c0 | 1292 | _u16 listen_channel,listen_reg,oper_channel,oper_reg; |
dflet | 0:bbe98578d4c0 | 1293 | _u16 len = 4; |
dflet | 0:bbe98578d4c0 | 1294 | _u16 config_opt = WLAN_P2P_OPT_CHANNEL_N_REGS; |
dflet | 0:bbe98578d4c0 | 1295 | _u8 channel_n_regs[4]; |
dflet | 0:bbe98578d4c0 | 1296 | sl_WlanGet(SL_WLAN_CFG_P2P_PARAM_ID, &config_opt, &len, (_u8* )channel_n_regs); |
dflet | 0:bbe98578d4c0 | 1297 | listen_channel = channel_n_regs[0]; |
dflet | 0:bbe98578d4c0 | 1298 | listen_reg = channel_n_regs[1]; |
dflet | 0:bbe98578d4c0 | 1299 | oper_channel = channel_n_regs[2]; |
dflet | 0:bbe98578d4c0 | 1300 | oper_reg = channel_n_regs[3]; |
dflet | 0:bbe98578d4c0 | 1301 | \endcode |
dflet | 0:bbe98578d4c0 | 1302 | */ |
dflet | 0:bbe98578d4c0 | 1303 | |
dflet | 0:bbe98578d4c0 | 1304 | #if _SL_INCLUDE_FUNC(sl_WlanGet) |
dflet | 0:bbe98578d4c0 | 1305 | _i16 sl_WlanGet(_u16 ConfigId, _u16 *pConfigOpt,_u16 *pConfigLen, _u8 *pValues); |
dflet | 0:bbe98578d4c0 | 1306 | #endif |
dflet | 0:bbe98578d4c0 | 1307 | /*! |
dflet | 0:bbe98578d4c0 | 1308 | |
dflet | 0:bbe98578d4c0 | 1309 | Close the Doxygen group. |
dflet | 0:bbe98578d4c0 | 1310 | @} |
dflet | 0:bbe98578d4c0 | 1311 | |
dflet | 0:bbe98578d4c0 | 1312 | */ |
dflet | 0:bbe98578d4c0 | 1313 | |
dflet | 0:bbe98578d4c0 | 1314 | |
dflet | 0:bbe98578d4c0 | 1315 | #ifdef __cplusplus |
dflet | 0:bbe98578d4c0 | 1316 | } |
dflet | 0:bbe98578d4c0 | 1317 | #endif /* __cplusplus */ |
dflet | 0:bbe98578d4c0 | 1318 | |
dflet | 0:bbe98578d4c0 | 1319 | #endif /* __WLAN_H__ */ |
dflet | 0:bbe98578d4c0 | 1320 | |
dflet | 0:bbe98578d4c0 | 1321 |