SimpleLink CC3100/CC3200 Host Driver  Version 1.0.1.6
Simplifies the implementation of Internet connectivity
Device

Functions

_i16 sl_Start (const void *pIfHdl, _i8 *pDevName, const P_INIT_CALLBACK pInitCallBack)
 Start the SimpleLink device. More...
 
_i16 sl_Stop (const _u16 timeout)
 Stop the SimpleLink device. More...
 
_i32 sl_DevSet (const _u8 DeviceSetId, const _u8 Option, const _u8 ConfigLen, const _u8 *pValues)
 Internal function for setting device configurations. More...
 
_i32 sl_DevGet (const _u8 DeviceGetId, _u8 *pOption, _u8 *pConfigLen, _u8 *pValues)
 Internal function for getting device configurations. More...
 
_i16 sl_EventMaskSet (const _u8 EventClass, const _u32 Mask)
 Set asynchronous event mask. More...
 
_i16 sl_EventMaskGet (const _u8 EventClass, _u32 *pMask)
 Get current event mask of the device. More...
 
void sl_Task (void)
 the simple link task entry More...
 
_i16 sl_UartSetMode (const SlUartIfParams_t *pUartParams)
 Setting the internal uart mode. More...
 

Typedefs

typedef void(* P_INIT_CALLBACK) (_u32 Status)
 

Enumerations

enum  SlErrorSender_e {
  SL_ERR_SENDER_HEALTH_MON,
  SL_ERR_SENDER_CLI_UART,
  SL_ERR_SENDER_SUPPLICANT,
  SL_ERR_SENDER_NETWORK_STACK,
  SL_ERR_SENDER_WLAN_DRV_IF,
  SL_ERR_SENDER_WILINK,
  SL_ERR_SENDER_INIT_APP,
  SL_ERR_SENDER_NETX,
  SL_ERR_SENDER_HOST_APD,
  SL_ERR_SENDER_MDNS,
  SL_ERR_SENDER_HTTP_SERVER,
  SL_ERR_SENDER_DHCP_SERVER,
  SL_ERR_SENDER_DHCP_CLIENT,
  SL_ERR_DISPATCHER,
  SL_ERR_NUM_SENDER_LAST =0xFF
}
 
enum  SlDriverAPIWithTimeout_e {
  SL_DRIVER_API_DEVICE_SL_START = 0,
  SL_DRIVER_API_DEVICE_SL_STOP,
  SL_DRIVER_API_NETAPP_PING_START,
  SL_DRIVER_API_SOCKET_CONNECT,
  SL_DRIVER_API_SOCKET_ACCEPT,
  SL_DRIVER_API_SOCKET_SELECT,
  SL_DRIVER_API_SOCKET_RECV,
  SL_DRIVER_API_SOCKET_RECVFROM
}
 
enum  SlDeviceDriverError_e {
  SL_DEVICE_GENERAL_ERROR_EVENT = 1,
  SL_DEVICE_ABORT_ERROR_EVENT,
  SL_DEVICE_DRIVER_ASSERT_ERROR_EVENT,
  SL_DEVICE_DRIVER_TIMEOUT_CMD_COMPLETE,
  SL_DEVICE_DRIVER_TIMEOUT_SYNC_PATTERN,
  SL_DEVICE_DRIVER_TIMEOUT_ASYNC_EVENT,
  SL_DEVICE_ERROR_MAX
}
 

Detailed Description

Function Documentation

_i32 sl_DevGet ( const _u8  DeviceGetId,
_u8 *  pOption,
_u8 *  pConfigLen,
_u8 *  pValues 
)

Internal function for getting device configurations.

Returns
On success, zero is returned. On error, -1 is returned
Parameters
[in]DeviceGetIdconfiguration id - example SL_DEVICE_STATUS
[out]pOptionGet configurations option, example for get status options
  • SL_EVENT_CLASS_GLOBAL
  • SL_EVENT_CLASS_DEVICE
  • SL_EVENT_CLASS_WLAN
  • SL_EVENT_CLASS_BSD
  • SL_EVENT_CLASS_NETAPP
  • SL_EVENT_CLASS_NETCFG
  • SL_EVENT_CLASS_FS
[out]pConfigLenThe length of the allocated memory as input, when the function complete, the value of this parameter would be the len that actually read from the device.
If the device return length that is longer from the input value, the function will cut the end of the returned structure and will return SL_ESMALLBUF
[out]pValuesGet configurations values
See also
Note
Warning
Examples:
1 Example for getting WLAN class status:
2 _u32 statusWlan;
3 _u8 pConfigOpt;
4 _u8 pConfigLen;
5 pConfigOpt = SL_EVENT_CLASS_WLAN;
6 pConfigLen = sizeof(_u32);
7 sl_DevGet(SL_DEVICE_STATUS,&pConfigOpt,&pConfigLen,(_u8 *)(&statusWlan));
8 Example for getting version:
9 SlVersionFull ver;
10 pConfigLen = sizeof(ver);
11 pConfigOpt = SL_DEVICE_GENERAL_VERSION;
12 sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION,&pConfigOpt,&pConfigLen,(_u8 *)(&ver));
13 printf("CHIP %d\nMAC 31.%d.%d.%d.%d\nPHY %d.%d.%d.%d\nNWP %d.%d.%d.%d\nROM %d\nHOST %d.%d.%d.%d\n",
14  ver.ChipFwAndPhyVersion.ChipId,
15  ver.ChipFwAndPhyVersion.FwVersion[0],ver.ChipFwAndPhyVersion.FwVersion[1],
16  ver.ChipFwAndPhyVersion.FwVersion[2],ver.ChipFwAndPhyVersion.FwVersion[3],
17  ver.ChipFwAndPhyVersion.PhyVersion[0],ver.ChipFwAndPhyVersion.PhyVersion[1],
18  ver.ChipFwAndPhyVersion.PhyVersion[2],ver.ChipFwAndPhyVersion.PhyVersion[3],
19  ver.NwpVersion[0],ver.NwpVersion[1],ver.NwpVersion[2],ver.NwpVersion[3],
20  ver.RomVersion,
21  SL_MAJOR_VERSION_NUM,SL_MINOR_VERSION_NUM,SL_VERSION_NUM,SL_SUB_VERSION_NUM);
1 Getting Device time and date example:
2 
3 SlDateTime_t dateTime = {0};
4 _i8 configLen = sizeof(SlDateTime_t);
5 _i8 configOpt = SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME;
6 sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION,&configOpt, &configLen,(_u8 *)(&dateTime));
7 
8 printf("Day %d,Mon %d,Year %d,Hour %,Min %d,Sec %d\n",dateTime.sl_tm_day,dateTime.sl_tm_mon,dateTime.sl_tm_year
9  dateTime.sl_tm_hour,dateTime.sl_tm_min,dateTime.sl_tm_sec);
_i32 sl_DevSet ( const _u8  DeviceSetId,
const _u8  Option,
const _u8  ConfigLen,
const _u8 *  pValues 
)

Internal function for setting device configurations.

Returns
On success, zero is returned. On error, -1 is returned
Parameters
[in]DeviceSetIdconfiguration id
[in]Optionconfigurations option
[in]ConfigLenconfigurations len
[in]pValuesconfigurations values
See also
Note
Warning
Examples:
1 Setting device time and date example:
2 
3 SlDateTime_t dateTime= {0};
4 dateTime.sl_tm_day = (_u32)23; // Day of month (DD format) range 1-31
5 dateTime.sl_tm_mon = (_u32)6; // Month (MM format) in the range of 1-12
6 dateTime.sl_tm_year = (_u32)2014; // Year (YYYY format)
7 dateTime.sl_tm_hour = (_u32)17; // Hours in the range of 0-23
8 dateTime.sl_tm_min = (_u32)55; // Minutes in the range of 0-59
9 dateTime.sl_tm_sec = (_u32)22; // Seconds in the range of 0-59
10 sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
11  SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
12  sizeof(SlDateTime_t),
13  (_u8 *)(&dateTime));
_i16 sl_EventMaskGet ( const _u8  EventClass,
_u32 *  pMask 
)

Get current event mask of the device.

return the events bit mask from the device. In case that event is masked, the device is not sending this event.

Parameters
[in]EventClassThe classification groups that the mask is referred to. Need to be one of the following:
  • SL_EVENT_CLASS_GLOBAL
  • SL_EVENT_CLASS_DEVICE
  • SL_EVENT_CLASS_WLAN
  • SL_EVENT_CLASS_BSD
  • SL_EVENT_CLASS_NETAPP
  • SL_EVENT_CLASS_NETCFG
  • SL_EVENT_CLASS_FS
[out]pMaskPointer to Mask bitmap where the value should be stored. Bitmasks are the same as in sl_EventMaskSet
Returns
On success, zero is returned. On error, -1 is returned
See also
sl_EventMaskSet
Note
belongs to ext_api
Warning
Example:
1 An example of getting an event mask for WLAN class
2 _u32 maskWlan;
3  sl_StatusGet(SL_EVENT_CLASS_WLAN,&maskWlan);
_i16 sl_EventMaskSet ( const _u8  EventClass,
const _u32  Mask 
)

Set asynchronous event mask.

Mask asynchronous events from the device. Masked events do not generate asynchronous messages from the device. By default - all events are active

Parameters
[in]EventClassThe classification groups that the mask is referred to. Need to be one of the following:
  • SL_EVENT_CLASS_GLOBAL
  • SL_EVENT_CLASS_DEVICE
  • SL_EVENT_CLASS_WLAN
  • SL_EVENT_CLASS_BSD
  • SL_EVENT_CLASS_NETAPP
  • SL_EVENT_CLASS_NETCFG
  • SL_EVENT_CLASS_FS
[in]MaskEvent Mask bitmap. Valid mask are (per group):
  • SL_EVENT_CLASS_WLAN user events
    • SL_WLAN_CONNECT_EVENT
    • SL_WLAN_DISCONNECT_EVENT
  • SL_EVENT_CLASS_DEVICE user events
    • SL_DEVICE_GENERAL_ERROR_EVENT
  • SL_EVENT_CLASS_BSD user events
    • SL_SOCKET_TX_FAILED_EVENT
    • SL_SOCKET_ASYNC_EVENT
  • SL_EVENT_CLASS_NETAPP user events
    • SL_NETAPP_IPV4_IPACQUIRED_EVENT
    • SL_NETAPP_IPV6_IPACQUIRED_EVENT
Returns
On success, zero is returned. On error, -1 is returned
See also
sl_EventMaskGet
Note
belongs to ext_api
Warning
Example:
1 An example of masking connection/disconnection async events from WLAN class:
2  sl_EventMaskSet(SL_EVENT_CLASS_WLAN, (SL_WLAN_CONNECT_EVENT | SL_WLAN_DISCONNECT_EVENT) );
_i16 sl_Start ( const void *  pIfHdl,
_i8 *  pDevName,
const P_INIT_CALLBACK  pInitCallBack 
)

Start the SimpleLink device.

This function initialize the communication interface, set the enable pin of the device, and call to the init complete callback.

Parameters
[in]pIfHdlOpened Interface Object. In case the interface must be opened outside the SimpleLink Driver, the user might give the handler to be used in
any access of the communication interface with the device (UART/SPI).
The SimpleLink driver will open an interface port only if this parameter is null!
[in]pDevNameThe name of the device to open. Could be used when the pIfHdl is null, to transfer information to the open interface function
This pointer could be used to pass additional information to sl_IfOpen in case it is required (e.g. UART com port name)
[in]pInitCallBackPointer to function that would be called on completion of the initialization process.
If this parameter is NULL the function is blocked until the device initialization is completed, otherwise the function returns immediately.
Returns
Returns the current active role (STA/AP/P2P) or an error code:
  • ROLE_STA, ROLE_AP, ROLE_P2P in case of success, otherwise in failure one of the following is return:
  • ROLE_STA_ERR (Failure to load MAC/PHY in STA role)
  • ROLE_AP_ERR (Failure to load MAC/PHY in AP role)
  • ROLE_P2P_ERR (Failure to load MAC/PHY in P2P role)
See also
sl_Stop
Note
belongs to basic_api
Warning
This function must be called before any other SimpleLink API is used, or after sl_Stop is called for reinit the device
Example:
1 An example for open interface without callback routine. The interface name and handler are
2 handled by the sl_IfOpen routine:
3 
4  if( sl_Start(NULL, NULL, NULL) < 0 )
5 {
6  LOG("Error opening interface to device\n");
7 }
_i16 sl_Stop ( const _u16  timeout)

Stop the SimpleLink device.

This function clears the enable pin of the device, closes the communication
interface and invokes the stop complete callback

Parameters
[in]timeoutStop timeout in msec. Should be used to give the device time to finish
any transmission/reception that is not completed when the function was called.
Additional options:
  • 0 Enter to hibernate immediately
  • 0xFFFF Host waits for device's response before
    hibernating, without timeout protection
  • 0 < Timeout[msec] < 0xFFFF Host waits for device's response before
    hibernating, with a defined timeout protection
    This timeout defines the max time to wait. The NWP
    response can be sent earlier than this timeout.
Returns
On success, zero is returned. On error, -1 is returned
See also
sl_Start
Note
This API will shutdown the device and invoke the "i/f close" function regardless
if it was opened implicitly or explicitly.
It is up to the platform interface library to properly handle interface close
routine
belongs to basic_api
Warning
void sl_Task ( void  )

the simple link task entry

This function must be called from the main loop or from dedicated thread in the following cases:

  • Non-Os Platform - should be called from the mail loop
  • Multi Threaded Platform when the user does not implement the external spawn functions - should be called from dedicated thread allocated to the simplelink driver. In this mode the function never return.
Returns
None
See also
sl_Stop
Note
belongs to basic_api
Warning
This function must be called from a thread that is start running before any call to other simple link API
_i16 sl_UartSetMode ( const SlUartIfParams_t pUartParams)

Setting the internal uart mode.

Parameters
[in]pUartParamsPointer to the uart configuration parameter set: baudrate - up to 711 Kbps flow control - enable/disable comm port - the comm port number
Returns
On success zero is returned, otherwise - Failed.
See also
sl_Stop
Note
belongs to basic_api
Warning
This function must consider the host uart capability

Data Structure Documentation

struct SlUartIfParams_t

Definition at line 286 of file device.h.

Data Fields
_u32 BaudRate
_u8 CommPort
_u8 FlowControlEnable
struct _SlPartialVersion

Definition at line 294 of file device.h.

Data Fields
_u32 ChipId
_u32 FwVersion[4]
_u8 PhyVersion[4]
struct SlVersionFull

Definition at line 301 of file device.h.

Data Fields
_SlPartialVersion ChipFwAndPhyVersion
_u32 NwpVersion[4]
_u16 Padding
_u16 RomVersion
struct sl_DeviceReportAbort

Definition at line 309 of file device.h.

Data Fields
_u32 AbortData
_u32 AbortType
struct sl_DeviceReport

Definition at line 316 of file device.h.

Data Fields
SlErrorSender_e sender
_i8 status
struct sl_DeviceDriverErrorReport

Definition at line 322 of file device.h.

Data Fields
_u32 info
union SlDeviceEventData_u

Definition at line 326 of file device.h.

Data Fields
sl_DeviceDriverErrorReport deviceDriverReport
sl_DeviceReport deviceEvent
sl_DeviceReportAbort deviceReport
struct SlDeviceEvent_t

Definition at line 333 of file device.h.

Data Fields
SlDeviceDriverError_e Event
SlDeviceEventData_u EventData
struct SlDateTime_t

Definition at line 339 of file device.h.

Data Fields
_u32 reserved[3]
_u32 sl_tm_day
_u32 sl_tm_hour
_u32 sl_tm_min
_u32 sl_tm_mon
_u32 sl_tm_sec
_u32 sl_tm_week_day
_u32 sl_tm_year
_u32 sl_tm_year_day