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: doTCPIP.cpp
- Revision:
- 1:99076f2d9408
- Parent:
- 0:ce33c63eefe5
- Child:
- 2:c8cdcef31933
--- a/doTCPIP.cpp Sun Sep 08 18:31:33 2013 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-#include "doTCPIP.h"
-#include "cc3000.h"
-#include "main.h"
-
-using namespace mbed_cc3000;
-
-extern cc3000 wigo;
-
-//volatile uint8_t newData;
-// int32_t server_running;
-//uint8_t ForceFixedSSID;
-//int8_t runSmartConfig; // Flag indicating whether user requested to perform Smart Config
-//volatile uint32_t ulCC3000Connected;
-uint8_t ConnectUsingSmartConfig;
-uint8_t myMAC[8];
-tUserFS userFS;
-
-int8_t requestBuffer[REQ_BUFFER_SIZE];
-//int32_t LAN_Connected = 0;
-
-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 = NULL;
-#endif
-
-/** \brief Flag indicating whether to print CC3000 Connection info */
-
-//Device name - used for Smart config in order to stop the Smart phone configuration process
-uint8_t DevServname[] = "CC3000";
-//volatile uint32_t SendmDNSAdvertisment;
-
-
-/* TODO */
-void create_tcp_connection(int32_t port)
-{
- const char python_msg[] = "Hello Python\n";
- int32_t stat;
- int32_t sock;
- //new TCP socket descriptor
- int32_t newsock;
- //destination address
- sockaddr destAddr;
- //local address
- sockaddr LocalAddr;
- socklen_t addrlen;
- memset(&LocalAddr, 0, 8);
- LocalAddr.family = AF_INET;
- LocalAddr.data[0] = (port >> 8) & 0xff;
- LocalAddr.data[1] = port & 0xff;
- memset (&LocalAddr.data[2], 0, 4);
- sock = wigo._socket.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- while(sock == -1) sock = wigo._socket.socket(AF_INET, SOCK_DGRAM, IPPROTO_TCP);
- wigo._socket.bind(sock,&LocalAddr,sizeof(sockaddr));
- wigo._socket.listen(sock, 1);
- addrlen = sizeof(destAddr);
- while(1)
- {
- newsock = -2;
- printf("Server waiting for connection to Python\n");
- LED_D2_ON;
- while((newsock == -1) || (newsock == -2))
- {
- newsock = wigo._socket.accept(sock,&destAddr, &addrlen);
- }
- printf("Connected\n");
- //receive TCP data
- if(newsock >= 0)
- {
- wigo._socket.recv(newsock, requestBuffer,20,0);
- printf("Input = %s\n", requestBuffer);
- stat = -2;
- stat = wigo._socket.send(newsock, python_msg, strlen(python_msg), 0);
- printf("status= %d\n", stat);
- LED_D2_OFF;
- } else printf("bad socket= %d\n", newsock);
- wigo._socket.closesocket(newsock);
- printf("Done, press any key to repeat\n");
- getchar();
-// printf("\x1B[2J"); //VT100 erase screen
-// printf("\x1B[H"); //VT100 home
- }
-}
-
-void start_smart_config() {
- wigo.start_smart_config(smartconfigkey);
-}
-
-void init_tcp(void)
-{
- int t;
- tNetappIpconfigRetArgs ipinfo2;
-
- check_dhcp();
- //while(checkWiFiConnected() == false);
- // If connectivity is good, run the primary functionality
- // while(1)
- // {
- // if (checkWiFiConnected()) break;
- // wait(1);
- // }
-// printf("Connected\n");
- // 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]);
- LED_D3_ON;
-
- t = wigo._socket.mdnsAdvertiser(1, DevServname, sizeof(DevServname));
- printf("mDNS Status= %x\n", t);
-}
-
-void run_tcp_server(void)
-{
- LED_D3_OFF;
- LED_D2_OFF;
- printf("\n\nStarting TCP/IP Server\n");
- init_tcp();
- create_tcp_connection(TCPIP_PORT);
-}
-
-bool check_dhcp(void)
-{
- int32_t t;
- //static uint8_t obtainIpInfoFlag = FALSE;
-
- // Wait until for dhcp
- while (wigo.is_dhcp_configured() == false)
- {
- wait_ms(500);
- printf("waiting\n");
- }
-
- // Check if we are in a connected state. If so, set flags and LED
- //if (wigo.is_connected() == true)
- //{
- //if (obtainIpInfoFlag == FALSE)
- //{
- // obtainIpInfoFlag = TRUE; // Set flag so we don't constantly turn the LED on
- //LED_D3_ON;
- //If Smart Config was performed, we need to send complete notification to the configure (Smart Phone App)
- // if (ConnectUsingSmartConfig==1)
- // {
- // ConnectUsingSmartConfig = 0;
- // SmartConfigProfilestored = SMART_CONFIG_SET;
- // }
-
- //}
- t = wigo._socket.mdnsAdvertiser(1, DevServname, sizeof(DevServname));
- printf("mDNS Status= %x\n", t);
- return true;
- //}
- //return FALSE;
-}
-
-void do_FTC(void)
-{
- printf("Running First Time Configuration\n");
- // server_running = 1;
- //runSmartConfig = 1;
- start_smart_config();
- init_tcp();
- RED_OFF;
- GREEN_OFF;
- BLUE_OFF;
- userFS.FTC = 1;
- wigo._nvmem.write( NVMEM_USER_FILE_1_FILEID, sizeof(userFS), 0, (uint8_t *) &userFS);
- //runSmartConfig = 0;
- SmartConfigProfilestored = SMART_CONFIG_SET;
- wigo._wlan.stop();
- printf("FTC finished\n");
-}
-
-
-


SimpleLink Wi-Fi CC3000