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.
simplelink/G_functions/fPtr_func.h@22:f9b5e0b80bf2, 2015-09-15 (annotated)
- Committer:
- dflet
- Date:
- Tue Sep 15 16:45:04 2015 +0000
- Revision:
- 22:f9b5e0b80bf2
- Parent:
- 0:50cedd586816
Removed some debug.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dflet | 0:50cedd586816 | 1 | /* |
dflet | 0:50cedd586816 | 2 | * - CC31xx/CC32xx Host Driver Implementation |
dflet | 0:50cedd586816 | 3 | * |
dflet | 0:50cedd586816 | 4 | * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ |
dflet | 0:50cedd586816 | 5 | * |
dflet | 0:50cedd586816 | 6 | * |
dflet | 0:50cedd586816 | 7 | * Redistribution and use in source and binary forms, with or without |
dflet | 0:50cedd586816 | 8 | * modification, are permitted provided that the following conditions |
dflet | 0:50cedd586816 | 9 | * are met: |
dflet | 0:50cedd586816 | 10 | * |
dflet | 0:50cedd586816 | 11 | * Redistributions of source code must retain the above copyright |
dflet | 0:50cedd586816 | 12 | * notice, this list of conditions and the following disclaimer. |
dflet | 0:50cedd586816 | 13 | * |
dflet | 0:50cedd586816 | 14 | * Redistributions in binary form must reproduce the above copyright |
dflet | 0:50cedd586816 | 15 | * notice, this list of conditions and the following disclaimer in the |
dflet | 0:50cedd586816 | 16 | * documentation and/or other materials provided with the |
dflet | 0:50cedd586816 | 17 | * distribution. |
dflet | 0:50cedd586816 | 18 | * |
dflet | 0:50cedd586816 | 19 | * Neither the name of Texas Instruments Incorporated nor the names of |
dflet | 0:50cedd586816 | 20 | * its contributors may be used to endorse or promote products derived |
dflet | 0:50cedd586816 | 21 | * from this software without specific prior written permission. |
dflet | 0:50cedd586816 | 22 | * |
dflet | 0:50cedd586816 | 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
dflet | 0:50cedd586816 | 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
dflet | 0:50cedd586816 | 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
dflet | 0:50cedd586816 | 26 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
dflet | 0:50cedd586816 | 27 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
dflet | 0:50cedd586816 | 28 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
dflet | 0:50cedd586816 | 29 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
dflet | 0:50cedd586816 | 30 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
dflet | 0:50cedd586816 | 31 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
dflet | 0:50cedd586816 | 32 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
dflet | 0:50cedd586816 | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
dflet | 0:50cedd586816 | 34 | * |
dflet | 0:50cedd586816 | 35 | */ |
dflet | 0:50cedd586816 | 36 | |
dflet | 0:50cedd586816 | 37 | #ifndef fPtr_func_h |
dflet | 0:50cedd586816 | 38 | #define fPtr_func_h |
dflet | 0:50cedd586816 | 39 | |
dflet | 0:50cedd586816 | 40 | #include "simplelink/cc3100_simplelink.h" |
dflet | 0:50cedd586816 | 41 | |
dflet | 0:50cedd586816 | 42 | |
dflet | 0:50cedd586816 | 43 | /* Note. C function pointers point to the functions below. */ |
dflet | 0:50cedd586816 | 44 | /* C++ member function pointers not used ? */ |
dflet | 0:50cedd586816 | 45 | |
dflet | 0:50cedd586816 | 46 | namespace mbed_cc3100 { |
dflet | 0:50cedd586816 | 47 | |
dflet | 0:50cedd586816 | 48 | extern uint32_t g_PingPacketsRecv; |
dflet | 0:50cedd586816 | 49 | extern uint32_t g_GatewayIP; |
dflet | 0:50cedd586816 | 50 | extern uint32_t g_StationIP; |
dflet | 0:50cedd586816 | 51 | extern uint32_t g_DestinationIP; |
dflet | 0:50cedd586816 | 52 | extern uint32_t g_BytesReceived; // variable to store the file size |
dflet | 0:50cedd586816 | 53 | extern uint32_t g_Status; |
dflet | 0:50cedd586816 | 54 | extern uint8_t g_buff[MAX_BUFF_SIZE+1]; |
dflet | 0:50cedd586816 | 55 | extern int32_t g_SockID; |
dflet | 0:50cedd586816 | 56 | |
dflet | 0:50cedd586816 | 57 | }//namespace mbed_cc3100 |
dflet | 0:50cedd586816 | 58 | |
dflet | 0:50cedd586816 | 59 | using namespace mbed_cc3100; |
dflet | 0:50cedd586816 | 60 | |
dflet | 0:50cedd586816 | 61 | #ifdef __cplusplus |
dflet | 0:50cedd586816 | 62 | extern "C" { |
dflet | 0:50cedd586816 | 63 | #endif |
dflet | 0:50cedd586816 | 64 | |
dflet | 0:50cedd586816 | 65 | |
dflet | 0:50cedd586816 | 66 | void SimpleLinkPingReport(SlPingReport_t *pPingReport); |
dflet | 0:50cedd586816 | 67 | |
dflet | 0:50cedd586816 | 68 | /*! |
dflet | 0:50cedd586816 | 69 | \brief WLAN Async event handler |
dflet | 0:50cedd586816 | 70 | |
dflet | 0:50cedd586816 | 71 | \param[out] pSlWlanEvent pointer to SlWlanEvent_t data |
dflet | 0:50cedd586816 | 72 | |
dflet | 0:50cedd586816 | 73 | \par |
dflet | 0:50cedd586816 | 74 | Parameters: |
dflet | 0:50cedd586816 | 75 | |
dflet | 0:50cedd586816 | 76 | - <b>pSlWlanEvent->Event = SL_WLAN_CONNECT_EVENT </b>, STA or P2P client connection indication event |
dflet | 0:50cedd586816 | 77 | - pSlWlanEvent->EventData.STAandP2PModeWlanConnected main fields: |
dflet | 0:50cedd586816 | 78 | - ssid_name |
dflet | 0:50cedd586816 | 79 | - ssid_len |
dflet | 0:50cedd586816 | 80 | - bssid |
dflet | 0:50cedd586816 | 81 | - go_peer_device_name |
dflet | 0:50cedd586816 | 82 | - go_peer_device_name_len |
dflet | 0:50cedd586816 | 83 | |
dflet | 0:50cedd586816 | 84 | - <b>pSlWlanEvent->Event = SL_WLAN_DISCONNECT_EVENT </b>, STA or P2P client disconnection event |
dflet | 0:50cedd586816 | 85 | - pSlWlanEvent->EventData.STAandP2PModeDisconnected main fields: |
dflet | 0:50cedd586816 | 86 | - ssid_name |
dflet | 0:50cedd586816 | 87 | - ssid_len |
dflet | 0:50cedd586816 | 88 | - reason_code |
dflet | 0:50cedd586816 | 89 | |
dflet | 0:50cedd586816 | 90 | - <b>pSlWlanEvent->Event = SL_WLAN_STA_CONNECTED_EVENT </b>, AP/P2P(Go) connected STA/P2P(Client) |
dflet | 0:50cedd586816 | 91 | - pSlWlanEvent->EventData.APModeStaConnected fields: |
dflet | 0:50cedd586816 | 92 | - go_peer_device_name |
dflet | 0:50cedd586816 | 93 | - mac |
dflet | 0:50cedd586816 | 94 | - go_peer_device_name_len |
dflet | 0:50cedd586816 | 95 | - wps_dev_password_id |
dflet | 0:50cedd586816 | 96 | - own_ssid: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 97 | - own_ssid_len: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 98 | |
dflet | 0:50cedd586816 | 99 | - <b>pSlWlanEvent->Event = SL_WLAN_STA_DISCONNECTED_EVENT </b>, AP/P2P(Go) disconnected STA/P2P(Client) |
dflet | 0:50cedd586816 | 100 | - pSlWlanEvent->EventData.APModestaDisconnected fields: |
dflet | 0:50cedd586816 | 101 | - go_peer_device_name |
dflet | 0:50cedd586816 | 102 | - mac |
dflet | 0:50cedd586816 | 103 | - go_peer_device_name_len |
dflet | 0:50cedd586816 | 104 | - wps_dev_password_id |
dflet | 0:50cedd586816 | 105 | - own_ssid: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 106 | - own_ssid_len: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 107 | |
dflet | 0:50cedd586816 | 108 | - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_COMPLETE_EVENT </b> |
dflet | 0:50cedd586816 | 109 | - pSlWlanEvent->EventData.smartConfigStartResponse fields: |
dflet | 0:50cedd586816 | 110 | - status |
dflet | 0:50cedd586816 | 111 | - ssid_len |
dflet | 0:50cedd586816 | 112 | - ssid |
dflet | 0:50cedd586816 | 113 | - private_token_len |
dflet | 0:50cedd586816 | 114 | - private_token |
dflet | 0:50cedd586816 | 115 | |
dflet | 0:50cedd586816 | 116 | - <b>pSlWlanEvent->Event = SL_WLAN_SMART_CONFIG_STOP_EVENT </b> |
dflet | 0:50cedd586816 | 117 | - pSlWlanEvent->EventData.smartConfigStopResponse fields: |
dflet | 0:50cedd586816 | 118 | - status |
dflet | 0:50cedd586816 | 119 | |
dflet | 0:50cedd586816 | 120 | - <b>pSlWlanEvent->Event = SL_WLAN_P2P_DEV_FOUND_EVENT </b> |
dflet | 0:50cedd586816 | 121 | - pSlWlanEvent->EventData.P2PModeDevFound fields: |
dflet | 0:50cedd586816 | 122 | - go_peer_device_name |
dflet | 0:50cedd586816 | 123 | - mac |
dflet | 0:50cedd586816 | 124 | - go_peer_device_name_len |
dflet | 0:50cedd586816 | 125 | - wps_dev_password_id |
dflet | 0:50cedd586816 | 126 | - own_ssid: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 127 | - own_ssid_len: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 128 | |
dflet | 0:50cedd586816 | 129 | - <b>pSlWlanEvent->Event = SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT </b> |
dflet | 0:50cedd586816 | 130 | - pSlWlanEvent->EventData.P2PModeNegReqReceived fields |
dflet | 0:50cedd586816 | 131 | - go_peer_device_name |
dflet | 0:50cedd586816 | 132 | - mac |
dflet | 0:50cedd586816 | 133 | - go_peer_device_name_len |
dflet | 0:50cedd586816 | 134 | - wps_dev_password_id |
dflet | 0:50cedd586816 | 135 | - own_ssid: relevant for event sta-connected only |
dflet | 0:50cedd586816 | 136 | |
dflet | 0:50cedd586816 | 137 | - <b>pSlWlanEvent->Event = SL_WLAN_CONNECTION_FAILED_EVENT </b>, P2P only |
dflet | 0:50cedd586816 | 138 | - pSlWlanEvent->EventData.P2PModewlanConnectionFailure fields: |
dflet | 0:50cedd586816 | 139 | - status |
dflet | 0:50cedd586816 | 140 | */ |
dflet | 0:50cedd586816 | 141 | #if (defined(sl_WlanEvtHdlr)) |
dflet | 0:50cedd586816 | 142 | void SimpleLinkWlanEventHandler(SlWlanEvent_t *pWlanEvent); |
dflet | 0:50cedd586816 | 143 | #endif |
dflet | 0:50cedd586816 | 144 | |
dflet | 0:50cedd586816 | 145 | /*! |
dflet | 0:50cedd586816 | 146 | \brief NETAPP Async event handler |
dflet | 0:50cedd586816 | 147 | |
dflet | 0:50cedd586816 | 148 | \param[out] pSlNetApp pointer to SlNetAppEvent_t data |
dflet | 0:50cedd586816 | 149 | |
dflet | 0:50cedd586816 | 150 | \par |
dflet | 0:50cedd586816 | 151 | Parameters: |
dflet | 0:50cedd586816 | 152 | - <b>pSlWlanEvent->Event = SL_NETAPP_IPV4_IPACQUIRED_EVENT</b>, IPV4 acquired event |
dflet | 0:50cedd586816 | 153 | - pSlWlanEvent->EventData.ipAcquiredV4 fields: |
dflet | 0:50cedd586816 | 154 | - ip |
dflet | 0:50cedd586816 | 155 | - gateway |
dflet | 0:50cedd586816 | 156 | - dns |
dflet | 0:50cedd586816 | 157 | |
dflet | 0:50cedd586816 | 158 | - <b>pSlWlanEvent->Event = SL_NETAPP_IP_LEASED_EVENT</b>, AP or P2P go dhcp lease event |
dflet | 0:50cedd586816 | 159 | - pSlWlanEvent->EventData.ipLeased fields: |
dflet | 0:50cedd586816 | 160 | - ip_address |
dflet | 0:50cedd586816 | 161 | - lease_time |
dflet | 0:50cedd586816 | 162 | - mac |
dflet | 0:50cedd586816 | 163 | |
dflet | 0:50cedd586816 | 164 | - <b>pSlWlanEvent->Event = SL_NETAPP_IP_RELEASED_EVENT</b>, AP or P2P go dhcp ip release event |
dflet | 0:50cedd586816 | 165 | - pSlWlanEvent->EventData.ipReleased fields |
dflet | 0:50cedd586816 | 166 | - ip_address |
dflet | 0:50cedd586816 | 167 | - mac |
dflet | 0:50cedd586816 | 168 | - reason |
dflet | 0:50cedd586816 | 169 | |
dflet | 0:50cedd586816 | 170 | */ |
dflet | 0:50cedd586816 | 171 | #if (defined(sl_NetAppEvtHdlr)) |
dflet | 0:50cedd586816 | 172 | void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent); |
dflet | 0:50cedd586816 | 173 | #endif |
dflet | 0:50cedd586816 | 174 | |
dflet | 0:50cedd586816 | 175 | /*! |
dflet | 0:50cedd586816 | 176 | \brief Socket Async event handler |
dflet | 0:50cedd586816 | 177 | |
dflet | 0:50cedd586816 | 178 | \param[out] pSlSockEvent pointer to SlSockEvent_t data |
dflet | 0:50cedd586816 | 179 | |
dflet | 0:50cedd586816 | 180 | \par |
dflet | 0:50cedd586816 | 181 | Parameters:\n |
dflet | 0:50cedd586816 | 182 | - <b>pSlSockEvent->Event = SL_SOCKET_TX_FAILED_EVENT</b> |
dflet | 0:50cedd586816 | 183 | - pSlSockEvent->EventData fields: |
dflet | 0:50cedd586816 | 184 | - sd |
dflet | 0:50cedd586816 | 185 | - status |
dflet | 0:50cedd586816 | 186 | - <b>pSlSockEvent->Event = SL_SOCKET_ASYNC_EVENT</b> |
dflet | 0:50cedd586816 | 187 | - pSlSockEvent->EventData fields: |
dflet | 0:50cedd586816 | 188 | - sd |
dflet | 0:50cedd586816 | 189 | - type: SSL_ACCEPT or RX_FRAGMENTATION_TOO_BIG or OTHER_SIDE_CLOSE_SSL_DATA_NOT_ENCRYPTED |
dflet | 0:50cedd586816 | 190 | - val |
dflet | 0:50cedd586816 | 191 | |
dflet | 0:50cedd586816 | 192 | */ |
dflet | 0:50cedd586816 | 193 | #if (defined(sl_SockEvtHdlr)) |
dflet | 0:50cedd586816 | 194 | void SimpleLinkSockEventHandler(SlSockEvent_t *pSock); |
dflet | 0:50cedd586816 | 195 | #endif |
dflet | 0:50cedd586816 | 196 | |
dflet | 0:50cedd586816 | 197 | void SimpleLinkGeneralEventHandler(SlDeviceEvent_t *pDevEvent); |
dflet | 0:50cedd586816 | 198 | |
dflet | 0:50cedd586816 | 199 | void SimpleLinkHttpServerCallback(SlHttpServerEvent_t *pHttpEvent, SlHttpServerResponse_t *pHttpResponse); |
dflet | 0:50cedd586816 | 200 | #ifndef SL_TINY_EXT |
dflet | 0:50cedd586816 | 201 | void _sl_HandleAsync_Accept(void *pVoidBuf); |
dflet | 0:50cedd586816 | 202 | |
dflet | 0:50cedd586816 | 203 | void _sl_HandleAsync_Select(void *pVoidBuf); |
dflet | 0:50cedd586816 | 204 | |
dflet | 0:50cedd586816 | 205 | void _sl_HandleAsync_DnsGetHostByService(void *pVoidBuf); |
dflet | 0:50cedd586816 | 206 | |
dflet | 0:50cedd586816 | 207 | void _sl_HandleAsync_PingResponse(void *pVoidBuf); |
dflet | 0:50cedd586816 | 208 | #endif |
dflet | 0:50cedd586816 | 209 | void _sl_HandleAsync_Connect(void *pVoidBuf); |
dflet | 0:50cedd586816 | 210 | |
dflet | 0:50cedd586816 | 211 | void _sl_HandleAsync_DnsGetHostByName(void *pVoidBuf); |
dflet | 0:50cedd586816 | 212 | |
dflet | 0:50cedd586816 | 213 | void _sl_HandleAsync_Stop(void *pVoidBuf); |
dflet | 0:50cedd586816 | 214 | |
dflet | 0:50cedd586816 | 215 | _SlReturnVal_t _SlDrvMsgReadSpawnCtx(void *pValue); |
dflet | 0:50cedd586816 | 216 | |
dflet | 0:50cedd586816 | 217 | void _SlDrvDeviceEventHandler(void *pArgs); |
dflet | 0:50cedd586816 | 218 | |
dflet | 0:50cedd586816 | 219 | void _SlDrvNetAppEventHandler(void *pArgs); |
dflet | 0:50cedd586816 | 220 | |
dflet | 0:50cedd586816 | 221 | void _SlDrvHandleHttpServerEvents(SlHttpServerEvent_t *slHttpServerEvent, SlHttpServerResponse_t *slHttpServerResponse); |
dflet | 0:50cedd586816 | 222 | void _SlDrvHandleSockEvents(SlSockEvent_t *slSockEvent); |
dflet | 0:50cedd586816 | 223 | void _SlDrvHandleNetAppEvents(SlNetAppEvent_t *slNetAppEvent); |
dflet | 0:50cedd586816 | 224 | void _SlDrvHandleWlanEvents(SlWlanEvent_t *slWlanEvent); |
dflet | 0:50cedd586816 | 225 | void _SlDrvHandleGeneralEvents(SlDeviceEvent_t *slGeneralEvent); |
dflet | 0:50cedd586816 | 226 | |
dflet | 0:50cedd586816 | 227 | #ifdef __cplusplus |
dflet | 0:50cedd586816 | 228 | } |
dflet | 0:50cedd586816 | 229 | #endif /* __cplusplus */ |
dflet | 0:50cedd586816 | 230 | |
dflet | 0:50cedd586816 | 231 | //}//namespace mbed_cc3100 |
dflet | 0:50cedd586816 | 232 | |
dflet | 0:50cedd586816 | 233 | #endif//fPtr_func_h |
dflet | 0:50cedd586816 | 234 | |
dflet | 0:50cedd586816 | 235 | |
dflet | 0:50cedd586816 | 236 | |
dflet | 0:50cedd586816 | 237 | |
dflet | 0:50cedd586816 | 238 | |
dflet | 0:50cedd586816 | 239 | |
dflet | 0:50cedd586816 | 240 |