TI's CC3100 websocket camera demo with Arducam mini ov5642 and freertos. Should work with other M3's. Work in progress test demo.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers fPtr_func.h Source File

fPtr_func.h

00001 /*
00002  *  - 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 #ifndef fPtr_func_h
00038 #define fPtr_func_h
00039 
00040 #include "simplelink/cc3100_simplelink.h"
00041 
00042 
00043 /* Note. C function pointers point to the functions below. */
00044 /* C++ member function pointers not used ?           */
00045 
00046 namespace mbed_cc3100 { 
00047 
00048     extern uint32_t  g_PingPacketsRecv;
00049     extern uint32_t  g_GatewayIP;
00050     extern uint32_t  g_StationIP;
00051     extern uint32_t  g_DestinationIP;
00052     extern uint32_t  g_BytesReceived; // variable to store the file size 
00053     extern uint32_t  g_Status;
00054     extern uint8_t   g_buff[MAX_BUFF_SIZE+1];
00055     extern int32_t   g_SockID;
00056     
00057 }//namespace mbed_cc3100    
00058     
00059 using namespace mbed_cc3100;
00060     
00061 #ifdef __cplusplus
00062 extern "C" {
00063 #endif     
00064     
00065 
00066 void SimpleLinkPingReport(SlPingReport_t *pPingReport);
00067    
00068 /*!
00069     \brief WLAN Async event handler
00070 
00071     \param[out]      pSlWlanEvent   pointer to SlWlanEvent_t data
00072 
00073     \par
00074              Parameters:
00075 
00076              - <b>pSlWlanEvent->Event = SL_WLAN_CONNECT_EVENT </b>, STA or P2P client connection indication event
00077                  - pSlWlanEvent->EventData.STAandP2PModeWlanConnected main fields:
00078                       - ssid_name
00079                       - ssid_len
00080                       - bssid
00081                       - go_peer_device_name
00082                       - go_peer_device_name_len
00083 
00084              - <b>pSlWlanEvent->Event = SL_WLAN_DISCONNECT_EVENT </b>, STA or P2P client disconnection event
00085                  - pSlWlanEvent->EventData.STAandP2PModeDisconnected main fields:
00086                       - ssid_name
00087                       - ssid_len
00088                       - reason_code
00089 
00090              - <b>pSlWlanEvent->Event = SL_WLAN_STA_CONNECTED_EVENT </b>, AP/P2P(Go) connected STA/P2P(Client)
00091                   - pSlWlanEvent->EventData.APModeStaConnected fields:
00092                       - go_peer_device_name
00093                       - mac
00094                       - go_peer_device_name_len
00095                       - wps_dev_password_id
00096                       - own_ssid:  relevant for event sta-connected only
00097                       - own_ssid_len:  relevant for event sta-connected only
00098 
00099              - <b>pSlWlanEvent->Event = SL_WLAN_STA_DISCONNECTED_EVENT </b>, AP/P2P(Go) disconnected STA/P2P(Client)
00100                   - pSlWlanEvent->EventData.APModestaDisconnected fields:
00101                       - go_peer_device_name
00102                       - mac
00103                       - go_peer_device_name_len
00104                       - wps_dev_password_id
00105                       - own_ssid:  relevant for event sta-connected only
00106                       - own_ssid_len:  relevant for event sta-connected only
00107 
00108              - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_COMPLETE_EVENT </b>
00109                   - pSlWlanEvent->EventData.smartConfigStartResponse fields:
00110                      - status
00111                      - ssid_len
00112                      - ssid
00113                      - private_token_len
00114                      - private_token
00115 
00116              - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_STOP_EVENT </b>
00117                      - pSlWlanEvent->EventData.smartConfigStopResponse fields:
00118                          - status
00119 
00120              - <b>pSlWlanEvent->Event = SL_WLAN_P2P_DEV_FOUND_EVENT </b>
00121                      - pSlWlanEvent->EventData.P2PModeDevFound fields:
00122                          - go_peer_device_name
00123                          - mac
00124                          - go_peer_device_name_len
00125                          - wps_dev_password_id
00126                          - own_ssid:  relevant for event sta-connected only
00127                          - own_ssid_len:  relevant for event sta-connected only
00128 
00129              - <b>pSlWlanEvent->Event = SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT </b>
00130                       - pSlWlanEvent->EventData.P2PModeNegReqReceived fields
00131                           - go_peer_device_name
00132                           - mac
00133                           - go_peer_device_name_len
00134                           - wps_dev_password_id
00135                           - own_ssid:  relevant for event sta-connected only
00136 
00137              - <b>pSlWlanEvent->Event = SL_WLAN_CONNECTION_FAILED_EVENT </b>, P2P only
00138                        - pSlWlanEvent->EventData.P2PModewlanConnectionFailure fields:
00139                            - status
00140 */
00141 #if (defined(sl_WlanEvtHdlr))
00142 void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent);
00143 #endif
00144 
00145 /*!
00146     \brief NETAPP Async event handler
00147 
00148     \param[out]      pSlNetApp   pointer to SlNetAppEvent_t data
00149 
00150     \par
00151              Parameters:
00152               - <b>pSlWlanEvent->Event = SL_NETAPP_IPV4_IPACQUIRED_EVENT</b>, IPV4 acquired event
00153                   - pSlWlanEvent->EventData.ipAcquiredV4 fields:
00154                        - ip
00155                        - gateway
00156                        - dns
00157 
00158               - <b>pSlWlanEvent->Event = SL_NETAPP_IP_LEASED_EVENT</b>, AP or P2P go dhcp lease event
00159                   - pSlWlanEvent->EventData.ipLeased  fields:
00160                        - ip_address
00161                        - lease_time
00162                        - mac
00163 
00164               - <b>pSlWlanEvent->Event = SL_NETAPP_IP_RELEASED_EVENT</b>, AP or P2P go dhcp ip release event
00165                    - pSlWlanEvent->EventData.ipReleased fields
00166                        - ip_address
00167                        - mac
00168                        - reason
00169 
00170 */
00171 #if (defined(sl_NetAppEvtHdlr))
00172 void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent);
00173 #endif
00174 
00175 /*!
00176     \brief Socket Async event handler
00177 
00178     \param[out]      pSlSockEvent   pointer to SlSockEvent_t data
00179 
00180     \par
00181              Parameters:\n
00182              - <b>pSlSockEvent->Event = SL_SOCKET_TX_FAILED_EVENT</b>
00183                  - pSlSockEvent->EventData fields:
00184                      - sd
00185                      - status
00186              - <b>pSlSockEvent->Event = SL_SOCKET_ASYNC_EVENT</b>
00187                 - pSlSockEvent->EventData fields:
00188                      - sd
00189                      - type: SSL_ACCEPT  or RX_FRAGMENTATION_TOO_BIG or OTHER_SIDE_CLOSE_SSL_DATA_NOT_ENCRYPTED
00190                      - val
00191 
00192 */
00193 #if (defined(sl_SockEvtHdlr))
00194 void SimpleLinkSockEventHandler(SlSockEvent_t *pSock);
00195 #endif
00196 
00197 void SimpleLinkGeneralEventHandler(SlDeviceEvent_t *pDevEvent);
00198 
00199 void SimpleLinkHttpServerCallback(SlHttpServerEvent_t *pHttpEvent, SlHttpServerResponse_t *pHttpResponse);
00200 #ifndef SL_TINY_EXT
00201 void _sl_HandleAsync_Accept(void *pVoidBuf);
00202 
00203 void _sl_HandleAsync_Select(void *pVoidBuf);
00204 
00205 void _sl_HandleAsync_DnsGetHostByService(void *pVoidBuf);
00206 
00207 void _sl_HandleAsync_PingResponse(void *pVoidBuf);
00208 #endif
00209 void _sl_HandleAsync_Connect(void *pVoidBuf);
00210 
00211 void _sl_HandleAsync_DnsGetHostByName(void *pVoidBuf);
00212 
00213 void _sl_HandleAsync_Stop(void *pVoidBuf);
00214 
00215 _SlReturnVal_t _SlDrvMsgReadSpawnCtx(void *pValue);
00216 
00217 void _SlDrvDeviceEventHandler(void *pArgs);
00218 
00219 void _SlDrvNetAppEventHandler(void *pArgs);
00220 
00221 void _SlDrvHandleHttpServerEvents(SlHttpServerEvent_t *slHttpServerEvent, SlHttpServerResponse_t *slHttpServerResponse);
00222 void _SlDrvHandleSockEvents(SlSockEvent_t *slSockEvent);
00223 void _SlDrvHandleNetAppEvents(SlNetAppEvent_t *slNetAppEvent);
00224 void _SlDrvHandleWlanEvents(SlWlanEvent_t *slWlanEvent);
00225 void _SlDrvHandleGeneralEvents(SlDeviceEvent_t *slGeneralEvent);
00226 
00227 #ifdef  __cplusplus
00228 }
00229 #endif /*  __cplusplus */
00230 
00231 //}//namespace mbed_cc3100
00232 
00233 #endif//fPtr_func_h
00234 
00235 
00236 
00237 
00238 
00239 
00240