CC3000  1.12
 All Classes Functions Groups
Wlan_api

Macros

#define SMART_CONFIG_PROFILE_SIZE   67
 
#define PATCHES_HOST_TYPE_WLAN_DRIVER   0x01
 
#define PATCHES_HOST_TYPE_WLAN_FW   0x02
 
#define PATCHES_HOST_TYPE_BOOTLOADER   0x03
 
#define SL_SET_SCAN_PARAMS_INTERVAL_LIST_SIZE   (16)
 
#define SL_SIMPLE_CONFIG_PREFIX_LENGTH   (3)
 
#define ETH_ALEN   (6)
 
#define MAXIMAL_SSID_LENGTH   (32)
 
#define SL_PATCHES_REQUEST_DEFAULT   (0)
 
#define SL_PATCHES_REQUEST_FORCE_HOST   (1)
 
#define SL_PATCHES_REQUEST_FORCE_NONE   (2)
 
#define WLAN_SEC_UNSEC   (0)
 
#define WLAN_SEC_WEP   (1)
 
#define WLAN_SEC_WPA   (2)
 
#define WLAN_SEC_WPA2   (3)
 
#define WLAN_SL_INIT_START_PARAMS_LEN   (1)
 
#define WLAN_PATCH_PARAMS_LENGTH   (8)
 
#define WLAN_SET_CONNECTION_POLICY_PARAMS_LEN   (12)
 
#define WLAN_DEL_PROFILE_PARAMS_LEN   (4)
 
#define WLAN_SET_MASK_PARAMS_LEN   (4)
 
#define WLAN_SET_SCAN_PARAMS_LEN   (100)
 
#define WLAN_GET_SCAN_RESULTS_PARAMS_LEN   (4)
 
#define WLAN_ADD_PROFILE_NOSEC_PARAM_LEN   (24)
 
#define WLAN_ADD_PROFILE_WEP_PARAM_LEN   (36)
 
#define WLAN_ADD_PROFILE_WPA_PARAM_LEN   (44)
 
#define WLAN_CONNECT_PARAM_LEN   (29)
 
#define WLAN_SMART_CONFIG_START_PARAMS_LEN   (4)
 

Functions

void wlan_init (tWlanCB sWlanCB, tFWPatches sFWPatches, tDriverPatches sDriverPatches, tBootLoaderPatches sBootLoaderPatches, tWlanReadInteruptPin sReadWlanInterruptPin, tWlanInterruptEnable sWlanInterruptEnable, tWlanInterruptDisable sWlanInterruptDisable, tWriteWlanPin sWriteWlanPin)
 Initialize wlan driver. More...
 
void SpiReceiveHandler (void *pvBuffer)
 The function triggers Received event/data processing. It is called from the SPI library to receive the data. More...
 
void wlan_start (UINT16 usPatchesAvailableAtHost)
 Start WLAN device. This function asserts the enable pin of the device (WLAN_EN), starting the HW initialization process. The function blocked until device Initialization is completed. Function also configure patches (FW, driver or bootloader) and calls appropriate device callbacks. More...
 
void wlan_stop (void)
 Stop WLAN device by putting it into reset state. More...
 
INT32 wlan_connect (UINT32 ulSecType, CHAR *ssid, INT32 ssid_len, UINT8 *bssid, UINT8 *key, INT32 key_len)
 Connect to AP. More...
 
INT32 wlan_disconnect ()
 Disconnect connection from AP. More...
 
INT32 wlan_ioctl_set_connection_policy (UINT32 should_connect_to_open_ap, UINT32 ulShouldUseFastConnect, UINT32 ulUseProfiles)
 When auto is enabled, the device tries to connect according the following policy: 1) If fast connect is enabled and last connection is valid, the device will try to connect to it without the scanning procedure (fast). The last connection will be marked as invalid, due to adding/removing profile. 2) If profile exists, the device will try to connect it (Up to seven profiles). 3) If fast and profiles are not found, and open mode is enabled, the device will try to connect to any AP. More...
 
INT32 wlan_add_profile (UINT32 ulSecType, UINT8 *ucSsid, UINT32 ulSsidLen, UINT8 *ucBssid, UINT32 ulPriority, UINT32 ulPairwiseCipher_Or_TxKeyLen, UINT32 ulGroupCipher_TxKeyIndex, UINT32 ulKeyMgmt, UINT8 *ucPf_OrKey, UINT32 ulPassPhraseLen)
 When auto start is enabled, the device connects to station from the profiles table. Up to 7 profiles are supported. If several profiles configured the device choose the highest priority profile, within each priority group, device will choose profile based on security policy, signal strength, etc parameters. All the profiles are stored in CC3000 NVMEM. More...
 
INT32 wlan_ioctl_del_profile (UINT32 ulIndex)
 Delete WLAN profile. More...
 
INT32 wlan_ioctl_get_scan_results (UINT32 ulScanTimeout, UINT8 *ucResults)
 Gets entry from scan result table. The scan results are returned one by one, and each entry represents a single AP found in the area. The following is a format of the scan result: More...
 
INT32 wlan_ioctl_set_scan_params (UINT32 uiEnable, UINT32 uiMinDwellTime, UINT32 uiMaxDwellTime, UINT32 uiNumOfProbeRequests, UINT32 uiChannelMask, INT32 iRSSIThreshold, UINT32 uiSNRThreshold, UINT32 uiDefaultTxPower, UINT32 *aiIntervalList)
 start and stop scan procedure. Set scan parameters. More...
 
INT32 wlan_set_event_mask (UINT32 ulMask)
 Mask event according to bit mask. In case that event is masked (1), the device will not send the masked event to host. More...
 
INT32 wlan_ioctl_statusget (void)
 get wlan status: disconnected, scanning, connecting or connected More...
 
INT32 wlan_smart_config_start (UINT32 algoEncryptedFlag)
 Start to acquire device profile. The device acquire its own profile, if profile message is found. The acquired AP information is stored in CC3000 EEPROM only in case AES128 encryption is used. In case AES128 encryption is not used, a profile is created by CC3000 internally. More...
 
INT32 wlan_smart_config_stop (void)
 Stop the acquire profile procedure. More...
 
INT32 wlan_smart_config_set_prefix (CHAR *cNewPrefix)
 Configure station ssid prefix. The prefix is used internally in CC3000. It should always be TTT. More...
 
INT32 wlan_smart_config_process ()
 process the acquired data and store it as a profile. The acquired AP information is stored in CC3000 EEPROM encrypted. The encrypted data is decrypted and stored as a profile. behavior is as defined by connection policy. More...
 

Variables

volatile sSimplLinkInformation tSLInformation
 
UINT8 key [AES128_KEY_SIZE]
 
UINT8 profileArray [SMART_CONFIG_PROFILE_SIZE]
 

Detailed Description

Function Documentation

void SpiReceiveHandler ( void *  pvBuffer)

The function triggers Received event/data processing. It is called from the SPI library to receive the data.

SpiReceiveHandler

Parameters
pvBuffer- pointer to the received data buffer The function triggers Received event/data processing
Pointerto the received data
Returns
none
INT32 wlan_add_profile ( UINT32  ulSecType,
UINT8 *  ucSsid,
UINT32  ulSsidLen,
UINT8 *  ucBssid,
UINT32  ulPriority,
UINT32  ulPairwiseCipher_Or_TxKeyLen,
UINT32  ulGroupCipher_TxKeyIndex,
UINT32  ulKeyMgmt,
UINT8 *  ucPf_OrKey,
UINT32  ulPassPhraseLen 
)

When auto start is enabled, the device connects to station from the profiles table. Up to 7 profiles are supported. If several profiles configured the device choose the highest priority profile, within each priority group, device will choose profile based on security policy, signal strength, etc parameters. All the profiles are stored in CC3000 NVMEM.

wlan_add_profile

Parameters
ulSecTypeWLAN_SEC_UNSEC,WLAN_SEC_WEP,WLAN_SEC_WPA,WLAN_SEC_WPA2
ucSsidssid SSID up to 32 bytes
ulSsidLenssid length
ucBssidbssid 6 bytes
ulPriorityulPriority profile priority. Lowest priority:0. Important Note: Smartconfig process (in unencrypted mode) stores the profile internally with priority 1, so changing priorities when adding new profiles should be done with extra care
ulPairwiseCipher_Or_TxKeyLenkey length for WEP security
ulGroupCipher_TxKeyIndexkey index
ulKeyMgmtKEY management
ucPf_OrKeysecurity key
ulPassPhraseLensecurity key length for WPA
Returns
On success, index (1-7) of the stored profile is returned. On error, -1 is returned.
See Also
wlan_ioctl_del_profile

wlan_add_profile

Parameters
ulSecTypeWLAN_SEC_UNSEC,WLAN_SEC_WEP,WLAN_SEC_WPA,WLAN_SEC_WPA2
ucSsidssid SSID up to 32 bytes
ulSsidLenssid length
ucBssidbssid 6 bytes
ulPriorityulPriority profile priority. Lowest priority:0.
ulPairwiseCipher_Or_TxKeyLenkey length for WEP security
ulGroupCipher_TxKeyIndexkey index
ulKeyMgmtKEY management
ucPf_OrKeysecurity key
ulPassPhraseLensecurity key length for WPA
Returns
On success, index (1-7) of the stored profile is returned. On error, -1 is returned.
See Also
wlan_ioctl_del_profile
INT32 wlan_connect ( UINT32  ulSecType,
CHAR *  ssid,
INT32  ssid_len,
UINT8 *  bssid,
UINT8 *  key,
INT32  key_len 
)

Connect to AP.

wlan_connect

Parameters
sec_typesecurity options: WLAN_SEC_UNSEC, WLAN_SEC_WEP (ASCII support only), WLAN_SEC_WPA or WLAN_SEC_WPA2
ssidup to 32 bytes and is ASCII SSID of the AP
ssid_lenlength of the SSID
bssid6 bytes specified the AP bssid
keyup to 32 bytes specified the AP security key
key_lenkey length
Returns
On success, zero is returned. On error, negative is returned. Note that even though a zero is returned on success to trigger connection operation, it does not mean that CCC3000 is already connected. An asynchronous "Connected" event is generated when actual association process finishes and CC3000 is connected to the AP. If DHCP is set, An asynchronous "DHCP" event is generated when DHCP process is finish.
Warning
Please Note that when connection to AP configured with security type WEP, please confirm that the key is set as ASCII and not as HEX.
See Also
wlan_disconnect
INT32 wlan_disconnect ( )

Disconnect connection from AP.

wlan_disconnect

Returns
0 disconnected done, other CC3000 already disconnected
See Also
wlan_connect
void wlan_init ( tWlanCB  sWlanCB,
tFWPatches  sFWPatches,
tDriverPatches  sDriverPatches,
tBootLoaderPatches  sBootLoaderPatches,
tWlanReadInteruptPin  sReadWlanInterruptPin,
tWlanInterruptEnable  sWlanInterruptEnable,
tWlanInterruptDisable  sWlanInterruptDisable,
tWriteWlanPin  sWriteWlanPin 
)

Initialize wlan driver.

wlan_init

Parameters
sWlanCBAsynchronous events callback. 0 no event call back. -call back parameters: 1) event_type: HCI_EVNT_WLAN_UNSOL_CONNECT connect event, HCI_EVNT_WLAN_UNSOL_DISCONNECT disconnect event, HCI_EVNT_WLAN_ASYNC_SIMPLE_CONFIG_DONE config done, HCI_EVNT_WLAN_UNSOL_DHCP dhcp report, HCI_EVNT_WLAN_ASYNC_PING_REPORT ping report OR HCI_EVNT_WLAN_KEEPALIVE keepalive. 2) data: pointer to extra data that received by the event (NULL no data). 3) length: data length. -Events with extra data: HCI_EVNT_WLAN_UNSOL_DHCP: 4 bytes IP, 4 bytes Mask, 4 bytes default gateway, 4 bytes DHCP server and 4 bytes for DNS server. HCI_EVNT_WLAN_ASYNC_PING_REPORT: 4 bytes Packets sent, 4 bytes Packets received, 4 bytes Min round time, 4 bytes Max round time and 4 bytes for Avg round time.
sFWPatches0 no patch or pointer to FW patches
sDriverPatches0 no patch or pointer to driver patches
sBootLoaderPatches0 no patch or pointer to bootloader patches
sReadWlanInterruptPininit callback. the callback read wlan interrupt status.
sWlanInterruptEnableinit callback. the callback enable wlan interrupt.
sWlanInterruptDisableinit callback. the callback disable wlan interrupt.
sWriteWlanPininit callback. the callback write value to device pin.
Returns
none
See Also
wlan_set_event_mask , wlan_start , wlan_stop
Warning
This function must be called before ANY other wlan driver function
INT32 wlan_ioctl_del_profile ( UINT32  ulIndex)

Delete WLAN profile.

wlan_ioctl_del_profile

Parameters
indexnumber of profile to delete
Returns
On success, zero is returned. On error, -1 is returned

In order to delete all stored profile, set index to 255.

See Also
wlan_add_profile
INT32 wlan_ioctl_get_scan_results ( UINT32  ulScanTimeout,
UINT8 *  ucResults 
)

Gets entry from scan result table. The scan results are returned one by one, and each entry represents a single AP found in the area. The following is a format of the scan result:

wlan_ioctl_get_scan_results

Parameters
[in]scan_timeoutparameter not supported
[out]ucResultsscan results (_wlan_full_scan_results_args_t)
Returns
On success, zero is returned. On error, -1 is returned
     - 4 Bytes: number of networks found
    - 4 Bytes: The status of the scan: 0 - aged results,
               1 - results valid, 2 - no results
    - 42 bytes: Result entry, where the bytes are arranged as  follows:

                    - 1 bit isValid - is result valid or not
                - 7 bits rssi - RSSI value;  
           - 2 bits: securityMode - security mode of the AP:
                     0 - Open, 1 - WEP, 2 WPA, 3 WPA2
                - 6 bits: SSID name length
                - 2 bytes: the time at which the entry has entered into 
                      scans result table
                - 32 bytes: SSID name
           - 6 bytes:   BSSID 

scan_timeout, is not supported on this version.

See Also
wlan_ioctl_set_scan_params

wlan_ioctl_get_scan_results

Parameters
[in]scan_timeoutparameter not supported
[out]ucResultsscan result (_wlan_full_scan_results_args_t)
Returns
On success, zero is returned. On error, -1 is returned
     - 4 Bytes: number of networks found
    - 4 Bytes: The status of the scan: 0 - aged results,
               1 - results valid, 2 - no results
    - 42 bytes: Result entry, where the bytes are arranged as  follows:

                    - 1 bit isValid - is result valid or not
                - 7 bits rssi - RSSI value;  
           - 2 bits: securityMode - security mode of the AP:
                     0 - Open, 1 - WEP, 2 WPA, 3 WPA2
                - 6 bits: SSID name length
                - 2 bytes: the time at which the entry has entered into 
                      scans result table
                - 32 bytes: SSID name
           - 6 bytes:   BSSID 

scan_timeout, is not supported on this version.

See Also
wlan_ioctl_set_scan_params
INT32 wlan_ioctl_set_connection_policy ( UINT32  should_connect_to_open_ap,
UINT32  ulShouldUseFastConnect,
UINT32  ulUseProfiles 
)

When auto is enabled, the device tries to connect according the following policy: 1) If fast connect is enabled and last connection is valid, the device will try to connect to it without the scanning procedure (fast). The last connection will be marked as invalid, due to adding/removing profile. 2) If profile exists, the device will try to connect it (Up to seven profiles). 3) If fast and profiles are not found, and open mode is enabled, the device will try to connect to any AP.

wlan_ioctl_set_connection_policy

Parameters
should_connect_to_open_apenable(1), disable(0) connect to any available AP. This parameter corresponds to the configuration of item # 3 in the brief description.
should_use_fast_connectenable(1), disable(0). if enabled, tries to connect to the last connected AP. This parameter corresponds to the configuration of item # 1 in the brief description.
auto_startenable(1), disable(0) auto connect after reset and periodically reconnect if needed. This configuration configures option 2 in the above description.
Returns
On success, zero is returned. On error, -1 is returned
        * Note that the policy settings are stored in the CC3000 NVMEM.
See Also
wlan_add_profile , wlan_ioctl_del_profile
INT32 wlan_ioctl_set_scan_params ( UINT32  uiEnable,
UINT32  uiMinDwellTime,
UINT32  uiMaxDwellTime,
UINT32  uiNumOfProbeRequests,
UINT32  uiChannelMask,
INT32  iRSSIThreshold,
UINT32  uiSNRThreshold,
UINT32  uiDefaultTxPower,
UINT32 *  aiIntervalList 
)

start and stop scan procedure. Set scan parameters.

wlan_ioctl_set_scan_params

Parameters
uiEnable- start/stop application scan: 1 = start scan with default interval value of 10 min. in order to set a different scan interval value apply the value in milliseconds. minimum 1 second. 0=stop). Wlan reset (wlan_stop() wlan_start()) is needed when changing scan interval value. Saved: No
uiMinDwellTimeminimum dwell time value to be used for each channel, in milliseconds. Saved: yes Recommended Value: 100 (Default: 20)
uiMaxDwellTimemaximum dwell time value to be used for each channel, in milliseconds. Saved: yes Recommended Value: 100 (Default: 30)
uiNumOfProbeRequestsmax probe request between dwell time. Saved: yes. Recommended Value: 5 (Default:2)
uiChannelMaskbitwise, up to 13 channels (0x1fff). Saved: yes. Default: 0x7ff
uiRSSIThresholdRSSI threshold. Saved: yes (Default: -80)
uiSNRThresholdNSR threshold. Saved: yes (Default: 0)
uiDefaultTxPowerprobe Tx power. Saved: yes (Default: 205)
aiIntervalListpointer to array with 16 entries (16 channels) each entry (UINT32) holds timeout between periodic scan (connection scan) - in millisecond. Saved: yes. Default 2000ms.
Returns
On success, zero is returned. On error, -1 is returned

uiDefaultTxPower, is not supported on this version.

See Also
wlan_ioctl_get_scan_results

wlan_ioctl_set_scan_params

Parameters
uiEnable- start/stop application scan: 1 = start scan with default interval value of 10 min. in order to set a different scan interval value apply the value in milliseconds. minimum 1 second. 0=stop). Wlan reset (wlan_stop() wlan_start()) is needed when changing scan interval value. Saved: No
uiMinDwellTimeminimum dwell time value to be used for each channel, in milliseconds. Saved: yes Recommended Value: 100 (Default: 20)
uiMaxDwellTimemaximum dwell time value to be used for each channel, in milliseconds. Saved: yes Recommended Value: 100 (Default: 30)
uiNumOfProbeRequestsmax probe request between dwell time. Saved: yes. Recommended Value: 5 (Default:2)
uiChannelMaskbitwise, up to 13 channels (0x1fff). Saved: yes. Default: 0x7ff
uiRSSIThresholdRSSI threshold. Saved: yes (Default: -80)
uiSNRThresholdNSR threshold. Saved: yes (Default: 0)
uiDefaultTxPowerprobe Tx power. Saved: yes (Default: 205)
aiIntervalListpointer to array with 16 entries (16 channels) each entry (UINT32) holds timeout between periodic scan (connection scan) - in milliseconds. Saved: yes. Default 2000ms.
Returns
On success, zero is returned. On error, -1 is returned

uiDefaultTxPower, is not supported on this version.

See Also
wlan_ioctl_get_scan_results
INT32 wlan_ioctl_statusget ( void  )

get wlan status: disconnected, scanning, connecting or connected

wlan_ioctl_statusget

Parameters
none
Returns
WLAN_STATUS_DISCONNECTED, WLAN_STATUS_SCANING, STATUS_CONNECTING or WLAN_STATUS_CONNECTED
INT32 wlan_set_event_mask ( UINT32  ulMask)

Mask event according to bit mask. In case that event is masked (1), the device will not send the masked event to host.

wlan_set_event_mask

Parameters
maskmask option: HCI_EVNT_WLAN_UNSOL_CONNECT connect event HCI_EVNT_WLAN_UNSOL_DISCONNECT disconnect event HCI_EVNT_WLAN_ASYNC_SIMPLE_CONFIG_DONE smart config done HCI_EVNT_WLAN_UNSOL_INIT init done HCI_EVNT_WLAN_UNSOL_DHCP dhcp event report HCI_EVNT_WLAN_ASYNC_PING_REPORT ping report HCI_EVNT_WLAN_KEEPALIVE keepalive HCI_EVNT_WLAN_TX_COMPLETE - disable information on end of transmission Saved: no.
Returns
On success, zero is returned. On error, -1 is returned
INT32 wlan_smart_config_process ( )

process the acquired data and store it as a profile. The acquired AP information is stored in CC3000 EEPROM encrypted. The encrypted data is decrypted and stored as a profile. behavior is as defined by connection policy.

wlan_smart_config_process

Parameters
none
Returns
On success, zero is returned. On error, -1 is returned
INT32 wlan_smart_config_set_prefix ( CHAR *  cNewPrefix)

Configure station ssid prefix. The prefix is used internally in CC3000. It should always be TTT.

wlan_smart_config_set_prefix

Parameters
newPrefix3 bytes identify the SSID prefix for the Smart Config.
Returns
On success, zero is returned. On error, -1 is returned

The prefix is stored in CC3000 NVMEM

See Also
wlan_smart_config_start , wlan_smart_config_stop
INT32 wlan_smart_config_start ( UINT32  algoEncryptedFlag)

Start to acquire device profile. The device acquire its own profile, if profile message is found. The acquired AP information is stored in CC3000 EEPROM only in case AES128 encryption is used. In case AES128 encryption is not used, a profile is created by CC3000 internally.

wlan_smart_config_start

Parameters
algoEncryptedFlagindicates whether the information is encrypted
Returns
On success, zero is returned. On error, -1 is returned

An asynchronous event - Smart Config Done will be generated as soon as the process finishes successfully.

See Also
wlan_smart_config_set_prefix , wlan_smart_config_stop
INT32 wlan_smart_config_stop ( void  )

Stop the acquire profile procedure.

wlan_smart_config_stop

Parameters
algoEncryptedFlagindicates whether the information is encrypted
Returns
On success, zero is returned. On error, -1 is returned
See Also
wlan_smart_config_start , wlan_smart_config_set_prefix
void wlan_start ( UINT16  usPatchesAvailableAtHost)

Start WLAN device. This function asserts the enable pin of the device (WLAN_EN), starting the HW initialization process. The function blocked until device Initialization is completed. Function also configure patches (FW, driver or bootloader) and calls appropriate device callbacks.

wlan_start

Parameters
usPatchesAvailableAtHost- flag to indicate if patches available from host or from EEPROM. Due to the fact the patches are burn to the EEPROM using the patch programmer utility, the patches will be available from the EEPROM and not from the host.
Returns
none

Prior calling the function wlan_init shall be called. This function must be called after wlan_init and before any other wlan API

See Also
wlan_init , wlan_stop
void wlan_stop ( void  )

Stop WLAN device by putting it into reset state.

wlan_stop

Parameters
none
Returns
none
See Also
wlan_start