Local version for working on Nucleo F401 and Ethernet shield

Dependencies:   WIZnet_Library mbed

Fork of Embedded_web_wiznet by IPN ESIME ZACATENCO

Committer:
highroads
Date:
Sun Dec 28 20:12:37 2014 +0000
Revision:
6:09f34aa14399
Parent:
5:8f5448521cd8
Child:
7:e5c9b43f5754
Updated translations and added some comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ademir501 0:2f0a30377d42 1 //w5500
Ademir501 0:2f0a30377d42 2 #include "mbed.h"
Ademir501 0:2f0a30377d42 3 #include "WIZnetInterface.h"
Ademir501 0:2f0a30377d42 4
Ademir501 0:2f0a30377d42 5 #define ECHO_SERVER_PORT 80
Ademir501 0:2f0a30377d42 6
highroads 5:8f5448521cd8 7
highroads 2:606891a51c85 8 WIZnetInterface eth(SPI_MOSI, SPI_MISO, SPI_SCK,SPI_CS,PB_4); // spi, cs, reset
highroads 2:606891a51c85 9 Serial pc(SERIAL_TX,SERIAL_RX);
highroads 6:09f34aa14399 10 // theres a conflict with LED1 on the Nucleo board it uses the same pin as SPI_SCK!
highroads 2:606891a51c85 11 //DigitalOut led(LED1);
highroads 5:8f5448521cd8 12 // This is the chip select for the sd card which shares the SPI bus on the Arduino shield.
highroads 2:606891a51c85 13 DigitalOut SD_CS(PB_5);
highroads 2:606891a51c85 14
Ademir501 0:2f0a30377d42 15
Ademir501 0:2f0a30377d42 16 void f_ethernet_init(void);
Ademir501 0:2f0a30377d42 17
Ademir501 0:2f0a30377d42 18
Ademir501 1:f39ba31afda9 19
highroads 2:606891a51c85 20 const char * IP_Addr = "192.168.1.210";
Ademir501 0:2f0a30377d42 21 const char * IP_Subnet = "255.255.255.0";
highroads 2:606891a51c85 22 const char * IP_Gateway = "192.168.1.1";
Ademir501 1:f39ba31afda9 23 char data[8];
highroads 5:8f5448521cd8 24 int length;
Ademir501 1:f39ba31afda9 25
Ademir501 0:2f0a30377d42 26 int ret,dummy;
Ademir501 0:2f0a30377d42 27 int lv=1;
Ademir501 1:f39ba31afda9 28 bool status;
Ademir501 0:2f0a30377d42 29
Ademir501 0:2f0a30377d42 30
Ademir501 0:2f0a30377d42 31 char a[]={"HTTP/1.0 200 OK\r\nContent-Type: text/html\r\nPragma: no-cache\r\n\r\n"};
Ademir501 0:2f0a30377d42 32 char b[]={"<html>\r\n<body>\r\n"};
Ademir501 1:f39ba31afda9 33 char c[]={"<body bgcolor=\"green\">"};
Ademir501 1:f39ba31afda9 34 char c1[]={"<body bgcolor=\"000ff0\"></body>\r\n"};
highroads 5:8f5448521cd8 35 char d[]={"<title>Nucleo F401</title>\r\n"};
highroads 5:8f5448521cd8 36 char e[]={"<center><h2>Website using Wiznet</h2>\r\n"};
Ademir501 1:f39ba31afda9 37 char f[]={"<br /><hr></center>\r\n"};
Ademir501 1:f39ba31afda9 38 //char g[]={"<FONT FACE=\"Arial\" SIZE=\"8\" COLOR=\"FF0000\">"};
Ademir501 1:f39ba31afda9 39 //char w[]={"<meta http-equiv=\"refresh\" content=\"10; url=/\">\r\n"};
Ademir501 1:f39ba31afda9 40 char h[]={"<center><div STYLE=\"position:absolute;bgcolor:black; top:100px; left:200px;width:54px\">"};
Ademir501 0:2f0a30377d42 41
Ademir501 1:f39ba31afda9 42 //char r[]={"HTTP/1.1 200 OK\r\n"};
Ademir501 1:f39ba31afda9 43 //char s[]={"Content-Type: text/html\r\n"};
Ademir501 1:f39ba31afda9 44 //char t[]={"Connection: close\r\n"};
Ademir501 1:f39ba31afda9 45 //char u[]={"Refresh: 5\r\n\r\n"};
Ademir501 1:f39ba31afda9 46 //char v[]={"<!DOCTYOE HTML>\r\n"};
Ademir501 1:f39ba31afda9 47 //char y[]={"<html>\r\n"};
Ademir501 0:2f0a30377d42 48
Ademir501 0:2f0a30377d42 49
Ademir501 1:f39ba31afda9 50 char paq_en[64];
Ademir501 1:f39ba31afda9 51
Ademir501 0:2f0a30377d42 52
Ademir501 0:2f0a30377d42 53 int main()
Ademir501 0:2f0a30377d42 54 {
highroads 5:8f5448521cd8 55 // force the chip select for the SD card high to avoid collisions. We're not using the sd card for this program
highroads 2:606891a51c85 56 SD_CS=1;
Ademir501 0:2f0a30377d42 57 f_ethernet_init();
Ademir501 0:2f0a30377d42 58 TCPSocketServer server;
Ademir501 1:f39ba31afda9 59 TCPSocketConnection client;
Ademir501 0:2f0a30377d42 60 server.bind(ECHO_SERVER_PORT);
Ademir501 0:2f0a30377d42 61 server.listen();
highroads 5:8f5448521cd8 62 pc.printf("\nWaiting for connection to client...\n");
Ademir501 1:f39ba31afda9 63
Ademir501 1:f39ba31afda9 64
Ademir501 0:2f0a30377d42 65 while(lv)
Ademir501 0:2f0a30377d42 66 {
Ademir501 0:2f0a30377d42 67 lv=server.accept(client);
Ademir501 0:2f0a30377d42 68 if(!lv)
Ademir501 0:2f0a30377d42 69 {
highroads 5:8f5448521cd8 70 pc.printf("Client connected:%s\n", client.get_address());
Ademir501 0:2f0a30377d42 71
Ademir501 0:2f0a30377d42 72 }
Ademir501 0:2f0a30377d42 73 else
Ademir501 0:2f0a30377d42 74 {
Ademir501 0:2f0a30377d42 75 wait(10);
Ademir501 0:2f0a30377d42 76 }
Ademir501 0:2f0a30377d42 77 }
Ademir501 1:f39ba31afda9 78 client.receive(data,sizeof(data));
Ademir501 1:f39ba31afda9 79 pc.printf("%c",data);
Ademir501 1:f39ba31afda9 80
Ademir501 1:f39ba31afda9 81 client.send(a,sizeof(a));
Ademir501 1:f39ba31afda9 82 client.send(b,sizeof(b));
Ademir501 1:f39ba31afda9 83 client.send(c,sizeof(c));
Ademir501 1:f39ba31afda9 84 client.send(d,sizeof(d));
Ademir501 1:f39ba31afda9 85 client.send(e,sizeof(e));
Ademir501 1:f39ba31afda9 86 client.send(f,sizeof(f));
Ademir501 1:f39ba31afda9 87
Ademir501 1:f39ba31afda9 88
Ademir501 1:f39ba31afda9 89 while(1)
Ademir501 1:f39ba31afda9 90 {
Ademir501 1:f39ba31afda9 91 while(client.is_connected())
Ademir501 1:f39ba31afda9 92 {
Ademir501 1:f39ba31afda9 93 dummy++;
Ademir501 1:f39ba31afda9 94
Ademir501 1:f39ba31afda9 95
Ademir501 1:f39ba31afda9 96 client.send(h,sizeof(h));
Ademir501 1:f39ba31afda9 97 sprintf(paq_en,"<p style=\"color:white;font-size:200px\">%d</p></div></center>\r\n",dummy);
Ademir501 1:f39ba31afda9 98 client.send(paq_en,sizeof(paq_en));
Ademir501 1:f39ba31afda9 99 wait(1);
Ademir501 1:f39ba31afda9 100 client.send(h,sizeof(h));
Ademir501 1:f39ba31afda9 101 sprintf(paq_en,"<p style=\"color:green;font-size:200px\">%d</p></div></center>\r\n",dummy);
Ademir501 1:f39ba31afda9 102 client.send(paq_en,sizeof(paq_en));
Ademir501 1:f39ba31afda9 103
Ademir501 1:f39ba31afda9 104 }
Ademir501 1:f39ba31afda9 105 server.bind(ECHO_SERVER_PORT);
Ademir501 1:f39ba31afda9 106 server.listen();
Ademir501 1:f39ba31afda9 107 server.accept(client);
Ademir501 0:2f0a30377d42 108
Ademir501 1:f39ba31afda9 109
Ademir501 0:2f0a30377d42 110 client.send(a,sizeof(a));
Ademir501 0:2f0a30377d42 111 client.send(b,sizeof(b));
Ademir501 0:2f0a30377d42 112 client.send(c,sizeof(c));
Ademir501 0:2f0a30377d42 113 client.send(d,sizeof(d));
Ademir501 0:2f0a30377d42 114 client.send(e,sizeof(e));
Ademir501 1:f39ba31afda9 115 client.send(f,sizeof(f));
Ademir501 1:f39ba31afda9 116 client.send(paq_en,sizeof(paq_en));
Ademir501 1:f39ba31afda9 117 }
Ademir501 0:2f0a30377d42 118
Ademir501 1:f39ba31afda9 119
Ademir501 0:2f0a30377d42 120 }
Ademir501 0:2f0a30377d42 121
Ademir501 0:2f0a30377d42 122 void f_ethernet_init()
Ademir501 0:2f0a30377d42 123 {
highroads 2:606891a51c85 124 uint8_t mac[]={0x90,0xa2,0xDa,0x0d,0x42,0xe0};
highroads 2:606891a51c85 125 // mbed_mac_address((char *)mac);
highroads 4:21669521476c 126 pc.printf("\tStarting Ethernet Server ...\n\r");
highroads 2:606891a51c85 127 wait(1.0);
highroads 2:606891a51c85 128 ret = eth.init(mac);
Ademir501 0:2f0a30377d42 129 if(!ret)
Ademir501 0:2f0a30377d42 130 {
highroads 4:21669521476c 131 pc.printf("Initialized, MAC= %s\n\r",eth.getMACAddress());
Ademir501 0:2f0a30377d42 132 }
Ademir501 0:2f0a30377d42 133 else
Ademir501 0:2f0a30377d42 134 {
highroads 4:21669521476c 135 pc.printf("Communication Failure ... Restart devices ...\n\r");
Ademir501 0:2f0a30377d42 136 }
highroads 4:21669521476c 137 pc.printf("Connected");
Ademir501 1:f39ba31afda9 138 wait(0.5);
Ademir501 0:2f0a30377d42 139 pc.printf(".");
Ademir501 1:f39ba31afda9 140 wait(0.5);
Ademir501 0:2f0a30377d42 141 pc.printf(".\n\r");
Ademir501 1:f39ba31afda9 142 wait(0.5);
Ademir501 0:2f0a30377d42 143 ret = eth.connect();
Ademir501 0:2f0a30377d42 144 if(!ret)
Ademir501 0:2f0a30377d42 145 {
highroads 4:21669521476c 146 pc.printf("Connection Established!\n\n\r");
Ademir501 0:2f0a30377d42 147 wait(1);
Ademir501 0:2f0a30377d42 148 pc.printf("IP=%s\n\rMASK=%s\n\rGW=%s\n\r",eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
Ademir501 0:2f0a30377d42 149 }
Ademir501 0:2f0a30377d42 150 else
Ademir501 0:2f0a30377d42 151 {
highroads 4:21669521476c 152 pc.printf("Communication Failure ... Restart devices ...\n\r");
Ademir501 0:2f0a30377d42 153 }
Ademir501 1:f39ba31afda9 154 }
Ademir501 1:f39ba31afda9 155