TI's CC3100 host driver and demo. Experimental and a work in progress.
Device
Functions | |
_i16 | sl_Start (const void *pIfHdl, _i8 *pDevName, const P_INIT_CALLBACK pInitCallBack) |
Start the SimpleLink device. | |
_i16 | sl_Stop (_u16 timeout) |
Stop the SimpleLink device. | |
_i32 | sl_DevSet (_u8 DeviceSetId, _u8 Option, _u8 ConfigLen, _u8 *pValues) |
Internal function for setting device configurations. | |
_i32 | sl_DevGet (_u8 DeviceGetId, _u8 *pOption, _u8 *pConfigLen, _u8 *pValues) |
Internal function for getting device configurations. | |
_i16 | sl_EventMaskSet (_u8 EventClass, _u32 Mask) |
Set asynchronous event mask. | |
_i16 | sl_EventMaskGet (_u8 EventClass, _u32 *pMask) |
Get current event mask of the device. | |
void | sl_Task (void) |
the simple link task entry | |
_i16 | sl_UartSetMode (const SlUartIfParams_t *pUartParams) |
Setting the internal uart mode. |
Function Documentation
_i32 sl_DevGet | ( | _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] DeviceGetId configuration id - example SL_DEVICE_STATUS [out] pOption Get 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] pConfigLen The 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] pValues Get configurations values
- See also:
- Note:
- Warning:
- Examples:
Example for getting WLAN class status: _u32 statusWlan; _u8 pConfigOpt; _u8 pConfigLen; pConfigOpt = SL_EVENT_CLASS_WLAN; sl_DevGet(SL_DEVICE_STATUS,&pConfigOpt,&pConfigLen,(_u8 *)(&statusWlan)); Example for getting version: SlVersionFull ver; pConfigOpt = SL_DEVICE_GENERAL_VERSION; sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION,&pConfigOpt,&pConfigLen,(_u8 *)(&ver)); 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", ver.ChipFwAndPhyVersion.ChipId, ver.ChipFwAndPhyVersion.FwVersion[0],ver.ChipFwAndPhyVersion.FwVersion[1], ver.ChipFwAndPhyVersion.FwVersion[2],ver.ChipFwAndPhyVersion.FwVersion[3], ver.ChipFwAndPhyVersion.PhyVersion[0],ver.ChipFwAndPhyVersion.PhyVersion[1], ver.ChipFwAndPhyVersion.PhyVersion[2],ver.ChipFwAndPhyVersion.PhyVersion[3], ver.NwpVersion[0],ver.NwpVersion[1],ver.NwpVersion[2],ver.NwpVersion[3], ver.RomVersion, SL_MAJOR_VERSION_NUM,SL_MINOR_VERSION_NUM,SL_VERSION_NUM,SL_SUB_VERSION_NUM);
Getting Device time and date example: SlDateTime_t dateTime = {0}; _i8 configLen = sizeof(SlDateTime_t); _i8 configOpt = SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME; sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION,&configOpt, &configLen,(_u8 *)(&dateTime)); 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 dateTime.sl_tm_hour,dateTime.sl_tm_min,dateTime.sl_tm_sec);
Definition at line 347 of file cc3100_device.cpp.
_i32 sl_DevSet | ( | _u8 | DeviceSetId, |
_u8 | Option, | ||
_u8 | ConfigLen, | ||
_u8 * | pValues | ||
) |
Internal function for setting device configurations.
- Returns:
- On success, zero is returned. On error, -1 is returned
- Parameters:
-
[in] DeviceSetId configuration id [in] Option configurations option [in] ConfigLen configurations len [in] pValues configurations values
- See also:
- Note:
- Warning:
- Examples:
Setting device time and date example: SlDateTime_t dateTime= {0}; dateTime.sl_tm_day = (_u32)23; // Day of month (DD format) range 1-13 dateTime.sl_tm_mon = (_u32)6; // Month (MM format) in the range of 1-12 dateTime.sl_tm_year = (_u32)2014; // Year (YYYY format) dateTime.sl_tm_hour = (_u32)17; // Hours in the range of 0-23 dateTime.sl_tm_min = (_u32)55; // Minutes in the range of 0-59 dateTime.sl_tm_sec = (_u32)22; // Seconds in the range of 0-59 sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION, SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME, sizeof(SlDateTime_t), (_u8 *)(&dateTime));
Definition at line 412 of file cc3100_device.cpp.
_i16 sl_EventMaskGet | ( | _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] EventClass The 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] pMask Pointer 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:
An example of getting an event mask for WLAN class _u32 maskWlan; sl_StatusGet(SL_EVENT_CLASS_WLAN,&maskWlan);
Definition at line 314 of file cc3100_device.cpp.
_i16 sl_EventMaskSet | ( | _u8 | EventClass, |
_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] EventClass The 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] Mask Event 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_FATAL_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:
An example of masking connection/disconnection async events from WLAN class: sl_EventMaskSet(SL_EVENT_CLASS_WLAN, (SL_WLAN_CONNECT_EVENT | SL_WLAN_DISCONNECT_EVENT) );
Definition at line 284 of file cc3100_device.cpp.
_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] pIfHdl Opened 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] pDevName The 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] pInitCallBack Pointer 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:
An example for open interface without callback routine. The interface name and handler are handled by the sl_IfOpen routine: if( sl_Start(NULL, NULL, NULL) < 0 ) { LOG("Error opening interface to device\n"); }
Definition at line 95 of file cc3100_device.cpp.
_i16 sl_Stop | ( | _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] timeout Stop 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.
- 0 Enter to hibernate immediately
- 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:
Definition at line 215 of file cc3100_device.cpp.
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
Definition at line 83 of file cc3100_device.cpp.
_i16 sl_UartSetMode | ( | const SlUartIfParams_t * | pUartParams ) |
Setting the internal uart mode.
- Parameters:
-
[in] pUartParams Pointer 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
Definition at line 487 of file cc3100_device.cpp.
Generated on Tue Jul 12 2022 22:55:21 by 1.7.2