TI's MQTT Demo with freertos CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Thu Sep 03 14:07:01 2015 +0000
Revision:
0:1e7b5dd9edb4
First commit, it's been hanging around for a while. Updated SPI mode change 1 to 0.

Who changed what in which revision?

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