Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

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