Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NVIC_set_all_priorities
Dependents: CC3000_Simple_Socket Wi-Go_IOT_Demo
wlan.h@9:8db50def96e5, 2013-08-15 (annotated)
- Committer:
- frankvnk
- Date:
- Thu Aug 15 10:09:57 2013 +0000
- Revision:
- 9:8db50def96e5
- Parent:
- 8:b48bb4df9319
moved GlobalAssigns.h content to cc3000_common.h
; further code cleanup
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
frankvnk | 0:c44f0314d6ec | 1 | /***************************************************************************** |
frankvnk | 0:c44f0314d6ec | 2 | * |
frankvnk | 0:c44f0314d6ec | 3 | * wlan.h - CC3000 Host Driver Implementation. |
frankvnk | 0:c44f0314d6ec | 4 | * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ |
frankvnk | 0:c44f0314d6ec | 5 | * |
frankvnk | 0:c44f0314d6ec | 6 | * Redistribution and use in source and binary forms, with or without |
frankvnk | 0:c44f0314d6ec | 7 | * modification, are permitted provided that the following conditions |
frankvnk | 0:c44f0314d6ec | 8 | * are met: |
frankvnk | 0:c44f0314d6ec | 9 | * |
frankvnk | 0:c44f0314d6ec | 10 | * Redistributions of source code must retain the above copyright |
frankvnk | 0:c44f0314d6ec | 11 | * notice, this list of conditions and the following disclaimer. |
frankvnk | 0:c44f0314d6ec | 12 | * |
frankvnk | 0:c44f0314d6ec | 13 | * Redistributions in binary form must reproduce the above copyright |
frankvnk | 0:c44f0314d6ec | 14 | * notice, this list of conditions and the following disclaimer in the |
frankvnk | 0:c44f0314d6ec | 15 | * documentation and/or other materials provided with the |
frankvnk | 0:c44f0314d6ec | 16 | * distribution. |
frankvnk | 0:c44f0314d6ec | 17 | * |
frankvnk | 0:c44f0314d6ec | 18 | * Neither the name of Texas Instruments Incorporated nor the names of |
frankvnk | 0:c44f0314d6ec | 19 | * its contributors may be used to endorse or promote products derived |
frankvnk | 0:c44f0314d6ec | 20 | * from this software without specific prior written permission. |
frankvnk | 0:c44f0314d6ec | 21 | * |
frankvnk | 0:c44f0314d6ec | 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
frankvnk | 0:c44f0314d6ec | 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
frankvnk | 0:c44f0314d6ec | 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
frankvnk | 0:c44f0314d6ec | 25 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
frankvnk | 0:c44f0314d6ec | 26 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
frankvnk | 0:c44f0314d6ec | 27 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
frankvnk | 0:c44f0314d6ec | 28 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
frankvnk | 0:c44f0314d6ec | 29 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
frankvnk | 0:c44f0314d6ec | 30 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
frankvnk | 0:c44f0314d6ec | 31 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
frankvnk | 0:c44f0314d6ec | 32 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
frankvnk | 0:c44f0314d6ec | 33 | * |
frankvnk | 0:c44f0314d6ec | 34 | *****************************************************************************/ |
frankvnk | 0:c44f0314d6ec | 35 | #ifndef __WLAN_H__ |
frankvnk | 0:c44f0314d6ec | 36 | #define __WLAN_H__ |
frankvnk | 0:c44f0314d6ec | 37 | |
frankvnk | 0:c44f0314d6ec | 38 | #include "security.h" |
frankvnk | 0:c44f0314d6ec | 39 | |
frankvnk | 5:854f9b13a0f9 | 40 | //***************************************************************************** |
frankvnk | 5:854f9b13a0f9 | 41 | // |
frankvnk | 5:854f9b13a0f9 | 42 | //! \addtogroup wlan |
frankvnk | 5:854f9b13a0f9 | 43 | //! @{ |
frankvnk | 5:854f9b13a0f9 | 44 | // |
frankvnk | 5:854f9b13a0f9 | 45 | //***************************************************************************** |
frankvnk | 5:854f9b13a0f9 | 46 | |
frankvnk | 0:c44f0314d6ec | 47 | /** CC3000 Host driver - WLAN |
frankvnk | 0:c44f0314d6ec | 48 | * |
frankvnk | 0:c44f0314d6ec | 49 | */ |
frankvnk | 4:d8255a5aad46 | 50 | |
frankvnk | 0:c44f0314d6ec | 51 | #ifdef __cplusplus |
frankvnk | 0:c44f0314d6ec | 52 | extern "C" { |
frankvnk | 0:c44f0314d6ec | 53 | #endif |
frankvnk | 0:c44f0314d6ec | 54 | |
frankvnk | 4:d8255a5aad46 | 55 | #define SMART_CONFIG_PROFILE_SIZE 67 // 67 = 32 (max ssid) + 32 (max key) + 1 (SSID length) + 1 (security type) + 1 (key length) |
frankvnk | 4:d8255a5aad46 | 56 | |
frankvnk | 4:d8255a5aad46 | 57 | /* patches type */ |
frankvnk | 4:d8255a5aad46 | 58 | #define PATCHES_HOST_TYPE_WLAN_DRIVER 0x01 |
frankvnk | 4:d8255a5aad46 | 59 | #define PATCHES_HOST_TYPE_WLAN_FW 0x02 |
frankvnk | 4:d8255a5aad46 | 60 | #define PATCHES_HOST_TYPE_BOOTLOADER 0x03 |
frankvnk | 4:d8255a5aad46 | 61 | |
frankvnk | 4:d8255a5aad46 | 62 | #define SL_SET_SCAN_PARAMS_INTERVAL_LIST_SIZE (16) |
frankvnk | 4:d8255a5aad46 | 63 | #define SL_SIMPLE_CONFIG_PREFIX_LENGTH (3) |
frankvnk | 4:d8255a5aad46 | 64 | #define ETH_ALEN (6) |
frankvnk | 4:d8255a5aad46 | 65 | #define MAXIMAL_SSID_LENGTH (32) |
frankvnk | 4:d8255a5aad46 | 66 | |
frankvnk | 4:d8255a5aad46 | 67 | #define SL_PATCHES_REQUEST_DEFAULT (0) |
frankvnk | 4:d8255a5aad46 | 68 | #define SL_PATCHES_REQUEST_FORCE_HOST (1) |
frankvnk | 4:d8255a5aad46 | 69 | #define SL_PATCHES_REQUEST_FORCE_NONE (2) |
frankvnk | 4:d8255a5aad46 | 70 | |
frankvnk | 4:d8255a5aad46 | 71 | |
frankvnk | 4:d8255a5aad46 | 72 | #define WLAN_SEC_UNSEC (0) |
frankvnk | 4:d8255a5aad46 | 73 | #define WLAN_SEC_WEP (1) |
frankvnk | 4:d8255a5aad46 | 74 | #define WLAN_SEC_WPA (2) |
frankvnk | 4:d8255a5aad46 | 75 | #define WLAN_SEC_WPA2 (3) |
frankvnk | 4:d8255a5aad46 | 76 | |
frankvnk | 4:d8255a5aad46 | 77 | |
frankvnk | 4:d8255a5aad46 | 78 | #define WLAN_SL_INIT_START_PARAMS_LEN (1) |
frankvnk | 4:d8255a5aad46 | 79 | #define WLAN_PATCH_PARAMS_LENGTH (8) |
frankvnk | 4:d8255a5aad46 | 80 | #define WLAN_SET_CONNECTION_POLICY_PARAMS_LEN (12) |
frankvnk | 4:d8255a5aad46 | 81 | #define WLAN_DEL_PROFILE_PARAMS_LEN (4) |
frankvnk | 4:d8255a5aad46 | 82 | #define WLAN_SET_MASK_PARAMS_LEN (4) |
frankvnk | 4:d8255a5aad46 | 83 | #define WLAN_SET_SCAN_PARAMS_LEN (100) |
frankvnk | 4:d8255a5aad46 | 84 | #define WLAN_GET_SCAN_RESULTS_PARAMS_LEN (4) |
frankvnk | 4:d8255a5aad46 | 85 | #define WLAN_ADD_PROFILE_NOSEC_PARAM_LEN (24) |
frankvnk | 4:d8255a5aad46 | 86 | #define WLAN_ADD_PROFILE_WEP_PARAM_LEN (36) |
frankvnk | 4:d8255a5aad46 | 87 | #define WLAN_ADD_PROFILE_WPA_PARAM_LEN (44) |
frankvnk | 4:d8255a5aad46 | 88 | #define WLAN_CONNECT_PARAM_LEN (29) |
frankvnk | 4:d8255a5aad46 | 89 | #define WLAN_SMART_CONFIG_START_PARAMS_LEN (4) |
frankvnk | 4:d8255a5aad46 | 90 | |
frankvnk | 4:d8255a5aad46 | 91 | |
frankvnk | 4:d8255a5aad46 | 92 | /** |
frankvnk | 4:d8255a5aad46 | 93 | * Send HCI_CMND_SIMPLE_LINK_START to CC3000 |
frankvnk | 5:854f9b13a0f9 | 94 | * @param usPatchesAvailableAtHost flag to indicate if patches available\n |
frankvnk | 5:854f9b13a0f9 | 95 | * from host or from EEPROM. Due to the \n |
frankvnk | 5:854f9b13a0f9 | 96 | * fact the patches are burn to the EEPROM\n |
frankvnk | 5:854f9b13a0f9 | 97 | * using the patch programmer utility, the \n |
frankvnk | 5:854f9b13a0f9 | 98 | * patches will be available from the EEPROM\n |
frankvnk | 5:854f9b13a0f9 | 99 | * and not from the host.\n |
frankvnk | 4:d8255a5aad46 | 100 | * @return none |
frankvnk | 4:d8255a5aad46 | 101 | */ |
frankvnk | 4:d8255a5aad46 | 102 | static void SimpleLink_Init_Start(unsigned short usPatchesAvailableAtHost); |
frankvnk | 0:c44f0314d6ec | 103 | |
frankvnk | 4:d8255a5aad46 | 104 | /** |
frankvnk | 4:d8255a5aad46 | 105 | * Initialize wlan driver |
frankvnk | 5:854f9b13a0f9 | 106 | * @param sWlanCB Asynchronous events callback. \n |
frankvnk | 5:854f9b13a0f9 | 107 | * 0 no event call back.\n |
frankvnk | 5:854f9b13a0f9 | 108 | * -call back parameters:\n |
frankvnk | 5:854f9b13a0f9 | 109 | * 1) event_type: HCI_EVNT_WLAN_UNSOL_CONNECT connect event,\n |
frankvnk | 5:854f9b13a0f9 | 110 | * HCI_EVNT_WLAN_UNSOL_DISCONNECT disconnect event,\n |
frankvnk | 5:854f9b13a0f9 | 111 | * HCI_EVNT_WLAN_ASYNC_SIMPLE_CONFIG_DONE config done,\n |
frankvnk | 5:854f9b13a0f9 | 112 | * HCI_EVNT_WLAN_UNSOL_DHCP dhcp report, \n |
frankvnk | 5:854f9b13a0f9 | 113 | * HCI_EVNT_WLAN_ASYNC_PING_REPORT ping report OR \n |
frankvnk | 5:854f9b13a0f9 | 114 | * HCI_EVNT_WLAN_KEEPALIVE keepalive.\n |
frankvnk | 5:854f9b13a0f9 | 115 | * 2) data: pointer to extra data that received by the event\n |
frankvnk | 5:854f9b13a0f9 | 116 | * (NULL no data).\n |
frankvnk | 5:854f9b13a0f9 | 117 | * 3) length: data length.\n |
frankvnk | 5:854f9b13a0f9 | 118 | * -Events with extra data:\n |
frankvnk | 5:854f9b13a0f9 | 119 | * HCI_EVNT_WLAN_UNSOL_DHCP: 4 bytes IP, 4 bytes Mask,\n |
frankvnk | 5:854f9b13a0f9 | 120 | * 4 bytes default gateway, 4 bytes DHCP server and 4 bytes\n |
frankvnk | 5:854f9b13a0f9 | 121 | * for DNS server.\n |
frankvnk | 5:854f9b13a0f9 | 122 | * HCI_EVNT_WLAN_ASYNC_PING_REPORT: 4 bytes Packets sent,\n |
frankvnk | 5:854f9b13a0f9 | 123 | * 4 bytes Packets received, 4 bytes Min round time, \n |
frankvnk | 5:854f9b13a0f9 | 124 | * 4 bytes Max round time and 4 bytes for Avg round time.\n |
frankvnk | 4:d8255a5aad46 | 125 | * @param sFWPatches 0 no patch or pointer to FW patches |
frankvnk | 4:d8255a5aad46 | 126 | * @param sDriverPatches 0 no patch or pointer to driver patches |
frankvnk | 4:d8255a5aad46 | 127 | * @param sBootLoaderPatches 0 no patch or pointer to bootloader patches |
frankvnk | 4:d8255a5aad46 | 128 | * @param sReadWlanInterruptPin init callback. the callback read wlan interrupt status. |
frankvnk | 4:d8255a5aad46 | 129 | * @param sWlanInterruptEnable init callback. the callback enable wlan interrupt. |
frankvnk | 4:d8255a5aad46 | 130 | * @param sWlanInterruptDisable init callback. the callback disable wlan interrupt. |
frankvnk | 4:d8255a5aad46 | 131 | * @param sWriteWlanPin init callback. the callback write value to device pin. |
frankvnk | 4:d8255a5aad46 | 132 | * @return none |
frankvnk | 4:d8255a5aad46 | 133 | * @sa wlan_set_event_mask , wlan_start , wlan_stop |
frankvnk | 4:d8255a5aad46 | 134 | * @warning This function must be called before ANY other wlan driver function |
frankvnk | 4:d8255a5aad46 | 135 | */ |
frankvnk | 9:8db50def96e5 | 136 | void wlan_init(tWlanCB sWlanCB, |
frankvnk | 9:8db50def96e5 | 137 | tFWPatches sFWPatches, |
frankvnk | 9:8db50def96e5 | 138 | tDriverPatches sDriverPatches, |
frankvnk | 9:8db50def96e5 | 139 | tBootLoaderPatches sBootLoaderPatches, |
frankvnk | 9:8db50def96e5 | 140 | tWlanReadInteruptPin sReadWlanInterruptPin, |
frankvnk | 9:8db50def96e5 | 141 | tWlanInterruptEnable sWlanInterruptEnable, |
frankvnk | 9:8db50def96e5 | 142 | tWlanInterruptDisable sWlanInterruptDisable, |
frankvnk | 9:8db50def96e5 | 143 | tWriteWlanPin sWriteWlanPin); |
frankvnk | 0:c44f0314d6ec | 144 | |
frankvnk | 4:d8255a5aad46 | 145 | /** |
frankvnk | 4:d8255a5aad46 | 146 | * Trigger Received event/data processing - called from the SPI library to receive the data |
frankvnk | 5:854f9b13a0f9 | 147 | * @param pvBuffer - pointer to the received data buffer\n |
frankvnk | 5:854f9b13a0f9 | 148 | * The function triggers Received event/data processing\n |
frankvnk | 4:d8255a5aad46 | 149 | * @param Pointer to the received data |
frankvnk | 4:d8255a5aad46 | 150 | * @return none |
frankvnk | 4:d8255a5aad46 | 151 | */ |
frankvnk | 4:d8255a5aad46 | 152 | void SpiReceiveHandler(void *pvBuffer); |
frankvnk | 0:c44f0314d6ec | 153 | |
frankvnk | 0:c44f0314d6ec | 154 | |
frankvnk | 4:d8255a5aad46 | 155 | /** |
frankvnk | 5:854f9b13a0f9 | 156 | * Start WLAN device. |
frankvnk | 5:854f9b13a0f9 | 157 | * This function asserts the enable pin of \n |
frankvnk | 5:854f9b13a0f9 | 158 | * the device (WLAN_EN), starting the HW initialization process.\n |
frankvnk | 5:854f9b13a0f9 | 159 | * The function blocked until device Initialization is completed.\n |
frankvnk | 5:854f9b13a0f9 | 160 | * Function also configure patches (FW, driver or bootloader) \n |
frankvnk | 5:854f9b13a0f9 | 161 | * and calls appropriate device callbacks.\n |
frankvnk | 5:854f9b13a0f9 | 162 | * @param usPatchesAvailableAtHost - flag to indicate if patches available\n |
frankvnk | 5:854f9b13a0f9 | 163 | * from host or from EEPROM. Due to the\n |
frankvnk | 5:854f9b13a0f9 | 164 | * fact the patches are burn to the EEPROM\n |
frankvnk | 5:854f9b13a0f9 | 165 | * using the patch programmer utility, the \n |
frankvnk | 5:854f9b13a0f9 | 166 | * patches will be available from the EEPROM\n |
frankvnk | 5:854f9b13a0f9 | 167 | * and not from the host.\n |
frankvnk | 4:d8255a5aad46 | 168 | * @return none |
frankvnk | 4:d8255a5aad46 | 169 | * @Note Prior calling the function wlan_init shall be called. |
frankvnk | 5:854f9b13a0f9 | 170 | * @Warning This function must be called after wlan_init and before any other wlan API |
frankvnk | 4:d8255a5aad46 | 171 | * @sa wlan_init , wlan_stop |
frankvnk | 4:d8255a5aad46 | 172 | */ |
frankvnk | 0:c44f0314d6ec | 173 | extern void wlan_start(unsigned short usPatchesAvailableAtHost); |
frankvnk | 0:c44f0314d6ec | 174 | |
frankvnk | 4:d8255a5aad46 | 175 | /** |
frankvnk | 4:d8255a5aad46 | 176 | * Stop WLAN device by putting it into reset state. |
frankvnk | 4:d8255a5aad46 | 177 | * @param none |
frankvnk | 4:d8255a5aad46 | 178 | * @return none |
frankvnk | 4:d8255a5aad46 | 179 | * @sa wlan_start |
frankvnk | 4:d8255a5aad46 | 180 | */ |
frankvnk | 0:c44f0314d6ec | 181 | extern void wlan_stop(void); |
frankvnk | 0:c44f0314d6ec | 182 | |
frankvnk | 4:d8255a5aad46 | 183 | /** |
frankvnk | 4:d8255a5aad46 | 184 | * Connect to AP |
frankvnk | 5:854f9b13a0f9 | 185 | * @param sec_type security options:\n |
frankvnk | 5:854f9b13a0f9 | 186 | * WLAN_SEC_UNSEC, \n |
frankvnk | 5:854f9b13a0f9 | 187 | * WLAN_SEC_WEP (ASCII support only),\n |
frankvnk | 5:854f9b13a0f9 | 188 | * WLAN_SEC_WPA or WLAN_SEC_WPA2\n |
frankvnk | 4:d8255a5aad46 | 189 | * @param ssid up to 32 bytes and is ASCII SSID of the AP |
frankvnk | 4:d8255a5aad46 | 190 | * @param ssid_len length of the SSID |
frankvnk | 4:d8255a5aad46 | 191 | * @param bssid 6 bytes specified the AP bssid |
frankvnk | 4:d8255a5aad46 | 192 | * @param key up to 16 bytes specified the AP security key |
frankvnk | 4:d8255a5aad46 | 193 | * @param key_len key length |
frankvnk | 5:854f9b13a0f9 | 194 | * @return On success, zero is returned. On error, negative is returned.\n |
frankvnk | 5:854f9b13a0f9 | 195 | * Note that even though a zero is returned on success to trigger\n |
frankvnk | 5:854f9b13a0f9 | 196 | * connection operation, it does not mean that CCC3000 is already\n |
frankvnk | 5:854f9b13a0f9 | 197 | * connected. An asynchronous "Connected" event is generated when \n |
frankvnk | 5:854f9b13a0f9 | 198 | * actual association process finishes and CC3000 is connected to\n |
frankvnk | 5:854f9b13a0f9 | 199 | * the AP. If DHCP is set, An asynchronous "DHCP" event is \n |
frankvnk | 5:854f9b13a0f9 | 200 | * generated when DHCP process is finish.\n |
frankvnk | 5:854f9b13a0f9 | 201 | * @warning Please Note that when connection to AP configured with security\n |
frankvnk | 5:854f9b13a0f9 | 202 | * type WEP, please confirm that the key is set as ASCII and not as HEX.\n |
frankvnk | 4:d8255a5aad46 | 203 | * @sa wlan_disconnect |
frankvnk | 4:d8255a5aad46 | 204 | */ |
frankvnk | 0:c44f0314d6ec | 205 | #ifndef CC3000_TINY_DRIVER |
frankvnk | 0:c44f0314d6ec | 206 | extern long wlan_connect(unsigned long ulSecType, |
frankvnk | 0:c44f0314d6ec | 207 | char *ssid, |
frankvnk | 0:c44f0314d6ec | 208 | long ssid_len, |
frankvnk | 0:c44f0314d6ec | 209 | unsigned char *bssid, |
frankvnk | 0:c44f0314d6ec | 210 | unsigned char *key, |
frankvnk | 0:c44f0314d6ec | 211 | long key_len); |
frankvnk | 0:c44f0314d6ec | 212 | #else |
frankvnk | 0:c44f0314d6ec | 213 | extern long wlan_connect(char *ssid, long ssid_len); |
frankvnk | 0:c44f0314d6ec | 214 | |
frankvnk | 0:c44f0314d6ec | 215 | #endif |
frankvnk | 0:c44f0314d6ec | 216 | |
frankvnk | 4:d8255a5aad46 | 217 | /** |
frankvnk | 4:d8255a5aad46 | 218 | * Disconnect connection from AP. |
frankvnk | 4:d8255a5aad46 | 219 | * @return 0 disconnected done, other CC3000 already disconnected |
frankvnk | 4:d8255a5aad46 | 220 | * @sa wlan_connect |
frankvnk | 4:d8255a5aad46 | 221 | */ |
frankvnk | 0:c44f0314d6ec | 222 | extern long wlan_disconnect(void); |
frankvnk | 0:c44f0314d6ec | 223 | |
frankvnk | 4:d8255a5aad46 | 224 | /** |
frankvnk | 5:854f9b13a0f9 | 225 | * Add profile. |
frankvnk | 5:854f9b13a0f9 | 226 | * When auto start is enabled, the device connects to\n |
frankvnk | 5:854f9b13a0f9 | 227 | * station from the profiles table. Up to 7 profiles are supported. \n |
frankvnk | 5:854f9b13a0f9 | 228 | * If several profiles configured the device choose the highest \n |
frankvnk | 5:854f9b13a0f9 | 229 | * priority profile, within each priority group, device will choose \n |
frankvnk | 5:854f9b13a0f9 | 230 | * profile based on security policy, signal strength, etc \n |
frankvnk | 5:854f9b13a0f9 | 231 | * parameters. All the profiles are stored in CC3000 NVMEM.\n |
frankvnk | 4:d8255a5aad46 | 232 | * |
frankvnk | 4:d8255a5aad46 | 233 | * @param ulSecType WLAN_SEC_UNSEC,WLAN_SEC_WEP,WLAN_SEC_WPA,WLAN_SEC_WPA2 |
frankvnk | 4:d8255a5aad46 | 234 | * @param ucSsid ssid SSID up to 32 bytes |
frankvnk | 4:d8255a5aad46 | 235 | * @param ulSsidLen ssid length |
frankvnk | 4:d8255a5aad46 | 236 | * @param ucBssid bssid 6 bytes |
frankvnk | 4:d8255a5aad46 | 237 | * @param ulPriority ulPriority profile priority. Lowest priority:0. |
frankvnk | 4:d8255a5aad46 | 238 | * @param ulPairwiseCipher_Or_TxKeyLen key length for WEP security |
frankvnk | 4:d8255a5aad46 | 239 | * @param ulGroupCipher_TxKeyIndex key index |
frankvnk | 4:d8255a5aad46 | 240 | * @param ulKeyMgmt KEY management |
frankvnk | 4:d8255a5aad46 | 241 | * @param ucPf_OrKey security key |
frankvnk | 4:d8255a5aad46 | 242 | * @param ulPassPhraseLen security key length for WPA\WPA2 |
frankvnk | 4:d8255a5aad46 | 243 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 244 | * @sa wlan_ioctl_del_profile |
frankvnk | 4:d8255a5aad46 | 245 | */ |
frankvnk | 0:c44f0314d6ec | 246 | extern long wlan_add_profile(unsigned long ulSecType, |
frankvnk | 0:c44f0314d6ec | 247 | unsigned char* ucSsid, |
frankvnk | 0:c44f0314d6ec | 248 | unsigned long ulSsidLen, |
frankvnk | 0:c44f0314d6ec | 249 | unsigned char *ucBssid, |
frankvnk | 0:c44f0314d6ec | 250 | unsigned long ulPriority, |
frankvnk | 0:c44f0314d6ec | 251 | unsigned long ulPairwiseCipher_Or_Key, |
frankvnk | 0:c44f0314d6ec | 252 | unsigned long ulGroupCipher_TxKeyLen, |
frankvnk | 0:c44f0314d6ec | 253 | unsigned long ulKeyMgmt, |
frankvnk | 0:c44f0314d6ec | 254 | unsigned char* ucPf_OrKey, |
frankvnk | 0:c44f0314d6ec | 255 | unsigned long ulPassPhraseLen); |
frankvnk | 0:c44f0314d6ec | 256 | |
frankvnk | 4:d8255a5aad46 | 257 | /** |
frankvnk | 5:854f9b13a0f9 | 258 | * Delete WLAN profile. |
frankvnk | 4:d8255a5aad46 | 259 | * @param index number of profile to delete |
frankvnk | 4:d8255a5aad46 | 260 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 261 | * @Note In order to delete all stored profile, set index to 255. |
frankvnk | 4:d8255a5aad46 | 262 | * @sa wlan_add_profile |
frankvnk | 4:d8255a5aad46 | 263 | */ |
frankvnk | 0:c44f0314d6ec | 264 | extern long wlan_ioctl_del_profile(unsigned long ulIndex); |
frankvnk | 0:c44f0314d6ec | 265 | |
frankvnk | 4:d8255a5aad46 | 266 | /** |
frankvnk | 5:854f9b13a0f9 | 267 | * Mask event according to bit mask. |
frankvnk | 5:854f9b13a0f9 | 268 | * In case that event is masked (1), the device will not send the masked event to host. |
frankvnk | 5:854f9b13a0f9 | 269 | * @param mask mask option:\n |
frankvnk | 5:854f9b13a0f9 | 270 | * HCI_EVNT_WLAN_UNSOL_CONNECT connect event\n |
frankvnk | 5:854f9b13a0f9 | 271 | * HCI_EVNT_WLAN_UNSOL_DISCONNECT disconnect event\n |
frankvnk | 5:854f9b13a0f9 | 272 | * HCI_EVNT_WLAN_ASYNC_SIMPLE_CONFIG_DONE smart config done\n |
frankvnk | 5:854f9b13a0f9 | 273 | * HCI_EVNT_WLAN_UNSOL_INIT init done\n |
frankvnk | 5:854f9b13a0f9 | 274 | * HCI_EVNT_WLAN_UNSOL_DHCP dhcp event report\n |
frankvnk | 5:854f9b13a0f9 | 275 | * HCI_EVNT_WLAN_ASYNC_PING_REPORT ping report\n |
frankvnk | 5:854f9b13a0f9 | 276 | * HCI_EVNT_WLAN_KEEPALIVE keepalive\n |
frankvnk | 5:854f9b13a0f9 | 277 | * HCI_EVNT_WLAN_TX_COMPLETE - disable information on end of transmission\n |
frankvnk | 4:d8255a5aad46 | 278 | * Saved: no. |
frankvnk | 4:d8255a5aad46 | 279 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 280 | */ |
frankvnk | 0:c44f0314d6ec | 281 | extern long wlan_set_event_mask(unsigned long ulMask); |
frankvnk | 0:c44f0314d6ec | 282 | |
frankvnk | 4:d8255a5aad46 | 283 | /** |
frankvnk | 4:d8255a5aad46 | 284 | * Get wlan status: disconnected, scanning, connecting or connected |
frankvnk | 4:d8255a5aad46 | 285 | * @param none |
frankvnk | 5:854f9b13a0f9 | 286 | * @return WLAN_STATUS_DISCONNECTED, WLAN_STATUS_SCANING,\n |
frankvnk | 5:854f9b13a0f9 | 287 | * STATUS_CONNECTING or WLAN_STATUS_CONNECTED \n |
frankvnk | 4:d8255a5aad46 | 288 | */ |
frankvnk | 0:c44f0314d6ec | 289 | extern long wlan_ioctl_statusget(void); |
frankvnk | 0:c44f0314d6ec | 290 | |
frankvnk | 0:c44f0314d6ec | 291 | |
frankvnk | 4:d8255a5aad46 | 292 | /** |
frankvnk | 5:854f9b13a0f9 | 293 | * Set connection policy. |
frankvnk | 5:854f9b13a0f9 | 294 | * When auto is enabled, the device tries to connect according the following policy:\n |
frankvnk | 5:854f9b13a0f9 | 295 | * 1) If fast connect is enabled and last connection is valid, \n |
frankvnk | 5:854f9b13a0f9 | 296 | * the device will try to connect to it without the scanning \n |
frankvnk | 5:854f9b13a0f9 | 297 | * procedure (fast). The last connection will be marked as\n |
frankvnk | 5:854f9b13a0f9 | 298 | * invalid, due to adding/removing profile. \n |
frankvnk | 5:854f9b13a0f9 | 299 | * 2) If profile exists, the device will try to connect it \n |
frankvnk | 5:854f9b13a0f9 | 300 | * (Up to seven profiles).\n |
frankvnk | 5:854f9b13a0f9 | 301 | * 3) If fast and profiles are not found, and open mode is\n |
frankvnk | 5:854f9b13a0f9 | 302 | * enabled, the device will try to connect to any AP.\n |
frankvnk | 5:854f9b13a0f9 | 303 | * Note that the policy settings are stored in the CC3000 NVMEM.\n |
frankvnk | 5:854f9b13a0f9 | 304 | * @param should_connect_to_open_ap enable(1), disable(0) connect to any \n |
frankvnk | 5:854f9b13a0f9 | 305 | * available AP. This parameter corresponds to the configuration of \n |
frankvnk | 5:854f9b13a0f9 | 306 | * item # 3 in the brief description.\n |
frankvnk | 5:854f9b13a0f9 | 307 | * @param should_use_fast_connect enable(1), disable(0). if enabled, tries \n |
frankvnk | 5:854f9b13a0f9 | 308 | * to connect to the last connected AP. This parameter corresponds \n |
frankvnk | 5:854f9b13a0f9 | 309 | * to the configuration of item # 1 in the brief description.\n |
frankvnk | 5:854f9b13a0f9 | 310 | * @param auto_start enable(1), disable(0) auto connect \n |
frankvnk | 5:854f9b13a0f9 | 311 | * after reset and periodically reconnect if needed. This \n |
frankvnk | 5:854f9b13a0f9 | 312 | * configuration configures option 2 in the above description.\n |
frankvnk | 5:854f9b13a0f9 | 313 | * @return On success, zero is returned.\n |
frankvnk | 5:854f9b13a0f9 | 314 | * On error, -1 is returned \n |
frankvnk | 4:d8255a5aad46 | 315 | * @sa wlan_add_profile , wlan_ioctl_del_profile |
frankvnk | 4:d8255a5aad46 | 316 | */ |
frankvnk | 0:c44f0314d6ec | 317 | extern long wlan_ioctl_set_connection_policy(unsigned long should_connect_to_open_ap, |
frankvnk | 0:c44f0314d6ec | 318 | unsigned long should_use_fast_connect, |
frankvnk | 0:c44f0314d6ec | 319 | unsigned long ulUseProfiles); |
frankvnk | 0:c44f0314d6ec | 320 | |
frankvnk | 4:d8255a5aad46 | 321 | /** |
frankvnk | 5:854f9b13a0f9 | 322 | * Get entry from scan result table. |
frankvnk | 5:854f9b13a0f9 | 323 | * The scan results are returned one by one, and each entry represents a single AP found in the area.\n |
frankvnk | 5:854f9b13a0f9 | 324 | * The following is a format of the scan result: \n |
frankvnk | 5:854f9b13a0f9 | 325 | * - 4 Bytes: number of networks found\n |
frankvnk | 5:854f9b13a0f9 | 326 | * - 4 Bytes: The status of the scan: 0 - aged results, 1 - results valid, 2 - no results\n |
frankvnk | 5:854f9b13a0f9 | 327 | * - 42 bytes: Result entry, where the bytes are arranged as follows:\n |
frankvnk | 5:854f9b13a0f9 | 328 | * - 1 bit isValid - is result valid or not\n |
frankvnk | 5:854f9b13a0f9 | 329 | * - 7 bits rssi - RSSI value \n |
frankvnk | 5:854f9b13a0f9 | 330 | * - 2 bits securityMode - security mode of the AP: 0 - Open, 1 - WEP, 2 WPA, 3 WPA2\n |
frankvnk | 5:854f9b13a0f9 | 331 | * - 6 bits SSID name length\n |
frankvnk | 5:854f9b13a0f9 | 332 | * - 2 bytes the time at which the entry has entered into scans result table\n |
frankvnk | 5:854f9b13a0f9 | 333 | * - 32 bytes SSID name\n |
frankvnk | 5:854f9b13a0f9 | 334 | * - 6 bytes BSSID \n |
frankvnk | 4:d8255a5aad46 | 335 | * @param[in] scan_timeout parameter not supported |
frankvnk | 4:d8255a5aad46 | 336 | * @param[out] ucResults scan result (_wlan_full_scan_results_args_t) |
frankvnk | 4:d8255a5aad46 | 337 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 338 | * @Note scan_timeout, is not supported on this version. |
frankvnk | 4:d8255a5aad46 | 339 | * @sa wlan_ioctl_set_scan_params |
frankvnk | 4:d8255a5aad46 | 340 | */ |
frankvnk | 0:c44f0314d6ec | 341 | extern long wlan_ioctl_get_scan_results(unsigned long ulScanTimeout, |
frankvnk | 0:c44f0314d6ec | 342 | unsigned char *ucResults); |
frankvnk | 0:c44f0314d6ec | 343 | |
frankvnk | 4:d8255a5aad46 | 344 | /** |
frankvnk | 4:d8255a5aad46 | 345 | * start and stop scan procedure. Set scan parameters. |
frankvnk | 5:854f9b13a0f9 | 346 | * @param uiEnable start/stop application scan: \n |
frankvnk | 5:854f9b13a0f9 | 347 | * 1 = start scan with default interval value of 10 min. \n |
frankvnk | 5:854f9b13a0f9 | 348 | * To set a different scan interval value, apply the value in milliseconds.\n |
frankvnk | 5:854f9b13a0f9 | 349 | * minimum = 1 second. 0=stop.\n |
frankvnk | 5:854f9b13a0f9 | 350 | * Wlan reset (wlan_stop() wlan_start()) is needed when changing scan interval value.\n |
frankvnk | 5:854f9b13a0f9 | 351 | * Saved: No\n |
frankvnk | 5:854f9b13a0f9 | 352 | * @param uiMinDwellTime minimum dwell time value to be used for each channel, in milliseconds.\n |
frankvnk | 5:854f9b13a0f9 | 353 | * Saved: yes\n |
frankvnk | 5:854f9b13a0f9 | 354 | * Recommended Value: 100\n |
frankvnk | 5:854f9b13a0f9 | 355 | * Default: 20\n |
frankvnk | 5:854f9b13a0f9 | 356 | * @param uiMaxDwellTime maximum dwell time value to be used for each channel, in milliseconds.\n |
frankvnk | 5:854f9b13a0f9 | 357 | * Saved: yes\n |
frankvnk | 5:854f9b13a0f9 | 358 | * Recommended Value: 100\n |
frankvnk | 5:854f9b13a0f9 | 359 | * Default: 30\n |
frankvnk | 5:854f9b13a0f9 | 360 | * @param uiNumOfProbeRequests max probe request between dwell time. \n |
frankvnk | 5:854f9b13a0f9 | 361 | * Saved: yes.\n |
frankvnk | 5:854f9b13a0f9 | 362 | * Recommended Value: 5\n |
frankvnk | 5:854f9b13a0f9 | 363 | * Default:2\n |
frankvnk | 5:854f9b13a0f9 | 364 | * @param uiChannelMask bitwise, up to 13 channels (0x1fff). \n |
frankvnk | 5:854f9b13a0f9 | 365 | * Saved: yes.\n |
frankvnk | 5:854f9b13a0f9 | 366 | * Default: 0x7ff\n |
frankvnk | 5:854f9b13a0f9 | 367 | * @param uiRSSIThreshold RSSI threshold.\n |
frankvnk | 5:854f9b13a0f9 | 368 | * Saved: yes\n |
frankvnk | 5:854f9b13a0f9 | 369 | * Default: -80\n |
frankvnk | 5:854f9b13a0f9 | 370 | * @param uiSNRThreshold NSR threshold.\n |
frankvnk | 5:854f9b13a0f9 | 371 | * Saved: yes\n |
frankvnk | 5:854f9b13a0f9 | 372 | * Default: 0\n |
frankvnk | 5:854f9b13a0f9 | 373 | * @param uiDefaultTxPower probe Tx power.\n |
frankvnk | 5:854f9b13a0f9 | 374 | * Saved: yes\n |
frankvnk | 5:854f9b13a0f9 | 375 | * Default: 205\n |
frankvnk | 5:854f9b13a0f9 | 376 | * @param aiIntervalList pointer to array with 16 entries (16 channels) \n |
frankvnk | 5:854f9b13a0f9 | 377 | * Each entry (unsigned long) holds timeout between periodic scan \n |
frankvnk | 5:854f9b13a0f9 | 378 | * and connection scan - in milliseconds.\n |
frankvnk | 5:854f9b13a0f9 | 379 | * Saved: yes.\n |
frankvnk | 5:854f9b13a0f9 | 380 | * Default 2000ms.\n |
frankvnk | 4:d8255a5aad46 | 381 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 382 | * @Note uiDefaultTxPower, is not supported on this version. |
frankvnk | 4:d8255a5aad46 | 383 | * @sa wlan_ioctl_get_scan_results |
frankvnk | 4:d8255a5aad46 | 384 | */ |
frankvnk | 0:c44f0314d6ec | 385 | extern long wlan_ioctl_set_scan_params(unsigned long uiEnable, |
frankvnk | 0:c44f0314d6ec | 386 | unsigned long uiMinDwellTime, |
frankvnk | 0:c44f0314d6ec | 387 | unsigned long uiMaxDwellTime, |
frankvnk | 0:c44f0314d6ec | 388 | unsigned long uiNumOfProbeRequests, |
frankvnk | 0:c44f0314d6ec | 389 | unsigned long uiChannelMask, |
frankvnk | 0:c44f0314d6ec | 390 | long iRSSIThreshold, |
frankvnk | 0:c44f0314d6ec | 391 | unsigned long uiSNRThreshold, |
frankvnk | 0:c44f0314d6ec | 392 | unsigned long uiDefaultTxPower, |
frankvnk | 0:c44f0314d6ec | 393 | unsigned long *aiIntervalList); |
frankvnk | 0:c44f0314d6ec | 394 | |
frankvnk | 0:c44f0314d6ec | 395 | |
frankvnk | 4:d8255a5aad46 | 396 | /** |
frankvnk | 5:854f9b13a0f9 | 397 | * Start to acquire device profile. |
frankvnk | 5:854f9b13a0f9 | 398 | * The device will acquires its own profile if a profile message is found.\n |
frankvnk | 5:854f9b13a0f9 | 399 | * The acquired AP information is stored in CC3000 EEPROM only when AES128 encryption is used.\n |
frankvnk | 5:854f9b13a0f9 | 400 | * When AES128 encryption is not used, a profile is internally created by the device.\n |
frankvnk | 4:d8255a5aad46 | 401 | * @param algoEncryptedFlag indicates whether the information is encrypted |
frankvnk | 4:d8255a5aad46 | 402 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 5:854f9b13a0f9 | 403 | * @Note An asynchronous event - Smart Config Done will be generated as soon\n |
frankvnk | 5:854f9b13a0f9 | 404 | * as the process finishes successfully.\n |
frankvnk | 4:d8255a5aad46 | 405 | * @sa wlan_smart_config_set_prefix , wlan_smart_config_stop |
frankvnk | 4:d8255a5aad46 | 406 | */ |
frankvnk | 0:c44f0314d6ec | 407 | extern long wlan_smart_config_start(unsigned long algoEncryptedFlag); |
frankvnk | 0:c44f0314d6ec | 408 | |
frankvnk | 4:d8255a5aad46 | 409 | /** |
frankvnk | 4:d8255a5aad46 | 410 | * Stop the acquire profile procedure |
frankvnk | 4:d8255a5aad46 | 411 | * @param algoEncryptedFlag indicates whether the information is encrypted |
frankvnk | 4:d8255a5aad46 | 412 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 413 | * @sa wlan_smart_config_start , wlan_smart_config_set_prefix |
frankvnk | 4:d8255a5aad46 | 414 | */ |
frankvnk | 0:c44f0314d6ec | 415 | extern long wlan_smart_config_stop(void); |
frankvnk | 0:c44f0314d6ec | 416 | |
frankvnk | 4:d8255a5aad46 | 417 | /** |
frankvnk | 5:854f9b13a0f9 | 418 | * Configure station ssid prefix. |
frankvnk | 5:854f9b13a0f9 | 419 | * The prefix is used internally in CC3000. It should always be TTT.\n |
frankvnk | 4:d8255a5aad46 | 420 | * @param newPrefix 3 bytes identify the SSID prefix for the Smart Config. |
frankvnk | 4:d8255a5aad46 | 421 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 422 | * @Note The prefix is stored in CC3000 NVMEM |
frankvnk | 4:d8255a5aad46 | 423 | * @sa wlan_smart_config_start , wlan_smart_config_stop |
frankvnk | 4:d8255a5aad46 | 424 | */ |
frankvnk | 0:c44f0314d6ec | 425 | extern long wlan_smart_config_set_prefix(char* cNewPrefix); |
frankvnk | 0:c44f0314d6ec | 426 | |
frankvnk | 4:d8255a5aad46 | 427 | /** |
frankvnk | 4:d8255a5aad46 | 428 | * Process the acquired data and store it as a profile. |
frankvnk | 4:d8255a5aad46 | 429 | * The acquired AP information is stored in CC3000 EEPROM encrypted. |
frankvnk | 5:854f9b13a0f9 | 430 | * The encrypted data is decrypted and stored as a profile.\n |
frankvnk | 5:854f9b13a0f9 | 431 | * behavior is as defined by connection policy.\n |
frankvnk | 4:d8255a5aad46 | 432 | * @param none |
frankvnk | 4:d8255a5aad46 | 433 | * @return On success, zero is returned. On error, -1 is returned |
frankvnk | 4:d8255a5aad46 | 434 | */ |
frankvnk | 0:c44f0314d6ec | 435 | extern long wlan_smart_config_process(void); |
frankvnk | 0:c44f0314d6ec | 436 | |
frankvnk | 0:c44f0314d6ec | 437 | #ifdef __cplusplus |
frankvnk | 0:c44f0314d6ec | 438 | } |
frankvnk | 0:c44f0314d6ec | 439 | #endif // __cplusplus |
frankvnk | 0:c44f0314d6ec | 440 | |
frankvnk | 5:854f9b13a0f9 | 441 | //***************************************************************************** |
frankvnk | 5:854f9b13a0f9 | 442 | // |
frankvnk | 5:854f9b13a0f9 | 443 | // Close the Doxygen group. |
frankvnk | 5:854f9b13a0f9 | 444 | //! @} |
frankvnk | 5:854f9b13a0f9 | 445 | // |
frankvnk | 5:854f9b13a0f9 | 446 | //***************************************************************************** |
frankvnk | 5:854f9b13a0f9 | 447 | |
frankvnk | 0:c44f0314d6ec | 448 | #endif // __WLAN_H__ |