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
Diff: tcp_ip_demo.cpp
- Revision:
- 5:12ea15b9c2f4
- Parent:
- 4:b5875efcf0e5
- Child:
- 6:6eaae34586b8
--- a/tcp_ip_demo.cpp Thu Oct 03 16:56:32 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "tcp_ip_demo.h"
-#include "cc3000.h"
-#include "main.h"
-
-using namespace mbed_cc3000;
-
-extern cc3000 wigo;
-
-uint8_t ConnectUsingSmartConfig;
-uint8_t myMAC[8];
-tUserFS userFS;
-
-uint8_t SmartConfigProfilestored = 0xff;
-
-#ifndef CC3000_UNENCRYPTED_SMART_CONFIG
- const uint8_t smartconfigkey[] = {0x73,0x6d,0x61,0x72,0x74,0x63,0x6f,0x6e,0x66,0x69,0x67,0x41,0x45,0x53,0x31,0x36};
-#else
- const uint8_t smartconfigkey = 0;
-#endif
-
-/* Device name - used for Smart config in order to stop the Smart phone configuration process */
-static uint8_t DevServname[] = "CC3000";
-static int8_t requestBuffer[REQ_BUFFER_SIZE];
-
-/** Start tcp server
- * \param port Port for server
- * \return none
- */
-void create_tcp_connection(int32_t port) {
- const char python_msg[] = "Hello Python\n";
- int32_t stat;
- cc3000_server server = wigo.create_tcp_server(0, 15000);
-
- server.bind();
- server.listen(1); /* backlog = 1 */
- while (1) {
- stat = server.accept();
- printf("Connected\n");
- if (stat >= 0) {
- server.receive(requestBuffer,20,0);
- printf("Input = %s\n", requestBuffer);
- stat = server.send((void *)python_msg, strlen(python_msg), 0);
- printf("status= %d\n", stat);
- } else {
- printf("ERROR %d", stat);
- switch (stat) {
- case -1:
- printf(": remote socket closed.\n");
- break;
- case -2:
- printf(": no buffers available.\n");
- break;
- case -57:
- printf(": timeout - no reply from remote.\n");
- break;
- default:
- printf("\n");
- }
- }
- server.close();
- printf("Done, press any key to repeat\n");
- getchar();
- }
-}
-
-/** Start smart config
- * \param none
- * \return none
- */
-void start_smart_config() {
- wigo.start_smart_config(smartconfigkey);
-}
-
-/** Initialize
- * \param none
- * \return none
- */
-void init_dhcp(void)
-{
- int32_t t;
- tNetappIpconfigRetArgs ipinfo2;
-
- //dynamic dhcp is set by default
-#if IP_ALLOC_METHOD == USE_STATIC_IP
- set_static_dhcp();
-#endif
- check_dhcp();
-
- // If we're not blocked by accept or others, obtain the latest status
- wigo.get_ip_config(&ipinfo2); // data is returned in the ipinfo2 structure
- printf("\n*** Wi-Go board DHCP assigned IP Address = %d.%d.%d.%d\n", ipinfo2.aucIP[3], ipinfo2.aucIP[2], ipinfo2.aucIP[1], ipinfo2.aucIP[0]);
-
- t = wigo._socket.mdnsAdvertiser(1, DevServname, sizeof(DevServname));
- printf("mDNS Status= %x\n", t);
-}
-
-/** Waits for dhcp to be set
- * \param none
- * \return none
- */
-void check_dhcp(void)
-{
- int32_t t;
-
- while (wigo.is_dhcp_configured() == false)
- {
- wait_ms(500);
- printf("Waiting for dhcp to be set.\n");
- }
-
- t = wigo._socket.mdnsAdvertiser(1, DevServname, sizeof(DevServname));
- printf("mDNS Status= %x\n", t);
-}
-
-/** Sets static DHCP (auto dhpc by default)
- * \param none
- * \return none
- */
-void set_static_dhcp(void)
-{
- uint8_t pucIP_Addr[4];
- uint8_t pucIP_DefaultGWAddr[4];
- uint8_t pucSubnetMask[4];
- uint8_t pucDNS[4];
-
- // Subnet mask is assumed to be 255.255.255.0
- pucSubnetMask[0] = 0xFF;
- pucSubnetMask[1] = 0xFF;
- pucSubnetMask[2] = 0xFF;
- pucSubnetMask[3] = 0x0;
-
- // CC3000's IP
- pucIP_Addr[0] = STATIC_IP_OCT1;
- pucIP_Addr[1] = STATIC_IP_OCT2;
- pucIP_Addr[2] = STATIC_IP_OCT3;
- pucIP_Addr[3] = STATIC_IP_OCT4;
-
- // Default Gateway/Router IP
- // 192.168.1.1
- pucIP_DefaultGWAddr[0] = STATIC_IP_OCT1;
- pucIP_DefaultGWAddr[1] = STATIC_IP_OCT2;
- pucIP_DefaultGWAddr[2] = STATIC_IP_OCT3;
- pucIP_DefaultGWAddr[3] = STATIC_GW_OCT4;
-
- // We assume the router is also a DNS server
- pucDNS[0] = STATIC_IP_OCT1;
- pucDNS[1] = STATIC_IP_OCT2;
- pucDNS[2] = STATIC_IP_OCT3;
- pucDNS[3] = STATIC_GW_OCT4;
-
- wigo._netapp.dhcp((uint32_t *)pucIP_Addr,
- (uint32_t *)pucSubnetMask,
- (uint32_t *)pucIP_DefaultGWAddr,
- (uint32_t *)pucDNS);
-
- // reset the CC3000 to apply Static Setting
- wigo._wlan.stop();
- wait(1);
- wigo._wlan.start(0);
-
- // Mask out all non-required events from CC3000
- wigo._wlan.set_event_mask(HCI_EVNT_WLAN_KEEPALIVE|
- HCI_EVNT_WLAN_UNSOL_INIT|
- HCI_EVNT_WLAN_ASYNC_PING_REPORT);
-}
-
-/** Executes functions for tcp/ip server
- * \param none
- * \return none
- */
-void run_tcp_server(void)
-{
- init_dhcp();
- printf("\n\nStarting TCP/IP Server\n");
- create_tcp_connection(TCPIP_PORT);
-}
-
-/** First time configuration
- * \param none
- * \return none
- */
-void do_FTC(void)
-{
- printf("Running First Time Configuration\n");
- start_smart_config();
- init_dhcp();
- userFS.FTC = 1;
- wigo.set_user_file_info((uint8_t *)&userFS, sizeof(userFS));
- SmartConfigProfilestored = SMART_CONFIG_SET;
- wigo._wlan.stop();
- printf("FTC finished.\n");
-}
-
-
-


SimpleLink Wi-Fi CC3000