CC3000HostDriver for device TI CC3000 some changes were made due to mbed compiler and the use of void*

Dependents:   CC3000Test

Committer:
dflet
Date:
Fri Aug 02 15:06:15 2013 +0000
Revision:
0:9cb694f00b7b
First commit TI CC3000HostDriver library

Who changed what in which revision?

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