Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed
doTCPIP.h@0:ce33c63eefe5, 2013-09-08 (annotated)
- Committer:
- Kojto
- Date:
- Sun Sep 08 18:31:33 2013 +0000
- Revision:
- 0:ce33c63eefe5
initial version of new simple socket
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Kojto | 0:ce33c63eefe5 | 1 | /**************************************************************************** |
| Kojto | 0:ce33c63eefe5 | 2 | * |
| Kojto | 0:ce33c63eefe5 | 3 | * doTCPIP.h - CC3000 TCP/IP |
| Kojto | 0:ce33c63eefe5 | 4 | * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ |
| Kojto | 0:ce33c63eefe5 | 5 | * |
| Kojto | 0:ce33c63eefe5 | 6 | * Redistribution and use in source and binary forms, with or without |
| Kojto | 0:ce33c63eefe5 | 7 | * modification, are permitted provided that the following conditions |
| Kojto | 0:ce33c63eefe5 | 8 | * are met: |
| Kojto | 0:ce33c63eefe5 | 9 | * |
| Kojto | 0:ce33c63eefe5 | 10 | * Redistributions of source code must retain the above copyright |
| Kojto | 0:ce33c63eefe5 | 11 | * notice, this list of conditions and the following disclaimer. |
| Kojto | 0:ce33c63eefe5 | 12 | * |
| Kojto | 0:ce33c63eefe5 | 13 | * Redistributions in binary form must reproduce the above copyright |
| Kojto | 0:ce33c63eefe5 | 14 | * notice, this list of conditions and the following disclaimer in the |
| Kojto | 0:ce33c63eefe5 | 15 | * documentation and/or other materials provided with the |
| Kojto | 0:ce33c63eefe5 | 16 | * distribution. |
| Kojto | 0:ce33c63eefe5 | 17 | * |
| Kojto | 0:ce33c63eefe5 | 18 | * Neither the name of Texas Instruments Incorporated nor the names of |
| Kojto | 0:ce33c63eefe5 | 19 | * its contributors may be used to endorse or promote products derived |
| Kojto | 0:ce33c63eefe5 | 20 | * from this software without specific prior written permission. |
| Kojto | 0:ce33c63eefe5 | 21 | * |
| Kojto | 0:ce33c63eefe5 | 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| Kojto | 0:ce33c63eefe5 | 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| Kojto | 0:ce33c63eefe5 | 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| Kojto | 0:ce33c63eefe5 | 25 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| Kojto | 0:ce33c63eefe5 | 26 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| Kojto | 0:ce33c63eefe5 | 27 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| Kojto | 0:ce33c63eefe5 | 28 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| Kojto | 0:ce33c63eefe5 | 29 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| Kojto | 0:ce33c63eefe5 | 30 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| Kojto | 0:ce33c63eefe5 | 31 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| Kojto | 0:ce33c63eefe5 | 32 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| Kojto | 0:ce33c63eefe5 | 33 | * |
| Kojto | 0:ce33c63eefe5 | 34 | *****************************************************************************/ |
| Kojto | 0:ce33c63eefe5 | 35 | |
| Kojto | 0:ce33c63eefe5 | 36 | #ifndef DOTCPIP_H |
| Kojto | 0:ce33c63eefe5 | 37 | #define DOTCPIP_H |
| Kojto | 0:ce33c63eefe5 | 38 | |
| Kojto | 0:ce33c63eefe5 | 39 | #include "cc3000.h" |
| Kojto | 0:ce33c63eefe5 | 40 | |
| Kojto | 0:ce33c63eefe5 | 41 | /** TCP/IP Functions |
| Kojto | 0:ce33c63eefe5 | 42 | * |
| Kojto | 0:ce33c63eefe5 | 43 | */ |
| Kojto | 0:ce33c63eefe5 | 44 | #ifndef FALSE |
| Kojto | 0:ce33c63eefe5 | 45 | #define FALSE 0 |
| Kojto | 0:ce33c63eefe5 | 46 | #endif |
| Kojto | 0:ce33c63eefe5 | 47 | |
| Kojto | 0:ce33c63eefe5 | 48 | #ifndef TRUE |
| Kojto | 0:ce33c63eefe5 | 49 | #define TRUE 1 |
| Kojto | 0:ce33c63eefe5 | 50 | #endif |
| Kojto | 0:ce33c63eefe5 | 51 | |
| Kojto | 0:ce33c63eefe5 | 52 | #define SMART_CONFIG_SET 0x55 |
| Kojto | 0:ce33c63eefe5 | 53 | #define TCPIP_PORT 15000 |
| Kojto | 0:ce33c63eefe5 | 54 | |
| Kojto | 0:ce33c63eefe5 | 55 | #define USE_DHCP 1 |
| Kojto | 0:ce33c63eefe5 | 56 | #define USE_STATIC_IP 2 |
| Kojto | 0:ce33c63eefe5 | 57 | |
| Kojto | 0:ce33c63eefe5 | 58 | #define NONE 0 |
| Kojto | 0:ce33c63eefe5 | 59 | #define WEP 1 |
| Kojto | 0:ce33c63eefe5 | 60 | #define WPA 2 |
| Kojto | 0:ce33c63eefe5 | 61 | #define WPA2 3 |
| Kojto | 0:ce33c63eefe5 | 62 | |
| Kojto | 0:ce33c63eefe5 | 63 | // Modify the following settings as necessary for your Wi-Fi Network setup: |
| Kojto | 0:ce33c63eefe5 | 64 | #define IP_ALLOC_METHOD USE_DHCP // for DHCP assigned IP address |
| Kojto | 0:ce33c63eefe5 | 65 | //#define IP_ALLOC_METHOD USE_STATIC_IP // for static IP address |
| Kojto | 0:ce33c63eefe5 | 66 | |
| Kojto | 0:ce33c63eefe5 | 67 | // Default SSID Settings |
| Kojto | 0:ce33c63eefe5 | 68 | #define AP_KEY "87654321" |
| Kojto | 0:ce33c63eefe5 | 69 | #define AP_SECURITY WPA2 // WPA2 must be enabled for use with iPhone or Android phone hotspot! |
| Kojto | 0:ce33c63eefe5 | 70 | #define SSID "test" |
| Kojto | 0:ce33c63eefe5 | 71 | //#define AP_SECURITY NONE // no security but will connect quicker! |
| Kojto | 0:ce33c63eefe5 | 72 | #define STATIC_IP_OCT1 192 |
| Kojto | 0:ce33c63eefe5 | 73 | #define STATIC_IP_OCT2 168 |
| Kojto | 0:ce33c63eefe5 | 74 | #define STATIC_IP_OCT3 0 |
| Kojto | 0:ce33c63eefe5 | 75 | #define STATIC_IP_OCT4 103 |
| Kojto | 0:ce33c63eefe5 | 76 | |
| Kojto | 0:ce33c63eefe5 | 77 | #define STATIC_GW_OCT4 1 // Static Gateway address = STATIC_IP_OCT1.STATIC_IP_OCT2.STATIC_IP_OCT3.STATIC_GW_OCT4 |
| Kojto | 0:ce33c63eefe5 | 78 | |
| Kojto | 0:ce33c63eefe5 | 79 | #define REQ_BUFFER_SIZE 400 |
| Kojto | 0:ce33c63eefe5 | 80 | |
| Kojto | 0:ce33c63eefe5 | 81 | // typedef struct { |
| Kojto | 0:ce33c63eefe5 | 82 | // uint8_t FTC; // First time config performed |
| Kojto | 0:ce33c63eefe5 | 83 | // uint8_t PP_version[2]; // Patch Programmer version |
| Kojto | 0:ce33c63eefe5 | 84 | // uint8_t SERV_PACK[2]; // Service Pack Version |
| Kojto | 0:ce33c63eefe5 | 85 | // uint8_t DRV_VER[3]; // Driver Version |
| Kojto | 0:ce33c63eefe5 | 86 | // uint8_t FW_VER[3]; // Firmware Version |
| Kojto | 0:ce33c63eefe5 | 87 | // uint8_t validCIK; // CIK[] is valid (Client Interface Key) |
| Kojto | 0:ce33c63eefe5 | 88 | // uint8_t CIK[40]; |
| Kojto | 0:ce33c63eefe5 | 89 | // } userFS_t; |
| Kojto | 0:ce33c63eefe5 | 90 | |
| Kojto | 0:ce33c63eefe5 | 91 | extern mbed_cc3000::tUserFS userFS; |
| Kojto | 0:ce33c63eefe5 | 92 | |
| Kojto | 0:ce33c63eefe5 | 93 | // extern volatile uint32_t ulSmartConfigFinished,ulCC3000DHCP, OkToDoShutDown, ulCC3000DHCP_configured; |
| Kojto | 0:ce33c63eefe5 | 94 | // extern int32_t server_running; |
| Kojto | 0:ce33c63eefe5 | 95 | // extern volatile uint8_t newData; |
| Kojto | 0:ce33c63eefe5 | 96 | // extern uint8_t ForceFixedSSID; |
| Kojto | 0:ce33c63eefe5 | 97 | // extern int8_t runSmartConfig; |
| Kojto | 0:ce33c63eefe5 | 98 | // extern int8_t requestBuffer[]; |
| Kojto | 0:ce33c63eefe5 | 99 | extern uint8_t myMAC[8]; |
| Kojto | 0:ce33c63eefe5 | 100 | extern uint8_t SmartConfigProfilestored; |
| Kojto | 0:ce33c63eefe5 | 101 | |
| Kojto | 0:ce33c63eefe5 | 102 | // extern void StartSmartConfig(void); |
| Kojto | 0:ce33c63eefe5 | 103 | |
| Kojto | 0:ce33c63eefe5 | 104 | bool check_dhcp(void); |
| Kojto | 0:ce33c63eefe5 | 105 | void start_smart_config(void); |
| Kojto | 0:ce33c63eefe5 | 106 | void create_tcp_connection(int32_t port); |
| Kojto | 0:ce33c63eefe5 | 107 | void init_tcp(void); |
| Kojto | 0:ce33c63eefe5 | 108 | void run_tcp_server(void); |
| Kojto | 0:ce33c63eefe5 | 109 | void do_FTC(void); |
| Kojto | 0:ce33c63eefe5 | 110 | |
| Kojto | 0:ce33c63eefe5 | 111 | #endif // DOTCPIP_H |


SimpleLink Wi-Fi CC3000