TI's CC3100. A test demo with very little testing done!

Dependencies:   mbed

Fork of cc3100_Test_Demo2 by 高 杨

Committer:
dflet
Date:
Tue Feb 10 12:09:29 2015 +0000
Revision:
0:e89ba455dbcf
For test only! Not much has been tested, but the 2 demo apps run ok. Alot more work needs to be done!

Who changed what in which revision?

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