TI's CC3100 host driver and demo. Experimental and a work in progress.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cc3100_simplelink.h Source File

cc3100_simplelink.h

00001 /*
00002  * simplelink.h - CC31xx/CC32xx Host Driver Implementation
00003  *
00004  * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ 
00005  * 
00006  * 
00007  *  Redistribution and use in source and binary forms, with or without 
00008  *  modification, are permitted provided that the following conditions 
00009  *  are met:
00010  *
00011  *    Redistributions of source code must retain the above copyright 
00012  *    notice, this list of conditions and the following disclaimer.
00013  *
00014  *    Redistributions in binary form must reproduce the above copyright
00015  *    notice, this list of conditions and the following disclaimer in the 
00016  *    documentation and/or other materials provided with the   
00017  *    distribution.
00018  *
00019  *    Neither the name of Texas Instruments Incorporated nor the names of
00020  *    its contributors may be used to endorse or promote products derived
00021  *    from this software without specific prior written permission.
00022  *
00023  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00024  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
00025  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00026  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
00027  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
00028  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
00029  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00030  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00031  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
00032  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
00033  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034  *
00035 */
00036 
00037 
00038 /*!
00039     \mainpage SimpleLink Driver
00040 
00041     \section intro_sec Introduction
00042 
00043  The SimpleLink CC31xx/CC2xx family allows to add Wi-Fi and networking capabilities
00044  to low-cost embedded products without having prior Wi-Fi, RF or networking expertise.
00045  The CC31xx/CC32xx is an ideal solution for microcontroller-based sensor and control
00046  applications such as home appliances, home automation and smart metering.
00047  The CC31xx/CC32xx has integrated a comprehensive TCP/IP network stack, Wi-Fi driver and
00048  security supplicant leading to easier portability to microcontrollers, to an
00049  ultra-low memory footprint, all without compromising the capabilities and robustness
00050  of the final application.
00051 
00052 
00053 
00054  \section modules_sec Module Names
00055  To make it simple, TI's SimpleLink CC31xx/CC32xx platform capabilities were divided into modules by topic (Silo). 
00056  These capabilities range from basic device management through wireless
00057  network configuration, standard BSD socket and much more.
00058  Listed below are the various modules in the SimpleLink CC31xx/CC32xx driver:
00059      -# \ref device - controls the behaviour of the CC31xx/CC32xx device (start/stop, events masking and obtaining specific device status)
00060      -# \ref wlan - controls the use of the WiFi WLAN module including:
00061        - Connection features, such as: profiles, policies, SmartConfig�
00062        - Advanced WLAN features, such as: scans, rx filters and rx statistics collection
00063      -# \ref socket - controls standard client/server sockets programming options and capabilities 
00064      -# \ref netapp - activates networking applications, such as: HTTP Server, DHCP Server, Ping, DNS and mDNS.
00065      -# \ref netcfg - controls the configuration of the device addresses (i.e. IP and MAC addresses)
00066      -# \ref FileSystem     - provides file system capabilities to TI's CC31XX that can be used by both the CC31XX device and the user.
00067 
00068 
00069  \section         proting_sec     Porting Guide
00070 
00071  The porting of the SimpleLink driver to any new platform is based on few simple steps.
00072  This guide takes you through this process step by step. Please follow the instructions
00073  carefully to avoid any problems during this process and to enable efficient and proper
00074  work with the device.
00075  Please notice that all modifications and porting adjustments of the driver should be
00076  made in the user.h header file only.
00077  Keep making any of the changes only in this file will ensure smoothly transaction to
00078  new versions of the driver at the future!
00079 
00080 
00081  \subsection     porting_step1   Step 1 - Create your own user.h file
00082 
00083  The first step is to create a user.h file that will include your configurations and
00084  adjustments. You can use the empty template provided as part of this driver or
00085  you can choose to base your file on file from one of the wide range of examples
00086  applications provided by Texas Instruments
00087 
00088 
00089  \subsection    porting_step2   Step 2 - Select the capabilities set required for your application
00090 
00091  Texas Instruments made a lot of efforts to build set of predefined capability sets that would
00092  fit most of the target application.
00093  It is recommended to try and choose one of this predefined capabilities set before going to
00094  build your own customized set. If you find compatible set you can skip the rest of this step.
00095 
00096  The available sets are:
00097      -# SL_TINY     -   Compatible to be used on platforms with very limited resources. Provides
00098                         the best in class foot print in terms of Code and Data consumption.
00099      -# SL_SMALL    -   Compatible to most common networking applications. Provide the most
00100                         common APIs with decent balance between code size, data size, functionality
00101                         and performances
00102      -# SL_FULL     -   Provide access to all SimpleLink functionalities
00103 
00104 
00105  \subsection    porting_step3   Step 3 - Bind the device enable/disable output line
00106 
00107  The enable/disable line (nHib) provide mechanism to enter the device into the least current
00108  consumption mode. This mode could be used when no traffic is required (tx/rx).
00109  when this line is not connected to any IO of the host this define should be left empty.
00110  Not connecting this line results in ability to start the driver only once.
00111 
00112 
00113  \subsection    porting_step4   Step 4 - Writing your interface communication driver
00114 
00115  The SimpleLink device support several standard communication protocol among SPI and
00116  UART. Depending on your needs and your hardware design, you should choose the
00117  communication channel type.
00118  The interface for this communication channel should include 4 simple access functions:
00119  -# open
00120  -# close
00121  -# read
00122  -# write
00123 
00124  The way this driver would be implemented is directly effecting the efficiency and
00125  the performances of the SimpleLink device on this platform.
00126  If your system has DMA you should consider to use it in order to increase the utilization
00127  of the communication channel
00128  If you have enough memory resources you should consider using a buffer to increase the
00129  efficiency of the write operations.
00130 
00131 
00132  \subsection     porting_step5   Step 5 - Choose your memory management model
00133 
00134  The SimpleLink driver support two memory models:
00135      -# Static (default)
00136      -# Dynamic
00137 
00138  If you choose to work in dynamic model you will have to provide alloc and free functions
00139  to be used by the Simple Link driver otherwise nothing need to be done.
00140 
00141 
00142  \subsection     porting_step6   Step 6 - OS adaptation
00143 
00144  The SimpleLink driver could run on two kind of platforms:
00145      -# Non-Os / Single Threaded (default)
00146      -# Multi-Threaded
00147 
00148  If you choose to work in multi-threaded environment under operating system you will have to
00149  provide some basic adaptation routines to allow the driver to protect access to resources
00150  for different threads (locking object) and to allow synchronization between threads (sync objects).
00151  In additional the driver support running without dedicated thread allocated solely to the simple
00152  link driver. If you choose to work in this mode, you should also supply a spawn method that
00153  will enable to run function on a temporary context.
00154 
00155 
00156  \subsection     porting_step7   Step 7 - Set your asynchronous event handlers routines
00157 
00158  The SimpleLink device generate asynchronous events in several situations.
00159  These asynchronous events could be masked.
00160  In order to catch these events you have to provide handler routines.
00161  Please notice that if you not provide a handler routine and the event is received,
00162  the driver will drop this event without any indication of this drop.
00163 
00164 
00165  \subsection     porting_step8   Step 8 - Run diagnostic tools to validate the correctness of your porting
00166 
00167  The driver is delivered with some porting diagnostic tools to simplify the porting validation process
00168  and to reduce issues latter. It is very important to follow carefully this process.
00169 
00170  The diagnostic process include:
00171      -# Validating Interface Communication Driver
00172      -# Validating OS adaptation layer
00173      -# Validating HW integrity
00174      -# Validating basic work with the device
00175 
00176 
00177     \section sw_license License
00178 
00179  *
00180  *
00181  * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ 
00182  * 
00183  * 
00184  *  Redistribution and use in source and binary forms, with or without 
00185  *  modification, are permitted provided that the following conditions 
00186  *  are met:
00187  *
00188  *    Redistributions of source code must retain the above copyright 
00189  *    notice, this list of conditions and the following disclaimer.
00190  *
00191  *    Redistributions in binary form must reproduce the above copyright
00192  *    notice, this list of conditions and the following disclaimer in the 
00193  *    documentation and/or other materials provided with the   
00194  *    distribution.
00195  *
00196  *    Neither the name of Texas Instruments Incorporated nor the names of
00197  *    its contributors may be used to endorse or promote products derived
00198  *    from this software without specific prior written permission.
00199  *
00200  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00201  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
00202  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00203  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
00204  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
00205  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
00206  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00207  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00208  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
00209  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
00210  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00211  *
00212 */
00213     
00214     
00215 
00216 #ifndef __SIMPLELINK_H__
00217 #define    __SIMPLELINK_H__
00218 
00219 #include "cc3100_user.h"
00220 
00221 #ifdef    __cplusplus
00222 extern "C"
00223 {
00224 #endif
00225 
00226 
00227 /*! \attention  Async event activation notes
00228     Function prototypes for event callback handlers                               
00229     Event handler function names should be defined in the user.h file             
00230     e.g.                                                                          
00231     "#define sl_WlanEvtHdlr   SLWlanEventHandler"                               
00232     Indicates all WLAN events are handled by User func "SLWlanEventHandler"                                                                       
00233     Important notes:                                                              
00234     1. Event handlers cannot activate another SimpleLink API from the event's context                                                                    
00235     2. Event's data is valid during event's context. Any application data         
00236        which is required for the user application should be copied or marked      
00237        into user's variables                                                      
00238     3. It is not recommended to delay the execution of the event callback handler 
00239 
00240 */
00241 
00242 /*!
00243 
00244     \addtogroup UserEvents
00245     @{
00246 
00247 */
00248 
00249 
00250 /*****************************************************************************/
00251 /* Macro declarations for Host Driver version                                */
00252 /*****************************************************************************/
00253 #define SL_DRIVER_VERSION   "1.0.0.1"
00254 #define SL_MAJOR_VERSION_NUM    1L
00255 #define SL_MINOR_VERSION_NUM    0L
00256 #define SL_VERSION_NUM          0L
00257 #define SL_SUB_VERSION_NUM      1L
00258 
00259 
00260 /*****************************************************************************/
00261 /* Macro declarations for predefined configurations                          */
00262 /*****************************************************************************/
00263 
00264 #ifdef SL_TINY
00265 #undef SL_INC_ARG_CHECK
00266 #undef SL_INC_EXT_API
00267 #undef SL_INC_SOCK_CLIENT_SIDE_API
00268 #undef SL_INC_SOCK_SEND_API
00269 #undef SL_INC_WLAN_PKG
00270 #undef SL_INC_NET_APP_PKG
00271 #undef SL_INC_NET_CFG_PKG
00272 #undef SL_INC_FS_PKG
00273 #define SL_INC_SOCK_SERVER_SIDE_API
00274 #define SL_INC_SOCK_RECV_API
00275 #define SL_INC_SOCKET_PKG
00276 #endif
00277 
00278 #ifdef SL_SMALL
00279 #undef SL_INC_EXT_API
00280 #undef SL_INC_NET_APP_PKG
00281 #undef SL_INC_NET_CFG_PKG
00282 #undef SL_INC_FS_PKG
00283 #define SL_INC_ARG_CHECK
00284 #define SL_INC_WLAN_PKG
00285 #define SL_INC_SOCKET_PKG
00286 #define SL_INC_SOCK_CLIENT_SIDE_API
00287 #define SL_INC_SOCK_SERVER_SIDE_API
00288 #define SL_INC_SOCK_RECV_API
00289 #define SL_INC_SOCK_SEND_API
00290 #endif
00291 
00292 #ifdef SL_FULL
00293 #define SL_INC_EXT_API
00294 #define SL_INC_NET_APP_PKG
00295 #define SL_INC_NET_CFG_PKG
00296 #define SL_INC_FS_PKG
00297 #define SL_INC_ARG_CHECK
00298 #define SL_INC_WLAN_PKG
00299 #define SL_INC_SOCKET_PKG
00300 #define SL_INC_SOCK_CLIENT_SIDE_API
00301 #define SL_INC_SOCK_SERVER_SIDE_API
00302 #define SL_INC_SOCK_RECV_API
00303 #define SL_INC_SOCK_SEND_API
00304 #endif
00305 
00306 #define SL_RET_CODE_OK                          (0)
00307 #define SL_RET_CODE_INVALID_INPUT               (-2)
00308 #define SL_RET_CODE_SELF_ERROR                  (-3)
00309 #define SL_RET_CODE_NWP_IF_ERROR                (-4)
00310 #define SL_RET_CODE_MALLOC_ERROR                (-5)
00311 
00312 #define sl_Memcpy       memcpy
00313 #define sl_Memset       memset
00314 
00315 #define sl_SyncObjClear(pObj)     sl_SyncObjWait(pObj,SL_OS_NO_WAIT)
00316 
00317 #define SL_MAX_SOCKETS      (8)
00318 
00319 
00320 /*****************************************************************************/
00321 /* Types definitions                                                          */
00322 /*****************************************************************************/
00323 typedef void (*_SlSpawnEntryFunc_t)(void* pValue);
00324 
00325 #ifndef NULL
00326 #define NULL        (0)
00327 #endif
00328 
00329 #ifndef FALSE
00330 #define FALSE       (0)
00331 #endif
00332 
00333 #ifndef TRUE
00334 #define TRUE        (!FALSE)
00335 #endif
00336 
00337 #ifndef OK
00338 #define OK          (0)
00339 #endif
00340 
00341 #ifndef _SL_USER_TYPES
00342       #define _u8 unsigned char
00343       #define _i8 signed char
00344  
00345       #define _u16 unsigned short
00346       #define _i16 signed short
00347  
00348       #define _u32 unsigned long
00349       #define _i32 signed long
00350       #define _volatile volatile
00351       #define _const    const
00352 #endif
00353 
00354 typedef _u16  _SlOpcode_t;
00355 typedef _u8   _SlArgSize_t;
00356 typedef _i16   _SlDataSize_t;
00357 typedef _i16   _SlReturnVal_t;
00358 
00359 #ifdef    __cplusplus
00360 }
00361 #endif /*  __cplusplus */
00362 
00363 
00364 
00365 /*****************************************************************************/
00366 /* Include files                                                             */
00367 /*****************************************************************************/
00368 
00369 #ifdef SL_PLATFORM_MULTI_THREADED
00370     #include "cc3100_spawn.h"
00371 #else
00372     #include "cc3100_nonos.h"
00373 #endif
00374 
00375 
00376 /* 
00377    objInclusion.h and user.h must be included before all api header files 
00378    objInclusion.h must be the last arrangement just before including the API header files 
00379    since it based on the other configurations to decide which object should be included 
00380 */
00381 #include "cc3100_objInclusion.h"
00382 #include "cc3100_trace.h"
00383 #include "cc3100_fs.h"
00384 #include "cc3100_socket.h"
00385 #include "cc3100_netapp.h"
00386 #include "cc3100_wlan.h"
00387 #include "cc3100_device.h"
00388 #include "cc3100_netcfg.h"
00389 #include "cc3100_wlan_rx_filters.h"
00390 
00391 #ifdef __cplusplus
00392 extern "C" {
00393 #endif
00394 
00395 
00396 
00397 /* Async functions description*/
00398 
00399 /*!
00400     \brief General async event for inspecting general events
00401     
00402     \param[out]      pSlDeviceEvent   pointer to SlDeviceEvent_t 
00403     
00404     \par
00405           Parameters: \n
00406           <b>pSlDeviceEvent->Event = SL_DEVICE_FATAL_ERROR_EVENT </b>
00407               - pSlDeviceEvent->EventData.deviceEvent fields:      
00408                   - status: An error code indication from the device
00409                   - sender: The sender originator which is based on SlErrorSender_e enum                   
00410     
00411     \par  Example:           
00412     \code         
00413     printf(General Event Handler - ID=%d Sender=%d\n\n",
00414            pSlDeviceEvent->EventData.deviceEvent.status,  // status of the general event
00415            pSlDeviceEvent->EventData.deviceEvent.sender); // sender type
00416     \endcode
00417 */
00418 #if (defined(sl_GeneralEvtHdlr))
00419 extern void sl_GeneralEvtHdlr(SlDeviceEvent_t *pSlDeviceEvent);
00420 #endif
00421 
00422 
00423 /*!
00424     \brief WLAN Async event handler
00425     
00426     \param[out]      pSlWlanEvent   pointer to SlWlanEvent_t data 
00427     
00428     \par
00429              Parameters:
00430              
00431              - <b>pSlWlanEvent->Event = SL_WLAN_CONNECT_EVENT </b>, STA or P2P client connection indication event
00432                  - pSlWlanEvent->EventData.STAandP2PModeWlanConnected main fields:
00433                       - ssid_name
00434                       - ssid_len
00435                       - bssid
00436                       - go_peer_device_name
00437                       - go_peer_device_name_len
00438                        
00439              - <b>pSlWlanEvent->Event = SL_WLAN_DISCONNECT_EVENT </b>, STA or P2P client disconnection event                          
00440                  - pSlWlanEvent->EventData.STAandP2PModeDisconnected main fields:
00441                       - ssid_name
00442                       - ssid_len
00443                       - reason_code
00444 
00445              - <b>pSlWlanEvent->Event = SL_WLAN_STA_CONNECTED_EVENT </b>, AP/P2P(Go) connected STA/P2P(Client)                  
00446                   - pSlWlanEvent->EventData.APModeStaConnected fields:
00447                       - go_peer_device_name
00448                       - mac
00449                       - go_peer_device_name_len
00450                       - wps_dev_password_id
00451                       - own_ssid:  relevant for event sta-connected only
00452                       - own_ssid_len:  relevant for event sta-connected only
00453                       
00454              - <b>pSlWlanEvent->Event = SL_WLAN_STA_DISCONNECTED_EVENT </b>, AP/P2P(Go) disconnected STA/P2P(Client)                        
00455                   - pSlWlanEvent->EventData.APModestaDisconnected fields:
00456                       - go_peer_device_name
00457                       - mac
00458                       - go_peer_device_name_len
00459                       - wps_dev_password_id
00460                       - own_ssid:  relevant for event sta-connected only
00461                       - own_ssid_len:  relevant for event sta-connected only
00462 
00463              - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_COMPLETE_EVENT </b>                             
00464                   - pSlWlanEvent->EventData.smartConfigStartResponse fields:
00465                      - status
00466                      - ssid_len
00467                      - ssid
00468                      - private_token_len
00469                      - private_token
00470                      
00471              - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_STOP_EVENT </b>                 
00472                      - pSlWlanEvent->EventData.smartConfigStopResponse fields:       
00473                          - status
00474                          
00475              - <b>pSlWlanEvent->Event = SL_WLAN_P2P_DEV_FOUND_EVENT </b>         
00476                      - pSlWlanEvent->EventData.P2PModeDevFound fields:
00477                          - go_peer_device_name
00478                          - mac
00479                          - go_peer_device_name_len
00480                          - wps_dev_password_id
00481                          - own_ssid:  relevant for event sta-connected only
00482                          - own_ssid_len:  relevant for event sta-connected only
00483                          
00484              - <b>pSlWlanEvent->Event = SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT </b>                             
00485                       - pSlWlanEvent->EventData.P2PModeNegReqReceived fields
00486                           - go_peer_device_name
00487                           - mac
00488                           - go_peer_device_name_len
00489                           - wps_dev_password_id
00490                           - own_ssid:  relevant for event sta-connected only
00491                            
00492              - <b>pSlWlanEvent->Event = SL_WLAN_CONNECTION_FAILED_EVENT </b>, P2P only
00493                        - pSlWlanEvent->EventData.P2PModewlanConnectionFailure fields:
00494                            - status                  
00495 */
00496 #if (defined(sl_WlanEvtHdlr))
00497 extern void sl_WlanEvtHdlr(SlWlanEvent_t *pSlWlanEvent);
00498 #endif
00499 
00500 
00501 /*!
00502     \brief NETAPP Async event handler
00503     
00504     \param[out]      pSlNetApp   pointer to SlNetAppEvent_t data    
00505     
00506     \par
00507              Parameters:
00508               - <b>pSlWlanEvent->Event = SL_NETAPP_IPV4_IPACQUIRED_EVENT</b>, IPV4 acquired event
00509                   - pSlWlanEvent->EventData.ipAcquiredV4 fields:
00510                        - ip
00511                        - gateway
00512                        - dns
00513                            
00514               - <b>pSlWlanEvent->Event = SL_NETAPP_IP_LEASED_EVENT</b>, AP or P2P go dhcp lease event
00515                   - pSlWlanEvent->EventData.ipLeased  fields:
00516                        - ip_address
00517                        - lease_time
00518                        - mac
00519 
00520               - <b>pSlWlanEvent->Event = SL_NETAPP_IP_RELEASED_EVENT</b>, AP or P2P go dhcp ip release event
00521                    - pSlWlanEvent->EventData.ipReleased fields
00522                        - ip_address
00523                        - mac
00524                        - reason
00525 
00526 */
00527 #if (defined(sl_NetAppEvtHdlr))
00528 extern void sl_NetAppEvtHdlr(SlNetAppEvent_t *pSlNetApp);
00529 #endif
00530 
00531 /*!
00532     \brief Socket Async event handler
00533     
00534     \param[out]      pSlSockEvent   pointer to SlSockEvent_t data 
00535     
00536     \par
00537              Parameters:\n
00538              - <b>pSlSockEvent->Event = SL_SOCKET_TX_FAILED_EVENT</b>
00539                  - pSlSockEvent->EventData fields:
00540                      - sd
00541                      - status
00542              - <b>pSlSockEvent->Event = SL_SOCKET_ASYNC_EVENT</b>
00543                 - pSlSockEvent->EventData fields:
00544                      - sd
00545                      - type: SSL_ACCEPT  or RX_FRAGMENTATION_TOO_BIG or OTHER_SIDE_CLOSE_SSL_DATA_NOT_ENCRYPTED 
00546                      - val
00547 
00548 */
00549 #if (defined(sl_SockEvtHdlr))
00550 extern void sl_SockEvtHdlr(SlSockEvent_t *pSlSockEvent);
00551 #endif
00552 
00553 /*!
00554     \brief HTTP server async event
00555 
00556     \param[out] pSlHttpServerEvent   pointer to SlHttpServerEvent_t
00557     \param[in] pSlHttpServerResponse pointer to SlHttpServerResponse_t
00558 
00559     \par
00560           Parameters: \n
00561 
00562           - <b>pSlHttpServerEvent->Event = SL_NETAPP_HTTPGETTOKENVALUE_EVENT</b>
00563              - pSlHttpServerEvent->EventData fields:
00564                  - httpTokenName
00565                      - data
00566                      - len
00567              - pSlHttpServerResponse->ResponseData fields:
00568                      - data
00569                      - len
00570              
00571           - <b>pSlHttpServerEvent->Event = SL_NETAPP_HTTPPOSTTOKENVALUE_EVENT</b>
00572               - pSlHttpServerEvent->EventData.httpPostData fields:
00573                      - action
00574                      - token_name
00575                      - token_value                     
00576               - pSlHttpServerResponse->ResponseData fields:
00577                      - data
00578                      - len         
00579  
00580 */
00581 #if (defined(sl_HttpServerCallback))
00582 extern void sl_HttpServerCallback(SlHttpServerEvent_t *pSlHttpServerEvent, SlHttpServerResponse_t *pSlHttpServerResponse);
00583 #endif
00584 /*!
00585 
00586  Close the Doxygen group.
00587  @}
00588 
00589  */
00590  
00591 #ifdef  __cplusplus
00592 }
00593 #endif /* __cplusplus */
00594 
00595 #endif    /*  __SIMPLELINK_H__ */
00596 
00597