David Fletcher
/
cc3100_test
TI's CC3100 host driver and demo. Experimental and a work in progress.
Embed:
(wiki syntax)
Show/hide line numbers
cc3100_wlan.h
00001 /* 00002 * wlan.h - CC31xx/CC32xx Host Driver Implementation 00003 * 00004 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ 00005 * 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 00014 * Redistributions in binary form must reproduce the above copyright 00015 * notice, this list of conditions and the following disclaimer in the 00016 * documentation and/or other materials provided with the 00017 * distribution. 00018 * 00019 * Neither the name of Texas Instruments Incorporated nor the names of 00020 * its contributors may be used to endorse or promote products derived 00021 * from this software without specific prior written permission. 00022 * 00023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00024 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00025 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00026 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00027 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00028 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00029 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00030 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00031 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00032 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 */ 00036 00037 #ifndef __WLAN_H__ 00038 #define __WLAN_H__ 00039 00040 /*****************************************************************************/ 00041 /* Include files */ 00042 /*****************************************************************************/ 00043 #include "cc3100_simplelink.h" 00044 00045 00046 #ifdef __cplusplus 00047 extern "C" { 00048 #endif 00049 00050 00051 /*****************************************************************************/ 00052 /* Macro declarations */ 00053 /*****************************************************************************/ 00054 00055 /*! 00056 00057 \addtogroup wlan 00058 @{ 00059 00060 */ 00061 00062 #define SL_BSSID_LENGTH (6) 00063 #define MAXIMAL_SSID_LENGTH (32) 00064 00065 #define NUM_OF_RATE_INDEXES (20) 00066 #define SIZE_OF_RSSI_HISTOGRAM (6) 00067 00068 /* WLAN Disconnect Reason Codes */ 00069 #define SL_DISCONNECT_RESERVED_0 (0) 00070 #define SL_DISCONNECT_UNSPECIFIED_REASON (1) 00071 #define SL_PREVIOUS_AUTHENTICATION_NO_LONGER_VALID (2) 00072 #define SL_DEAUTHENTICATED_BECAUSE_SENDING_STATION_IS_LEAVING (3) 00073 #define SL_DISASSOCIATED_DUE_TO_INACTIVITY (4) 00074 #define SL_DISASSOCIATED_BECAUSE_AP_IS_UNABLE_TO_HANDLE_ALL_CURRENTLY_ASSOCIATED_STATIONS (5) 00075 #define SL_CLASS_2_FRAME_RECEIVED_FROM_NONAUTHENTICATED_STATION (6) 00076 #define SL_CLASS_3_FRAME_RECEIVED_FROM_NONASSOCIATED_STATION (7) 00077 #define SL_DISASSOCIATED_BECAUSE_SENDING_STATION_IS_LEAVING_BSS (8) 00078 #define SL_STATION_REQUESTING_ASSOCIATION_IS_NOT_AUTHENTICATED_WITH_RESPONDING_STATION (9) 00079 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_POWER_CAPABILITY_ELEMENT_IS_UNACCEPTABLE (10) 00080 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_SUPPORTED_CHANNELS_ELEMENT_IS_UNACCEPTABLE (11) 00081 #define SL_DISCONNECT_RESERVED_1 (12) 00082 #define SL_INVALID_INFORMATION_ELEMENT (13) 00083 #define SL_MESSAGE_INTEGRITY_CODE_MIC_FAILURE (14) 00084 #define SL_FOUR_WAY_HANDSHAKE_TIMEOUT (15) 00085 #define SL_GROUP_KEY_HANDSHAKE_TIMEOUT (16) 00086 #define SL_RE_ASSOCIATION_REQUEST_PROBE_RESPONSE_BEACON_FRAME (17) 00087 #define SL_INVALID_GROUP_CIPHER (18) 00088 #define SL_INVALID_PAIRWISE_CIPHER (19) 00089 #define SL_INVALID_AKMP (20) 00090 #define SL_UNSUPPORTED_RSN_INFORMATION_ELEMENT_VERSION (21) 00091 #define SL_INVALID_RSN_INFORMATION_ELEMENT_CAPABILITIES (22) 00092 #define SL_IEEE_802_1X_AUTHENTICATION_FAILED (23) 00093 #define SL_CIPHER_SUITE_REJECTED_BECAUSE_OF_THE_SECURITY_POLICY (24) 00094 #define SL_DISCONNECT_RESERVED_2 (25) 00095 #define SL_DISCONNECT_RESERVED_3 (26) 00096 #define SL_DISCONNECT_RESERVED_4 (27) 00097 #define SL_DISCONNECT_RESERVED_5 (28) 00098 #define SL_DISCONNECT_RESERVED_6 (29) 00099 #define SL_DISCONNECT_RESERVED_7 (30) 00100 #define SL_DISCONNECT_RESERVED_8 (31) 00101 #define SL_DISASSOCIATED_FOR_UNSPECIFIED_QOS_RELATED_REASON (32) 00102 #define SL_DISASSOCIATED_BECAUSE_QAP_LACKS_SUFFICIENT_BANDWIDTH_FOR_THIS_QSTA (33) 00103 #define SL_DISASSOCIATED_BECAUSE_EXCESSIVE_NUMBER_OF_FRAMES_NEED_TO_BE_ACKNOWLEDGED (34) 00104 #define SL_DISASSOCIATED_BECAUSE_QSTA_IS_TRANSMITTING_OUTSIDE_THE_LIMITS_OF_ITS_TXOPS (35) 00105 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_IS_LEAVING_THE_QBSS (36) 00106 #define SL_REQUESTED_FROM_PEER_QSTA_AS_IT_DOES_NO_WANT_TO_USE_THE_MECHANISM (37) 00107 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_RECEIVED_FRAMES_SETUP_IS_REQUIRED (38) 00108 #define SL_REQUESTED_FROM_PEER_QSTA_DUE_TO_TIMEOUT (39) 00109 #define SL_PEER_QSTA_DOES_NOT_SUPPORT_THE_REQUESTED_CIPHER_SUITE (40) 00110 #define SL_CISCO_DEFINED (98) 00111 #define SL_CISCO_DEFINED_1 (99) 00112 #define SL_ROAMING_TRIGGER_NONE (100) 00113 #define SL_ROAMING_TRIGGER_LOW_QUALITY_FOR_BG_SCAN (101) 00114 #define SL_ROAMING_TRIGGER_HIGH_QUALITY_FOR_BG_SCAN (102) 00115 #define SL_ROAMING_TRIGGER_NORMAL_QUALITY_FOR_BG_SCAN (103) 00116 #define SL_ROAMING_TRIGGER_LOW_TX_RATE (104) 00117 #define SL_ROAMING_TRIGGER_LOW_SNR (105) 00118 #define SL_ROAMING_TRIGGER_LOW_QUALITY (106) 00119 #define SL_ROAMING_TRIGGER_TSPEC_REJECTED (107) 00120 #define SL_ROAMING_TRIGGER_MAX_TX_RETRIES (108) 00121 #define SL_ROAMING_TRIGGER_BSS_LOSS (109) 00122 #define SL_ROAMING_TRIGGER_BSS_LOSS_DUE_TO_MAX_TX_RETRY (110) 00123 #define SL_ROAMING_TRIGGER_SWITCH_CHANNEL (111) 00124 #define SL_ROAMING_TRIGGER_AP_DISCONNECT (112) 00125 #define SL_ROAMING_TRIGGER_SECURITY_ATTACK (113) 00126 #define SL_ROAMING_TRIGGER_MAX (114) 00127 #define SL_USER_INITIATED_DISCONNECTION (200) 00128 00129 /* Wlan error codes */ 00130 #define SL_ERROR_KEY_ERROR (-3) 00131 #define SL_ERROR_INVALID_ROLE (-71) 00132 #define SL_ERROR_INVALID_SECURITY_TYPE (-84) 00133 #define SL_ERROR_PASSPHRASE_TOO_LONG (-85) 00134 #define SL_ERROR_WPS_NO_PIN_OR_WRONG_PIN_LEN (-87) 00135 #define SL_ERROR_EAP_WRONG_METHOD (-88) 00136 #define SL_ERROR_PASSWORD_ERROR (-89) 00137 #define SL_ERROR_EAP_ANONYMOUS_LEN_ERROR (-90) 00138 #define SL_ERROR_SSID_LEN_ERROR (-91) 00139 #define SL_ERROR_USER_ID_LEN_ERROR (-92) 00140 #define SL_ERROR_ILLEGAL_WEP_KEY_INDEX (-95) 00141 #define SL_ERROR_INVALID_DWELL_TIME_VALUES (-96) 00142 #define SL_ERROR_INVALID_POLICY_TYPE (-97) 00143 #define SL_ERROR_PM_POLICY_INVALID_OPTION (-98) 00144 #define SL_ERROR_PM_POLICY_INVALID_PARAMS (-99) 00145 #define SL_ERROR_WIFI_ALREADY_DISCONNECTED (-129) 00146 #define SL_ERROR_WIFI_NOT_CONNECTED (-59) 00147 00148 00149 00150 #define SL_SEC_TYPE_OPEN (0) 00151 #define SL_SEC_TYPE_WEP (1) 00152 #define SL_SEC_TYPE_WPA (2) /* deprecated */ 00153 #define SL_SEC_TYPE_WPA_WPA2 (2) 00154 #define SL_SEC_TYPE_WPS_PBC (3) 00155 #define SL_SEC_TYPE_WPS_PIN (4) 00156 #define SL_SEC_TYPE_WPA_ENT (5) 00157 #define SL_SEC_TYPE_P2P_PBC (6) 00158 #define SL_SEC_TYPE_P2P_PIN_KEYPAD (7) 00159 #define SL_SEC_TYPE_P2P_PIN_DISPLAY (8) 00160 #define SL_SEC_TYPE_P2P_PIN_AUTO (9) /* NOT Supported yet */ 00161 00162 00163 00164 #define SL_SCAN_SEC_TYPE_OPEN (0) 00165 #define SL_SCAN_SEC_TYPE_WEP (1) 00166 #define SL_SCAN_SEC_TYPE_WPA (2) 00167 #define SL_SCAN_SEC_TYPE_WPA2 (3) 00168 00169 00170 00171 #define TLS (0x1) 00172 #define MSCHAP (0x0) 00173 #define PSK (0x2) 00174 #define TTLS (0x10) 00175 #define PEAP0 (0x20) 00176 #define PEAP1 (0x40) 00177 #define FAST (0x80) 00178 00179 #define FAST_AUTH_PROVISIONING (0x02) 00180 #define FAST_UNAUTH_PROVISIONING (0x01) 00181 #define FAST_NO_PROVISIONING (0x00) 00182 00183 #define EAPMETHOD_PHASE2_SHIFT (8) 00184 #define EAPMETHOD_PAIRWISE_CIPHER_SHIFT (19) 00185 #define EAPMETHOD_GROUP_CIPHER_SHIFT (27) 00186 00187 #define WPA_CIPHER_CCMP (0x1) 00188 #define WPA_CIPHER_TKIP (0x2) 00189 #define CC31XX_DEFAULT_CIPHER (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP) 00190 00191 #define EAPMETHOD(phase1,phase2,pairwise_cipher,group_cipher) \ 00192 ((phase1) | \ 00193 ((phase2) << EAPMETHOD_PHASE2_SHIFT ) |\ 00194 ((_u32)(pairwise_cipher) << EAPMETHOD_PAIRWISE_CIPHER_SHIFT ) |\ 00195 ((_u32)(group_cipher) << EAPMETHOD_GROUP_CIPHER_SHIFT )) 00196 00197 /* phase1 phase2 pairwise_cipher group_cipher */ 00198 #define SL_ENT_EAP_METHOD_TLS EAPMETHOD(TLS , 0 , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00199 #define SL_ENT_EAP_METHOD_TTLS_TLS EAPMETHOD(TTLS , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00200 #define SL_ENT_EAP_METHOD_TTLS_MSCHAPv2 EAPMETHOD(TTLS , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00201 #define SL_ENT_EAP_METHOD_TTLS_PSK EAPMETHOD(TTLS , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00202 #define SL_ENT_EAP_METHOD_PEAP0_TLS EAPMETHOD(PEAP0 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00203 #define SL_ENT_EAP_METHOD_PEAP0_MSCHAPv2 EAPMETHOD(PEAP0 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00204 #define SL_ENT_EAP_METHOD_PEAP0_PSK EAPMETHOD(PEAP0 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00205 #define SL_ENT_EAP_METHOD_PEAP1_TLS EAPMETHOD(PEAP1 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00206 #define SL_ENT_EAP_METHOD_PEAP1_MSCHAPv2 EAPMETHOD(PEAP1 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00207 #define SL_ENT_EAP_METHOD_PEAP1_PSK EAPMETHOD(PEAP1 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00208 #define SL_ENT_EAP_METHOD_FAST_AUTH_PROVISIONING EAPMETHOD(FAST , FAST_AUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00209 #define SL_ENT_EAP_METHOD_FAST_UNAUTH_PROVISIONING EAPMETHOD(FAST , FAST_UNAUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00210 #define SL_ENT_EAP_METHOD_FAST_NO_PROVISIONING EAPMETHOD(FAST , FAST_NO_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER) 00211 00212 #define SL_LONG_PREAMBLE (0) 00213 #define SL_SHORT_PREAMBLE (1) 00214 00215 #define SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT (0) 00216 #define SL_RAW_RF_TX_PARAMS_RATE_SHIFT (6) 00217 #define SL_RAW_RF_TX_PARAMS_POWER_SHIFT (11) 00218 #define SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT (15) 00219 00220 #define SL_RAW_RF_TX_PARAMS(chan,rate,power,preamble) \ 00221 ((chan << SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT) | \ 00222 (rate << SL_RAW_RF_TX_PARAMS_RATE_SHIFT) | \ 00223 (power << SL_RAW_RF_TX_PARAMS_POWER_SHIFT) | \ 00224 (preamble << SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT)) 00225 00226 00227 /* wlan config application IDs */ 00228 #define SL_WLAN_CFG_AP_ID (0) 00229 #define SL_WLAN_CFG_GENERAL_PARAM_ID (1) 00230 #define SL_WLAN_CFG_P2P_PARAM_ID (2) 00231 00232 /* wlan AP Config set/get options */ 00233 #define WLAN_AP_OPT_SSID (0) 00234 #define WLAN_AP_OPT_CHANNEL (3) 00235 #define WLAN_AP_OPT_HIDDEN_SSID (4) 00236 #define WLAN_AP_OPT_SECURITY_TYPE (6) 00237 #define WLAN_AP_OPT_PASSWORD (7) 00238 #define WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE (9) 00239 #define WLAN_GENERAL_PARAM_OPT_STA_TX_POWER (10) 00240 #define WLAN_GENERAL_PARAM_OPT_AP_TX_POWER (11) 00241 00242 #define WLAN_P2P_OPT_DEV_NAME (12) 00243 #define WLAN_P2P_OPT_DEV_TYPE (13) 00244 #define WLAN_P2P_OPT_CHANNEL_N_REGS (14) 00245 #define WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT (16) 00246 #define WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS (18) /* change the scan channels and RSSI threshold using this configuration option */ 00247 00248 /* SmartConfig CIPHER options */ 00249 #define SMART_CONFIG_CIPHER_SFLASH (0) /* password is not delivered by the application. The Simple Manager should */ 00250 /* check if the keys are stored in the Flash. */ 00251 #define SMART_CONFIG_CIPHER_AES (1) /* AES (other types are not supported) */ 00252 #define SMART_CONFIG_CIPHER_NONE (0xFF) /* do not check in the flash */ 00253 00254 00255 #define SL_POLICY_CONNECTION (0x10) 00256 #define SL_POLICY_SCAN (0x20) 00257 #define SL_POLICY_PM (0x30) 00258 #define SL_POLICY_P2P (0x40) 00259 00260 #define VAL_2_MASK(position,value) ((1 & (value))<<(position)) 00261 #define MASK_2_VAL(position,mask) (((1 << position) & (mask)) >> (position)) 00262 00263 #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)) 00264 #define SL_SCAN_POLICY_EN(policy) (MASK_2_VAL(0,policy)) 00265 #define SL_SCAN_POLICY(Enable) (VAL_2_MASK(0,Enable)) 00266 00267 00268 #define SL_NORMAL_POLICY (0) 00269 #define SL_LOW_LATENCY_POLICY (1) 00270 #define SL_LOW_POWER_POLICY (2) 00271 #define SL_ALWAYS_ON_POLICY (3) 00272 #define SL_LONG_SLEEP_INTERVAL_POLICY (4) 00273 00274 #define SL_P2P_ROLE_NEGOTIATE (3) 00275 #define SL_P2P_ROLE_GROUP_OWNER (15) 00276 #define SL_P2P_ROLE_CLIENT (0) 00277 00278 #define SL_P2P_NEG_INITIATOR_ACTIVE (0) 00279 #define SL_P2P_NEG_INITIATOR_PASSIVE (1) 00280 #define SL_P2P_NEG_INITIATOR_RAND_BACKOFF (2) 00281 00282 #define POLICY_VAL_2_OPTIONS(position,mask,policy) ((mask & policy) << position ) 00283 00284 #define SL_P2P_POLICY(p2pNegType,p2pNegInitiator) (POLICY_VAL_2_OPTIONS(0,0xF,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? SL_P2P_ROLE_GROUP_OWNER : p2pNegType)) | \ 00285 POLICY_VAL_2_OPTIONS(4,0x1,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? 1:0)) | \ 00286 POLICY_VAL_2_OPTIONS(5,0x3, p2pNegInitiator)) 00287 00288 00289 /* Info elements */ 00290 00291 #define INFO_ELEMENT_DEFAULT_ID (0) /* 221 will be used */ 00292 00293 /* info element size is up to 252 bytes (+ 3 bytes of OUI). */ 00294 #define INFO_ELEMENT_MAX_SIZE (252) 00295 00296 /* For AP - the total length of all info elements is 300 bytes (for example - 4 info elements of 75 bytes each) */ 00297 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_AP (300) 00298 /* For P2P - the total length of all info elements is 150 bytes (for example - 4 info elements of 40 bytes each) */ 00299 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO (160) 00300 00301 #define INFO_ELEMENT_AP_ROLE (0) 00302 #define INFO_ELEMENT_P2P_GO_ROLE (1) 00303 00304 /* we support up to 4 info elements per Role. */ 00305 #define MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED (4) 00306 00307 #define INFO_ELEMENT_DEFAULT_OUI_0 (0x08) 00308 #define INFO_ELEMENT_DEFAULT_OUI_1 (0x00) 00309 #define INFO_ELEMENT_DEFAULT_OUI_2 (0x28) 00310 00311 #define INFO_ELEMENT_DEFAULT_OUI (0x000000) /* 08, 00, 28 will be used */ 00312 00313 /*****************************************************************************/ 00314 /* Structure/Enum declarations */ 00315 /*****************************************************************************/ 00316 00317 typedef enum 00318 { 00319 RATE_1M = 1, 00320 RATE_2M = 2, 00321 RATE_5_5M = 3, 00322 RATE_11M = 4, 00323 RATE_6M = 6, 00324 RATE_9M = 7, 00325 RATE_12M = 8, 00326 RATE_18M = 9, 00327 RATE_24M = 10, 00328 RATE_36M = 11, 00329 RATE_48M = 12, 00330 RATE_54M = 13, 00331 RATE_MCS_0 = 14, 00332 RATE_MCS_1 = 15, 00333 RATE_MCS_2 = 16, 00334 RATE_MCS_3 = 17, 00335 RATE_MCS_4 = 18, 00336 RATE_MCS_5 = 19, 00337 RATE_MCS_6 = 20, 00338 RATE_MCS_7 = 21, 00339 MAX_NUM_RATES = 0xFF 00340 }SlRateIndex_e; 00341 00342 typedef enum { 00343 DEV_PW_DEFAULT=0, 00344 DEV_PW_PIN_KEYPAD=1, 00345 DEV_PW_PUSH_BUTTON=4, 00346 DEV_PW_PIN_DISPLAY=5 00347 } sl_p2p_dev_password_method; 00348 00349 00350 typedef struct 00351 { 00352 _u32 status; 00353 _u32 ssid_len; 00354 _u8 ssid[32]; 00355 _u32 private_token_len; 00356 _u8 private_token[32]; 00357 }slSmartConfigStartAsyncResponse_t; 00358 00359 typedef struct 00360 { 00361 _u16 status; 00362 _u16 padding; 00363 }slSmartConfigStopAsyncResponse_t; 00364 00365 typedef struct 00366 { 00367 _u16 status; 00368 _u16 padding; 00369 }slWlanConnFailureAsyncResponse_t; 00370 00371 typedef struct 00372 { 00373 _u8 connection_type;/* 0-STA,3-P2P_CL */ 00374 _u8 ssid_len; 00375 _u8 ssid_name[32]; 00376 _u8 go_peer_device_name_len; 00377 _u8 go_peer_device_name[32]; 00378 _u8 bssid[6]; 00379 _u8 reason_code; 00380 _u8 padding[2]; 00381 } slWlanConnectAsyncResponse_t; 00382 00383 typedef struct 00384 { 00385 _u8 go_peer_device_name[32]; 00386 _u8 mac[6]; 00387 _u8 go_peer_device_name_len; 00388 _u8 wps_dev_password_id; 00389 _u8 own_ssid[32];/* relevant for event sta-connected only */ 00390 _u8 own_ssid_len;/* relevant for event sta-connected only */ 00391 _u8 padding[3]; 00392 }slPeerInfoAsyncResponse_t; 00393 00394 00395 typedef union 00396 { 00397 slSmartConfigStartAsyncResponse_t smartConfigStartResponse; /*SL_WLAN_SMART_CONFIG_COMPLETE_EVENT*/ 00398 slSmartConfigStopAsyncResponse_t smartConfigStopResponse; /*SL_WLAN_SMART_CONFIG_STOP_EVENT */ 00399 slPeerInfoAsyncResponse_t APModeStaConnected; /* SL_WLAN_STA_CONNECTED_EVENT - relevant only in AP mode - holds information regarding a new STA connection */ 00400 slPeerInfoAsyncResponse_t APModestaDisconnected; /* SL_WLAN_STA_DISCONNECTED_EVENT - relevant only in AP mode - holds information regarding a STA disconnection */ 00401 slWlanConnectAsyncResponse_t STAandP2PModeWlanConnected; /* SL_WLAN_CONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a new connection */ 00402 slWlanConnectAsyncResponse_t STAandP2PModeDisconnected; /* SL_WLAN_DISCONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a disconnection */ 00403 slPeerInfoAsyncResponse_t P2PModeDevFound; /* SL_WLAN_P2P_DEV_FOUND_EVENT - relevant only in P2P mode */ 00404 slPeerInfoAsyncResponse_t P2PModeNegReqReceived; /* SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT - relevant only in P2P mode */ 00405 slWlanConnFailureAsyncResponse_t P2PModewlanConnectionFailure; /* SL_WLAN_CONNECTION_FAILED_EVENT - relevant only in P2P mode */ 00406 00407 } SlWlanEventData_u; 00408 00409 typedef struct 00410 { 00411 _u32 Event; 00412 SlWlanEventData_u EventData; 00413 } SlWlanEvent_t; 00414 00415 00416 typedef struct 00417 { 00418 _u32 ReceivedValidPacketsNumber; /* sum of the packets that been received OK (include filtered) */ 00419 _u32 ReceivedFcsErrorPacketsNumber; /* sum of the packets that been dropped due to FCS error */ 00420 _u32 ReceivedPlcpErrorPacketsNumber; /* sum of the packets that been dropped due to PLCP error */ 00421 _i16 AvarageDataCtrlRssi; /* average RSSI for all valid data packets received */ 00422 _i16 AvarageMgMntRssi; /* average RSSI for all valid management packets received */ 00423 _u16 RateHistogram[NUM_OF_RATE_INDEXES]; /* rate histogram for all valid packets received */ 00424 _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 */ 00425 _u32 StartTimeStamp; /* the time stamp started collecting the statistics in uSec */ 00426 _u32 GetTimeStamp; /* the time stamp called the get statistics command */ 00427 }SlGetRxStatResponse_t; 00428 00429 00430 typedef struct 00431 { 00432 _u8 ssid[MAXIMAL_SSID_LENGTH]; 00433 _u8 ssid_len; 00434 _u8 sec_type; 00435 _u8 bssid[SL_BSSID_LENGTH]; 00436 _i8 rssi; 00437 _i8 reserved[3]; 00438 }Sl_WlanNetworkEntry_t; 00439 00440 00441 typedef struct 00442 { 00443 _u8 Type; 00444 _i8* Key; 00445 _u8 KeyLen; 00446 }SlSecParams_t; 00447 00448 typedef struct 00449 { 00450 _i8* User; 00451 _u8 UserLen; 00452 _i8* AnonUser; 00453 _u8 AnonUserLen; 00454 _u8 CertIndex; /* not supported */ 00455 _u32 EapMethod; 00456 }SlSecParamsExt_t; 00457 00458 typedef struct 00459 { 00460 _i8 User[32]; 00461 _u8 UserLen; 00462 _i8 AnonUser[32]; 00463 _u8 AnonUserLen; 00464 _u8 CertIndex; //not supported 00465 _u32 EapMethod; 00466 }SlGetSecParamsExt_t; 00467 00468 typedef enum 00469 { 00470 ROLE_STA = 0, 00471 ROLE_AP = 2, 00472 ROLE_P2P = 3, 00473 ROLE_STA_ERR = -1, /* Failure to load MAC/PHY in STA role */ 00474 ROLE_AP_ERR = -ROLE_AP, /* Failure to load MAC/PHY in AP role */ 00475 ROLE_P2P_ERR = -ROLE_P2P /* Failure to load MAC/PHY in P2P role */ 00476 }SlWlanMode_t; 00477 00478 typedef struct 00479 { 00480 _u32 G_Channels_mask; 00481 _i32 rssiThershold; 00482 }slWlanScanParamCommand_t; 00483 00484 00485 typedef struct 00486 { 00487 _u8 id; 00488 _u8 oui[3]; 00489 _u16 length; 00490 _u8 data[252]; 00491 } sl_protocol_InfoElement_t; 00492 00493 typedef struct 00494 { 00495 _u8 index; /* 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED */ 00496 _u8 role; /* bit0: AP = 0, GO = 1 */ 00497 sl_protocol_InfoElement_t ie; 00498 } sl_protocol_WlanSetInfoElement_t; 00499 00500 00501 /*****************************************************************************/ 00502 /* Function prototypes */ 00503 /*****************************************************************************/ 00504 00505 00506 /*! 00507 \brief Connect to wlan network as a station 00508 00509 \param[in] sec_type security types options: \n 00510 - SL_SEC_TYPE_OPEN 00511 - SL_SEC_TYPE_WEP 00512 - SL_SEC_TYPE_WPA_WPA2 00513 - SL_SEC_TYPE_WPA_ENT 00514 - SL_SEC_TYPE_WPS_PBC 00515 - SL_SEC_TYPE_WPS_PIN 00516 00517 \param[in] pName up to 32 bytes in case of STA the name is the SSID of the Access Point 00518 \param[in] NameLen name length 00519 \param[in] pMacAddr 6 bytes for MAC address 00520 \param[in] pSecParams Security parameters (use NULL key for SL_SEC_TYPE_OPEN) 00521 \param[in] pSecExtParams Enterprise parameters (set NULL in case Enterprise parameters is not in use) 00522 00523 \return On success, zero is returned. On error, negative is returned 00524 In case error number (-71) is returned, it indicates a connection was activated while the device it running in AP role 00525 00526 \sa sl_WlanDisconnect 00527 \note belongs to \ref ext_api 00528 \warning In this version only single enterprise mode could be used 00529 SL_SEC_TYPE_WPA is a deprecated definition, the new definition is SL_SEC_TYPE_WPA_WPA2 00530 */ 00531 #if _SL_INCLUDE_FUNC(sl_WlanConnect) 00532 _i16 sl_WlanConnect(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams); 00533 #endif 00534 00535 /*! 00536 \brief wlan disconnect 00537 00538 Disconnect connection 00539 00540 \return 0 disconnected done, other already disconnected 00541 00542 \sa sl_WlanConnect 00543 \note belongs to \ref ext_api 00544 \warning 00545 */ 00546 #if _SL_INCLUDE_FUNC(sl_WlanDisconnect) 00547 _i16 sl_WlanDisconnect(void); 00548 #endif 00549 00550 /*! 00551 \brief add profile 00552 00553 When auto start is enabled, the device connects to a 00554 station from the profiles table. Up to 7 profiles are 00555 supported. If several profiles configured the device chose 00556 the highest priority profile, within each priority group, 00557 device will chose profile based on security policy, signal 00558 strength, etc parameters. 00559 00560 00561 \param[in] pName up to 32 bytes in case of STA the name is the 00562 SSID of the Access Point 00563 in case of P2P the name is the remote device name 00564 \param[in] NameLen name length 00565 \param[in] pMacAddr 6 bytes for MAC address 00566 \param[in] pSecParams Security parameters - security type 00567 (SL_SEC_TYPE_OPEN,SL_SEC_TYPE_WEP,SL_SEC_TYPE_WPA_WPA2, 00568 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 00569 in case of p2p security type pin the key refers to pin code 00570 \param[in] pSecExtParams Enterprise parameters - identity, identity length, 00571 Anonymous, Anonymous length, CertIndex (not supported, 00572 certificates need to be placed in a specific file ID), 00573 EapMethod.Use NULL in case Enterprise parameters is not in use 00574 00575 \param[in] Priority profile priority. Lowest priority: 0 00576 \param[in] Options Not supported 00577 00578 \return On success, profile stored index is returned. On error, negative value is returned 00579 00580 \sa sl_WlanProfileGet , sl_WlanProfileDel 00581 \note belongs to \ref ext_api 00582 \warning Only one Enterprise profile is supported. 00583 Please Note that in case of adding an existing profile (compared by pName,pMACAddr and security type) 00584 the old profile will be deleted and the same index will be returned. 00585 SL_SEC_TYPE_WPA is a deprecated definition, the new definition is SL_SEC_TYPE_WPA_WPA2 00586 00587 */ 00588 #if _SL_INCLUDE_FUNC(sl_WlanProfileAdd) 00589 _i16 sl_WlanProfileAdd(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams, _u32 Priority, _u32 Options); 00590 #endif 00591 00592 /*! 00593 \brief get profile 00594 00595 read profile from the device 00596 00597 \param[in] Index profile stored index, if index does not exists 00598 error is return 00599 \param[out] pName up to 32 bytes, in case of sta mode the name of the Access Point 00600 in case of p2p mode the name of the Remote Device 00601 \param[out] pNameLen name length 00602 \param[out] pMacAddr 6 bytes for MAC address 00603 \param[out] pSecParams security parameters - security type 00604 (LAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or 00605 WLAN_SEC_WPA2, WLAN_SEC_P2P_PBC, WLAN_SEC_P2P_PIN_KEYPAD or WLAN_SEC_P2P_DISPLAY), key and key length are not 00606 in case of p2p security type pin the key refers to pin code 00607 return due to security reasons. 00608 \param[out] pSecExtParams enterprise parameters - identity, identity 00609 length, Anonymous, Anonymous length 00610 CertIndex (not supported), EapMethod. 00611 \param[out] Priority profile priority 00612 00613 \return On success, Profile security type is returned (0 or positive number). On error, -1 is 00614 returned 00615 00616 \sa sl_WlanProfileAdd , sl_WlanProfileDel 00617 \note belongs to \ref ext_api 00618 \warning 00619 */ 00620 #if _SL_INCLUDE_FUNC(sl_WlanProfileGet) 00621 _i16 sl_WlanProfileGet(_i16 Index,_i8* pName, _i16 *pNameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams, SlGetSecParamsExt_t* pSecExtParams, _u32 *pPriority); 00622 #endif 00623 00624 /*! 00625 \brief Delete WLAN profile 00626 00627 Delete WLAN profile 00628 00629 \param[in] index number of profile to delete.Possible values are 0 to 6. 00630 Index value 255 will delete all saved profiles 00631 00632 \return On success, zero is returned. On error, -1 is 00633 returned 00634 00635 \sa sl_WlanProfileAdd , sl_WlanProfileGet 00636 \note belongs to \ref ext_api 00637 \warning 00638 */ 00639 #if _SL_INCLUDE_FUNC(sl_WlanProfileDel) 00640 _i16 sl_WlanProfileDel(_i16 Index); 00641 #endif 00642 00643 /*! 00644 \brief Set policy values 00645 00646 \param[in] Type Type of policy to be modified. The Options are:\n 00647 - SL_POLICY_CONNECTION 00648 - SL_POLICY_SCAN 00649 - SL_POLICY_PM 00650 - SL_POLICY_P2P 00651 \param[in] Policy The option value which depends on action type 00652 \param[in] pVal An optional value pointer 00653 \param[in] ValLen An optional value length, in bytes 00654 \return On success, zero is returned. On error, -1 is 00655 returned 00656 \sa sl_WlanPolicyGet 00657 \note belongs to \ref ext_api 00658 \warning 00659 \par 00660 SL_POLICY_CONNECTION type defines three options available to connect the CC31xx device to the AP: \n 00661 00662 - 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 00663 To set this option, use: \n 00664 <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(1,0,0,0,0),NULL,0) </b> 00665 - If Fast Connect is set, the CC31xx device tries to establish a fast connection to AP. \n 00666 To set this option, use: \n 00667 <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,1,0,0,0),NULL,0) </b> 00668 - (relevant for P2P mode only) - If Any P2P is set, CC31xx/CC32xx device tries to automatically connect to the first P2P device available, \n 00669 supporting push button only. To set this option, use: \n 00670 <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,1,0),NULL,0) </b> 00671 - For auto smart config upon restart (any command from Host will end this state) use: \n 00672 <b> sl_WlanPolicySet(SL_POLICY_CONNECTION,SL_CONNECTION_POLICY(0,0,0,0,1),NULL,0) </b> \n 00673 The options above could be combined to a single action, if more than one action is required. \n 00674 \par 00675 SL_POLICY_SCAN defines system scan time interval in case there is no connection. Default interval is 10 minutes. \n 00676 After settings scan interval, an immediate scan is activated. The next scan will be based on the interval settings. \n 00677 - For example, setting scan interval to 1 minute interval use: \n 00678 _u32 intervalInSeconds = 60; \n 00679 #define SL_SCAN_ENABLE 1 \n<b> 00680 sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_ENABLE, (_u8 *)&intervalInSeconds,sizeof(intervalInSeconds)); </b>\n 00681 00682 - For example, disable scan: \n 00683 #define SL_SCAN_DISABLE 0 \n<b> 00684 sl_WlanPolicySet(SL_POLICY_SCAN,SL_SCAN_DISABLE,0,0); </b>\n 00685 \par 00686 SL_POLICY_PM defines a power management policy for Station mode only: 00687 - For setting normal power management (default) policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_NORMAL_POLICY, NULL,0) </b> 00688 - For setting low latency power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_LOW_LATENCY_POLICY, NULL,0) </b> 00689 - For setting low power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_LOW_POWER_POLICY, NULL,0) </b> 00690 - For setting always on power management policy use: <b> sl_WlanPolicySet(SL_POLICY_PM , SL_ALWAYS_ON_POLICY, NULL,0) </b> 00691 - For setting Long Sleep Interval policy use: \n 00692 _u16 PolicyBuff[4] = {0,0,800,0}; // PolicyBuff[2] is max sleep time in mSec \n<b> 00693 sl_WlanPolicySet(SL_POLICY_PM , SL_LONG_SLEEP_INTERVAL_POLICY, (_u8*)PolicyBuff,sizeof(PolicyBuff)); </b>\n 00694 00695 SL_POLICY_P2P defines p2p negotiation policy parameters for P2P role: 00696 - To set intent negotiation value, set on of the following: 00697 SL_P2P_ROLE_NEGOTIATE - intent 3 00698 SL_P2P_ROLE_GROUP_OWNER - intent 15 00699 SL_P2P_ROLE_CLIENT - intent 0 00700 - To set negotiation initiator value (initiator policy of first negotiation action frame), set on of the following: 00701 SL_P2P_NEG_INITIATOR_ACTIVE 00702 SL_P2P_NEG_INITIATOR_PASSIVE 00703 SL_P2P_NEG_INITIATOR_RAND_BACKOFF 00704 For example: \n 00705 <b>sl_WlanPolicySet(SL_POLICY_P2P, SL_P2P_POLICY(SL_P2P_ROLE_NEGOTIATE,SL_P2P_NEG_INITIATOR_RAND_BACKOFF),NULL,0) </b> 00706 00707 */ 00708 #if _SL_INCLUDE_FUNC(sl_WlanPolicySet) 00709 _i16 sl_WlanPolicySet(_u8 Type , const _u8 Policy, _u8 *pVal,_u8 ValLen); 00710 #endif 00711 /*! 00712 \brief get policy values 00713 00714 \param[in] Type SL_POLICY_CONNECTION, SL_POLICY_SCAN, SL_POLICY_PM,SL_POLICY_P2P \n 00715 00716 \param[in] Policy argument may be set to any value \n 00717 00718 \param[out] The returned values, depends on each policy type, will be stored in the allocated buffer pointed by pVal 00719 with a maximum buffer length set by the calling function and pointed to by argument *pValLen 00720 00721 \return On success, zero is returned. On error, -1 is returned 00722 00723 \sa sl_WlanPolicySet 00724 00725 \note belongs to \ref ext_api 00726 00727 \warning The value pointed by the argument *pValLen should be set to a value different from 0 and 00728 greater than the buffer length returned from the SL device. Otherwise, an error will be returned. 00729 00730 */ 00731 #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet) 00732 _i16 sl_WlanPolicyGet(_u8 Type , _u8 Policy,_u8 *pVal,_u8 *pValLen); 00733 #endif 00734 /*! 00735 \brief Gets the WLAN scan operation results 00736 00737 Gets scan results , gets entry from scan result table 00738 00739 \param[in] Index - Starting index identifier (range 0-19) for getting scan results 00740 \param[in] Count - How many entries to fetch. Max is (20-"Index"). 00741 \param[out] pEntries - pointer to an allocated Sl_WlanNetworkEntry_t. 00742 the number of array items should match "Count" 00743 sec_type: SL_SCAN_SEC_TYPE_OPEN, SL_SCAN_SEC_TYPE_WEP, SL_SCAN_SEC_TYPE_WPA or SL_SCAN_SEC_TYPE_WPA2 00744 00745 00746 \return Number of valid networks list items 00747 00748 \sa 00749 \note belongs to \ref ext_api 00750 \warning This command do not initiate any active scanning action 00751 \par Example: 00752 \code An example of fetching max 10 results: 00753 00754 Sl_WlanNetworkEntry_t netEntries[10]; 00755 _i16 resultsCount = sl_WlanGetNetworkList(0,10,&netEntries[0]); 00756 for(i=0; i< resultsCount; i++) 00757 { 00758 printf("%s\n",netEntries[i].ssid); 00759 } 00760 \endcode 00761 */ 00762 #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList) 00763 _i16 sl_WlanGetNetworkList(_u8 Index, _u8 Count, Sl_WlanNetworkEntry_t *pEntries); 00764 #endif 00765 00766 /*! 00767 \brief Start collecting wlan RX statistics, for unlimited time. 00768 00769 \return On success, zero is returned. On error, -1 is returned 00770 00771 \sa sl_WlanRxStatStop sl_WlanRxStatGet 00772 \note belongs to \ref ext_api 00773 \warning This API is deprecated and should be removed for next release 00774 \par Example: 00775 \code Getting wlan RX statistics: 00776 00777 void RxStatCollectTwice() 00778 { 00779 SlGetRxStatResponse_t rxStat; 00780 _i16 rawSocket; 00781 _i8 DataFrame[200]; 00782 struct SlTimeval_t timeval; 00783 timeval.tv_sec = 0; // Seconds 00784 timeval.tv_usec = 20000; // Microseconds. 10000 microseconds resolution 00785 00786 sl_WlanRxStatStart(); // set statistics mode 00787 00788 rawSocket = sl_Socket(SL_AF_RF, SL_SOCK_RAW, eChannel); 00789 // set timeout - in case we have no activity for the specified channel 00790 sl_SetSockOpt(rawSocket,SL_SOL_SOCKET,SL_SO_RCVTIMEO, &timeval, sizeof(timeval)); // Enable receive timeout 00791 status = sl_Recv(rawSocket, DataFrame, sizeof(DataFrame), 0); 00792 00793 Sleep(1000); // sleep for 1 sec 00794 sl_WlanRxStatGet(&rxStat,0); // statistics has been cleared upon read 00795 Sleep(1000); // sleep for 1 sec 00796 sl_WlanRxStatGet(&rxStat,0); 00797 00798 } 00799 \endcode 00800 */ 00801 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart) 00802 _i16 sl_WlanRxStatStart(void); 00803 #endif 00804 00805 00806 /*! 00807 \brief Stop collecting wlan RX statistic, (if previous called sl_WlanRxStatStart) 00808 00809 \return On success, zero is returned. On error, -1 is returned 00810 00811 \sa sl_WlanRxStatStart sl_WlanRxStatGet 00812 \note belongs to \ref ext_api 00813 \warning This API is deprecated and should be removed for next release 00814 */ 00815 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop) 00816 _i16 sl_WlanRxStatStop(void); 00817 #endif 00818 00819 00820 /*! 00821 \brief Get wlan RX statistics. upon calling this command, the statistics counters will be cleared. 00822 00823 \param[in] Flags should be 0 ( not applicable right now, will be added the future ) 00824 \param[in] pRxStat a pointer to SlGetRxStatResponse_t filled with Rx statistics results 00825 \return On success, zero is returned. On error, -1 is returned 00826 00827 \sa sl_WlanRxStatStart sl_WlanRxStatStop 00828 \note belongs to \ref ext_api 00829 \warning 00830 */ 00831 #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet) 00832 _i16 sl_WlanRxStatGet(SlGetRxStatResponse_t *pRxStat,_u32 Flags); 00833 #endif 00834 00835 00836 /*! 00837 \brief Stop Smart Config procedure. Once Smart Config will be stopped, 00838 Asynchronous event will be received - SL_OPCODE_WLAN_SMART_CONFIG_STOP_ASYNC_RESPONSE. 00839 00840 \param[in] none 00841 \param[out] none 00842 00843 \return 0 - if Stop Smart Config is about to be executed without errors. 00844 00845 \sa sl_WlanSmartConfigStart 00846 \note belongs to \ref ext_api 00847 \warning This API is deprecated and should be removed for next release 00848 00849 */ 00850 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStop) 00851 _i16 sl_WlanSmartConfigStop(void); 00852 #endif 00853 00854 /*! 00855 \brief Start Smart Config procedure 00856 \par 00857 The target of the procedure is to let the \n 00858 device to gain the network parameters: SSID and Password (if network is secured) \n 00859 and to connect to it once located in the network range. \n 00860 An external application should be used on a device connected to any mobile network. \n 00861 The external application will transmit over the air the network parameters in secured manner.\n 00862 The Password may be decrypted using a Key. \n 00863 The decryption method may be decided in the command or embedded in the Flash. \n 00864 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 00865 Once Smart Config has ended successfully, Asynchronous event will be received - \n 00866 SL_OPCODE_WLAN_SMART_CONFIG_START_ASYNC_RESPONSE. \n 00867 The Event will hold the SSID and an extra field that might have been delivered as well (i.e. - device name) 00868 00869 \param[in] groupIdBitmask - each bit represent a group ID that should be searched. 00870 The Default group ID id BIT_0. 2 more group can be searched 00871 in addition. The range is BIT_0 - BIT_15. 00872 \param[in] chiper - 0: check in flash, 1 - AES, 0xFF - do not check in flash 00873 \param[in] publicKeyLen - public key len (used for the default group ID - BIT_0) 00874 \param[in] group1KeyLen - group ID1 length 00875 \param[in] group2KeyLen - group ID2 length 00876 \param[in] publicKey - public key (used for the default group ID - BIT_0) 00877 \param[in] group1Key - group ID1 key 00878 \param[in] group2Key - group ID2 key 00879 00880 \param[out] none 00881 00882 \return 0 - if Smart Config started successfully. 00883 00884 \sa sl_WlanSmartConfigStop 00885 \note belongs to \ref ext_api 00886 \warning 00887 \par 00888 \code An example of starting smart Config on group ID's 0 + 1 + 2 00889 00890 sl_WlanSmartConfigStart(7, //group ID's (BIT_0 | BIT_1 | BIT_2) 00891 1, //decrypt key by AES method 00892 16, //decryption key length for group ID0 00893 16, //decryption key length for group ID1 00894 16, //decryption key length for group ID2 00895 "Key0Key0Key0Key0", //decryption key for group ID0 00896 "Key1Key1Key1Key1", //decryption key for group ID1 00897 "Key2Key2Key2Key2" //decryption key for group ID2 00898 ); 00899 \endcode 00900 */ 00901 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStart) 00902 _i16 sl_WlanSmartConfigStart(const _u32 groupIdBitmask, 00903 const _u8 cipher, 00904 const _u8 publicKeyLen, 00905 const _u8 group1KeyLen, 00906 const _u8 group2KeyLen, 00907 const _u8* publicKey, 00908 const _u8* group1Key, 00909 const _u8* group2Key); 00910 #endif 00911 00912 00913 /*! 00914 \brief Wlan set mode 00915 00916 Setting WLAN mode 00917 00918 \param[in] mode - WLAN mode to start the CC31xx device. Possible options are: 00919 - ROLE_STA - for WLAN station mode 00920 - ROLE_AP - for WLAN AP mode 00921 - ROLE_P2P -for WLAN P2P mode 00922 \return 0 - if mode was set correctly 00923 \sa sl_Start sl_Stop 00924 \note belongs to \ref ext_api 00925 \warning After setting the mode the system must be restarted for activating the new mode 00926 \par Example: 00927 \code 00928 //Switch from any role to STA: 00929 sl_WlanSetMode(ROLE_STA); 00930 sl_Stop(0); 00931 sl_Start(NULL,NULL,NULL); 00932 \endcode 00933 00934 */ 00935 #if _SL_INCLUDE_FUNC(sl_WlanSetMode) 00936 _i16 sl_WlanSetMode(const _u8 mode); 00937 #endif 00938 00939 00940 /*! 00941 \brief Internal function for setting WLAN configurations 00942 00943 \return On success, zero is returned. On error one of the following error codes returned: 00944 - CONF_ERROR (-1) 00945 - CONF_NVMEM_ACCESS_FAILED (-2) 00946 - CONF_OLD_FILE_VERSION (-3) 00947 - CONF_ERROR_NO_SUCH_COUNTRY_CODE (-4) 00948 00949 00950 \param[in] ConfigId - configuration id 00951 - <b>SL_WLAN_CFG_AP_ID</b> 00952 - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> 00953 - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> 00954 00955 \param[in] ConfigOpt - configurations option 00956 - <b>SL_WLAN_CFG_AP_ID</b> 00957 - <b>WLAN_AP_OPT_SSID</b> \n 00958 Set SSID for AP mode. \n 00959 This options takes <b>_u8</b> buffer as parameter 00960 - <b>WLAN_AP_OPT_CHANNEL</b> \n 00961 Set channel for AP mode. \n 00962 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 00963 This option takes <b>_u8</b> as a parameter 00964 - <b>WLAN_AP_OPT_HIDDEN_SSID</b> \n 00965 Set Hidden SSID Mode for AP mode.Hidden options: \n 00966 0: disabled \n 00967 1: Send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID \n 00968 2: Clear SSID (ASCII 0), but keep the original length (this may be required with some \n 00969 clients that do not support empty SSID) and ignore probe requests for broadcast SSID \n 00970 This option takes <b>_u8</b> as a parameter 00971 - <b>WLAN_AP_OPT_SECURITY_TYPE</b> \n 00972 Set Security type for AP mode. Security options are: 00973 - Open security: SL_SEC_TYPE_OPEN 00974 - WEP security: SL_SEC_TYPE_WEP 00975 - WPA security: SL_SEC_TYPE_WPA_WPA2 \n 00976 This option takes <b>_u8</b> pointer as a parameter 00977 - <b>WLAN_AP_OPT_PASSWORD</b> \n 00978 Set Password for for AP mode (for WEP or for WPA): \n 00979 Password - for WPA: 8 - 63 characters \n 00980 for WEP: 5 / 13 characters (ascii) \n 00981 This options takes <b>_u8</b> buffer as parameter 00982 - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> 00983 - <b>WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE</b> \n 00984 Set Country Code for AP mode \n 00985 This options takes <b>_u8</b> 2 bytes buffer as parameter 00986 - <b>WLAN_GENERAL_PARAM_OPT_STA_TX_POWER</b> \n 00987 Set STA mode Tx power level \n 00988 Number between 0-15, as dB offset from max power (0 will set MAX power) \n 00989 This options takes <b>_u8</b> as parameter 00990 - <b>WLAN_GENERAL_PARAM_OPT_AP_TX_POWER</b> 00991 Set AP mode Tx power level \n 00992 Number between 0-15, as dB offset from max power (0 will set MAX power) \n 00993 This options takes <b>_u8</b> as parameter 00994 - <b>WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT</b> 00995 Set Info Element for AP mode. \n 00996 The Application can set up to MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED info elements per Role (AP / P2P GO). \n 00997 To delete an info element use the relevant index and length = 0. \n 00998 The Application can set up to MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED to the same role. \n 00999 However, for AP - no more than INFO_ELEMENT_MAX_TOTAL_LENGTH_AP bytes can be stored for all info elements. \n 01000 For P2P GO - no more than INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO bytes can be stored for all info elements. \n 01001 This option takes sl_protocol_WlanSetInfoElement_t as parameter 01002 - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> 01003 - <b>WLAN_P2P_OPT_DEV_TYPE</b> \n 01004 Set P2P Device type.Maximum length of 17 characters. Device type is published under P2P I.E, \n 01005 allows to make devices easier to recognize. \n 01006 In case no device type is set, the default type is "1-0050F204-1" \n 01007 This options takes <b>_u8</b> buffer as parameter 01008 - <b>WLAN_P2P_OPT_CHANNEL_N_REGS</b> \n 01009 Set P2P Channels. \n 01010 listen channel (either 1/6/11 for 2.4GHz) \n 01011 listen regulatory class (81 for 2.4GHz) \n 01012 oper channel (either 1/6/11 for 2.4GHz) \n 01013 oper regulatory class (81 for 2.4GHz) \n 01014 listen channel and regulatory class will determine the device listen channel during p2p find listen phase \n 01015 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 01016 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. 01017 This option takes pointer to <b>_u8[4]</b> as parameter 01018 01019 \param[in] ConfigLen - configurations len 01020 01021 \param[in] pValues - configurations values 01022 01023 \sa 01024 \note 01025 \warning 01026 \par Examples: 01027 \par 01028 <b> WLAN_AP_OPT_SSID: </b> 01029 \code 01030 _u8 str[33]; 01031 memset(str, 0, 33); 01032 memcpy(str, ssid, len); // ssid string of 32 characters 01033 sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SSID, strlen(ssid), str); 01034 \endcode 01035 \par 01036 <b> WLAN_AP_OPT_CHANNEL: </b> 01037 \code 01038 _u8 val = channel; 01039 sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_CHANNEL, 1, (_u8 *)&val); 01040 \endcode 01041 \par 01042 <b> WLAN_AP_OPT_HIDDEN_SSID: </b> 01043 \code 01044 _u8 val = hidden; 01045 sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_HIDDEN_SSID, 1, (_u8 *)&val); 01046 \endcode 01047 \par 01048 <b> WLAN_AP_OPT_SECURITY_TYPE: </b> 01049 \code 01050 _u8 val = SL_SEC_TYPE_WPA_WPA2; 01051 sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SECURITY_TYPE, 1, (_u8 *)&val); 01052 \endcode 01053 \par 01054 <b> WLAN_AP_OPT_PASSWORD: </b> 01055 \code 01056 _u8 str[65]; 01057 _u16 len = strlen(password); 01058 memset(str, 0, 65); 01059 memcpy(str, password, len); 01060 sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_PASSWORD, len, (_u8 *)str); 01061 \endcode 01062 \par 01063 <b> WLAN_GENERAL_PARAM_OPT_STA_TX_POWER: </b> 01064 \code 01065 _u8 stapower=(_u8)power; 01066 sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_STA_TX_POWER,1,(_u8 *)&stapower); 01067 \endcode 01068 \par 01069 <b> WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE: </b> 01070 \code 01071 _u8* str = (_u8 *) country; // string of 2 characters. i.e. - "US" 01072 sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE, 2, str); 01073 \endcode 01074 \par 01075 <b> WLAN_GENERAL_PARAM_OPT_AP_TX_POWER: </b> 01076 \code 01077 _u8 appower=(_u8)power; 01078 sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, WLAN_GENERAL_PARAM_OPT_AP_TX_POWER,1,(_u8 *)&appower); 01079 \endcode 01080 \par 01081 <b> WLAN_P2P_OPT_DEV_TYPE: </b> 01082 \code 01083 _u8 str[17]; 01084 _u16 len = strlen(device_type); 01085 memset(str, 0, 17); 01086 memcpy(str, device_type, len); 01087 sl_WlanSet(SL_WLAN_CFG_P2P_PARAM_ID, WLAN_P2P_OPT_DEV_TYPE, len, str); 01088 \endcode 01089 \par 01090 <b> WLAN_P2P_OPT_CHANNEL_N_REGS: </b> 01091 \code 01092 _u8 str[4]; 01093 str[0] = (_u8)11; // listen channel 01094 str[1] = (_u8)81; // listen regulatory class 01095 str[2] = (_u8)6; // oper channel 01096 str[3] = (_u8)81; // oper regulatory class 01097 sl_WlanSet(SL_WLAN_CFG_P2P_PARAM_ID, WLAN_P2P_OPT_CHANNEL_N_REGS, 4, str); 01098 \endcode 01099 \par 01100 <b> WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT: </b> 01101 \code 01102 sl_protocol_WlanSetInfoElement_t infoele; 01103 infoele.index = Index; // Index of the info element. range: 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED 01104 infoele.role = Role; // INFO_ELEMENT_AP_ROLE (0) or INFO_ELEMENT_P2P_GO_ROLE (1) 01105 infoele.ie.id = Id; // Info element ID. if INFO_ELEMENT_DEFAULT_ID (0) is set, ID will be set to 221. 01106 // Organization unique ID. If all 3 bytes are zero - it will be replaced with 08,00,28. 01107 infoele.ie.oui[0] = Oui0; // Organization unique ID first Byte 01108 infoele.ie.oui[1] = Oui1; // Organization unique ID second Byte 01109 infoele.ie.oui[2] = Oui2; // Organization unique ID third Byte 01110 infoele.ie.length = Len; // Length of the info element. must be smaller than 253 bytes 01111 memset(infoele.ie.data, 0, INFO_ELEMENT_MAX_SIZE); 01112 if ( Len <= INFO_ELEMENT_MAX_SIZE ) 01113 { 01114 memcpy(infoele.ie.data, IE, Len); // Info element. length of the info element is [0-252] 01115 sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT,sizeof(sl_protocol_WlanSetInfoElement_t),(_u8* ) &infoele); 01116 } 01117 sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT,sizeof(sl_protocol_WlanSetInfoElement_t),(_u8* ) &infoele); 01118 \endcode 01119 01120 */ 01121 #if _SL_INCLUDE_FUNC(sl_WlanSet) 01122 _i16 sl_WlanSet(_u16 ConfigId ,_u16 ConfigOpt,_u16 ConfigLen, _u8 *pValues); 01123 #endif 01124 01125 /*! 01126 \brief Internal function for getting WLAN configurations 01127 01128 \return On success, zero is returned. On error, -1 is 01129 returned 01130 01131 \param[in] ConfigId - configuration id 01132 - <b>SL_WLAN_CFG_AP_ID</b> 01133 - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> 01134 - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> 01135 01136 \param[out] pConfigOpt - get configurations option 01137 - <b>SL_WLAN_CFG_AP_ID</b> 01138 - <b>WLAN_AP_OPT_SSID</b> \n 01139 Get SSID for AP mode. \n 01140 Get up to 32 characters of SSID \n 01141 This options takes <b>_u8</b> as parameter 01142 - <b>WLAN_AP_OPT_CHANNEL</b> \n 01143 Get channel for AP mode. \n 01144 This option takes <b>_u8</b> as a parameter 01145 - <b>WLAN_AP_OPT_HIDDEN_SSID</b> \n 01146 Get Hidden SSID Mode for AP mode.Hidden options: \n 01147 0: disabled \n 01148 1: Send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID \n 01149 2: Clear SSID (ASCII 0), but keep the original length (this may be required with some \n 01150 clients that do not support empty SSID) and ignore probe requests for broadcast SSID \n 01151 This option takes <b>_u8</b> as a parameter 01152 - <b>WLAN_AP_OPT_SECURITY_TYPE</b> \n 01153 Get Security type for AP mode. Security options are: 01154 - Open security: SL_SEC_TYPE_OPEN 01155 - WEP security: SL_SEC_TYPE_WEP 01156 - WPA security: SL_SEC_TYPE_WPA_WPA2 \n 01157 This option takes <b>_u8</b> as a parameter 01158 - <b>WLAN_AP_OPT_PASSWORD</b> \n 01159 Get Password for for AP mode (for WEP or for WPA): \n 01160 Returns password - string, fills up to 64 characters. \n 01161 This options takes <b>_u8</b> buffer as parameter 01162 - <b>SL_WLAN_CFG_GENERAL_PARAM_ID</b> 01163 - <b> WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS </b> \n 01164 Get scan parameters. 01165 This option uses slWlanScanParamCommand_t as parameter 01166 - <b>WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE</b> \n 01167 Get Country Code for AP mode \n 01168 This options takes <b>_u8</b> buffer as parameter 01169 - <b>WLAN_GENERAL_PARAM_OPT_STA_TX_POWER</b> \n 01170 Get STA mode Tx power level \n 01171 Number between 0-15, as dB offset from max power (0 indicates MAX power) \n 01172 This options takes <b>_u8</b> as parameter 01173 - <b>WLAN_GENERAL_PARAM_OPT_AP_TX_POWER</b> 01174 Get AP mode Tx power level \n 01175 Number between 0-15, as dB offset from max power (0 indicates MAX power) \n 01176 This options takes <b>_u8</b> as parameter 01177 - <b>SL_WLAN_CFG_P2P_PARAM_ID</b> 01178 - <b>WLAN_P2P_OPT_CHANNEL_N_REGS</b> \n 01179 Get P2P Channels. \n 01180 listen channel (either 1/6/11 for 2.4GHz) \n 01181 listen regulatory class (81 for 2.4GHz) \n 01182 oper channel (either 1/6/11 for 2.4GHz) \n 01183 oper regulatory class (81 for 2.4GHz) \n 01184 listen channel and regulatory class will determine the device listen channel during p2p find listen phase \n 01185 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 01186 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 01187 This option takes pointer to <b>_u8[4]</b> as parameter 01188 01189 \param[out] pConfigLen - The length of the allocated memory as input, when the 01190 function complete, the value of this parameter would be 01191 the len that actually read from the device. 01192 If the device return length that is longer from the input 01193 value, the function will cut the end of the returned structure 01194 and will return SL_ESMALLBUF. 01195 01196 01197 \param[out] pValues - get configurations values 01198 01199 \sa sl_WlanSet 01200 01201 \note 01202 01203 \warning 01204 01205 \par Examples: 01206 \par 01207 <b> WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS: </b> 01208 \code 01209 slWlanScanParamCommand_t ScanParamConfig; 01210 _u16 Option = WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS; 01211 _u16 OptionLen = sizeof(slWlanScanParamCommand_t); 01212 sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&ScanParamConfig); 01213 \endcode 01214 \par 01215 <b> WLAN_GENERAL_PARAM_OPT_AP_TX_POWER: </b> 01216 \code 01217 _i16 TXPower = 0; 01218 _u16 Option = WLAN_GENERAL_PARAM_OPT_AP_TX_POWER; 01219 _u16 OptionLen = sizeof(_i16); 01220 sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&TXPower); 01221 \endcode 01222 \par 01223 <b> WLAN_GENERAL_PARAM_OPT_STA_TX_POWER: </b> 01224 \code 01225 _i16 TXPower = 0; 01226 _u16 Option = WLAN_GENERAL_PARAM_OPT_STA_TX_POWER; 01227 _u16 OptionLen = sizeof(_i16); 01228 01229 sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID ,&Option,&OptionLen,(_u8 *)&TXPower); 01230 \endcode 01231 \par 01232 <b> WLAN_P2P_OPT_DEV_TYPE: </b> 01233 \code 01234 _i8 device_type[18]; 01235 _u16 len = 18; 01236 _u16 config_opt = WLAN_P2P_OPT_DEV_TYPE; 01237 sl_WlanGet(SL_WLAN_CFG_P2P_PARAM_ID, &config_opt , &len, (_u8* )device_type); 01238 \endcode 01239 \par 01240 <b> WLAN_AP_OPT_SSID: </b> 01241 \code 01242 _i8 ssid[32]; 01243 _u16 len = 32; 01244 _u16 config_opt = WLAN_AP_OPT_SSID; 01245 sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt , &len, (_u8* )ssid); 01246 \endcode 01247 \par 01248 <b> WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE: </b> 01249 \code 01250 _i8 country[3]; 01251 _u16 len = 3; 01252 _u16 config_opt = WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE; 01253 sl_WlanGet(SL_WLAN_CFG_GENERAL_PARAM_ID, &config_opt, &len, (_u8* )country); 01254 \endcode 01255 \par 01256 <b> WLAN_AP_OPT_CHANNEL: </b> 01257 \code 01258 _i8 channel; 01259 _u16 len = 1; 01260 _u16 config_opt = WLAN_AP_OPT_CHANNEL; 01261 sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&channel); 01262 \endcode 01263 \par 01264 <b> WLAN_AP_OPT_HIDDEN_SSID: </b> 01265 \code 01266 _u8 hidden; 01267 _u16 len = 1; 01268 _u16 config_opt = WLAN_AP_OPT_HIDDEN_SSID; 01269 sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&hidden); 01270 \endcode 01271 \par 01272 <b> WLAN_AP_OPT_SECURITY_TYPE: </b> 01273 \code 01274 _u8 sec_type; 01275 _u16 len = 1; 01276 _u16 config_opt = WLAN_AP_OPT_SECURITY_TYPE; 01277 sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )&sec_type); 01278 \endcode 01279 \par 01280 <b> WLAN_AP_OPT_PASSWORD: </b> 01281 \code 01282 _u8 password[64]; 01283 _u16 len = 64; 01284 memset(password,0,64); 01285 _u16 config_opt = WLAN_AP_OPT_PASSWORD; 01286 sl_WlanGet(SL_WLAN_CFG_AP_ID, &config_opt, &len, (_u8* )password); 01287 01288 \endcode 01289 \par 01290 <b> WLAN_P2P_OPT_CHANNEL_N_REGS: </b> 01291 \code 01292 _u16 listen_channel,listen_reg,oper_channel,oper_reg; 01293 _u16 len = 4; 01294 _u16 config_opt = WLAN_P2P_OPT_CHANNEL_N_REGS; 01295 _u8 channel_n_regs[4]; 01296 sl_WlanGet(SL_WLAN_CFG_P2P_PARAM_ID, &config_opt, &len, (_u8* )channel_n_regs); 01297 listen_channel = channel_n_regs[0]; 01298 listen_reg = channel_n_regs[1]; 01299 oper_channel = channel_n_regs[2]; 01300 oper_reg = channel_n_regs[3]; 01301 \endcode 01302 */ 01303 01304 #if _SL_INCLUDE_FUNC(sl_WlanGet) 01305 _i16 sl_WlanGet(_u16 ConfigId, _u16 *pConfigOpt,_u16 *pConfigLen, _u8 *pValues); 01306 #endif 01307 /*! 01308 01309 Close the Doxygen group. 01310 @} 01311 01312 */ 01313 01314 01315 #ifdef __cplusplus 01316 } 01317 #endif /* __cplusplus */ 01318 01319 #endif /* __WLAN_H__ */ 01320 01321
Generated on Tue Jul 12 2022 22:55:20 by 1.7.2