Heiko Greiner / Mbed 2 deprecated eth_v16_prob

Dependencies:   mbed

Fork of eth_v13 by Heiko Greiner

Committer:
hggerdd
Date:
Tue Mar 18 22:51:18 2014 +0000
Revision:
2:8f5bacfef390
Parent:
1:f45d6c8ec0a9
Child:
3:79dc3337d9da
tcp geht auf einfache art und weise

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hggerdd 0:f7caac9b804e 1 #include "mbed.h"
hggerdd 0:f7caac9b804e 2 #include "w5100.h"
hggerdd 0:f7caac9b804e 3 #include "ipaddr.h"
hggerdd 2:8f5bacfef390 4 #include "TCPSocket.h"
hggerdd 2:8f5bacfef390 5 #include "html.h"
hggerdd 2:8f5bacfef390 6 #include "sstream"
hggerdd 0:f7caac9b804e 7
hggerdd 0:f7caac9b804e 8 extern W5100Class W5100;
hggerdd 0:f7caac9b804e 9 Serial pc(D1, D0);
hggerdd 0:f7caac9b804e 10 Timer sendStatusTimer;
hggerdd 0:f7caac9b804e 11 Timer pollUDPTimer;
hggerdd 2:8f5bacfef390 12 Ticker tickTCP;
hggerdd 2:8f5bacfef390 13
hggerdd 2:8f5bacfef390 14 int globalCounter = 0;
hggerdd 0:f7caac9b804e 15
hggerdd 1:f45d6c8ec0a9 16 DigitalOut myled(LED1);
hggerdd 1:f45d6c8ec0a9 17
hggerdd 2:8f5bacfef390 18 TCPSocket tcpTest(0);
hggerdd 2:8f5bacfef390 19
hggerdd 2:8f5bacfef390 20 void handler(void)
hggerdd 0:f7caac9b804e 21 {
hggerdd 0:f7caac9b804e 22 char buf[1000];
hggerdd 2:8f5bacfef390 23 int size;
hggerdd 2:8f5bacfef390 24
hggerdd 2:8f5bacfef390 25 size = tcpTest.recv(buf, sizeof(buf));
hggerdd 2:8f5bacfef390 26 buf[size] = 0;
hggerdd 2:8f5bacfef390 27 //pc.printf("\n%s\n\n", buf);
hggerdd 0:f7caac9b804e 28
hggerdd 2:8f5bacfef390 29 tcpTest.send(html_head, sizeof(html_head));
hggerdd 2:8f5bacfef390 30 tcpTest.send(buf, 100);
hggerdd 2:8f5bacfef390 31 tcpTest.send(html_foot, sizeof(html_foot));
hggerdd 2:8f5bacfef390 32
hggerdd 2:8f5bacfef390 33 tcpTest.close();
hggerdd 2:8f5bacfef390 34 wait_ms(10);
hggerdd 2:8f5bacfef390 35 tcpTest.listen();
hggerdd 0:f7caac9b804e 36
hggerdd 0:f7caac9b804e 37 }
hggerdd 0:f7caac9b804e 38
hggerdd 0:f7caac9b804e 39 int main()
hggerdd 0:f7caac9b804e 40 {
hggerdd 2:8f5bacfef390 41 int _socket = 0;
hggerdd 1:f45d6c8ec0a9 42
hggerdd 0:f7caac9b804e 43 IpAddr localhost(192,168,1,68);
hggerdd 0:f7caac9b804e 44 IpAddr netmask(255,255,255,0);
hggerdd 0:f7caac9b804e 45 IpAddr gateway(192,168,1,1);
hggerdd 0:f7caac9b804e 46
hggerdd 1:f45d6c8ec0a9 47 wait(5);
hggerdd 1:f45d6c8ec0a9 48
hggerdd 0:f7caac9b804e 49 // Serielle Schnittstelle initialisieren
hggerdd 0:f7caac9b804e 50 pc.baud(115200);
hggerdd 0:f7caac9b804e 51
hggerdd 0:f7caac9b804e 52 // Initialisieren des Ethernetinterfaces
hggerdd 0:f7caac9b804e 53 pc.printf("Etbernet initialisieren.\n");
hggerdd 0:f7caac9b804e 54 W5100.hardware_reset();
hggerdd 0:f7caac9b804e 55 W5100.init();
hggerdd 0:f7caac9b804e 56
hggerdd 0:f7caac9b804e 57 uint8_t mac[6] = {0x00,0x00,0x5e,0x00,0x01,0x01};
hggerdd 0:f7caac9b804e 58 W5100.setMACAddress(mac);
hggerdd 0:f7caac9b804e 59
hggerdd 0:f7caac9b804e 60 uint8_t u[4];
hggerdd 0:f7caac9b804e 61 localhost.getIP(u);
hggerdd 0:f7caac9b804e 62 W5100.setIPAddress(u);
hggerdd 0:f7caac9b804e 63
hggerdd 0:f7caac9b804e 64 netmask.getIP(u);
hggerdd 0:f7caac9b804e 65 W5100.setSubnetMask(u);
hggerdd 0:f7caac9b804e 66
hggerdd 0:f7caac9b804e 67 gateway.getIP(u);
hggerdd 0:f7caac9b804e 68 W5100.setGatewayIp(u);
hggerdd 0:f7caac9b804e 69
hggerdd 0:f7caac9b804e 70 // Sendetimer starten (und anschließend per Polling abfragen)
hggerdd 0:f7caac9b804e 71 pc.printf("Sendetimer starten.\n");
hggerdd 0:f7caac9b804e 72 sendStatusTimer.start();
hggerdd 2:8f5bacfef390 73
hggerdd 2:8f5bacfef390 74
hggerdd 2:8f5bacfef390 75 // TCP starten
hggerdd 2:8f5bacfef390 76 tcpTest.setOnEvent(handler);
hggerdd 2:8f5bacfef390 77 tcpTest.bind(80);
hggerdd 2:8f5bacfef390 78 tcpTest.listen();
hggerdd 2:8f5bacfef390 79 tickTCP.attach(&tcpTest, &TCPSocket::poll, 0.1);
hggerdd 2:8f5bacfef390 80
hggerdd 0:f7caac9b804e 81
hggerdd 0:f7caac9b804e 82 while(1) {
hggerdd 0:f7caac9b804e 83
hggerdd 0:f7caac9b804e 84 // nach Ablauf der Wartezeit die STatusinformationen per Serieller Schnittstelle senden
hggerdd 0:f7caac9b804e 85 if (sendStatusTimer.read_ms() >= 2000) {
hggerdd 2:8f5bacfef390 86 sendStatusTimer.reset();
hggerdd 2:8f5bacfef390 87 pc.printf("SnSR = %x\n",W5100.readSnSR(_socket));
hggerdd 0:f7caac9b804e 88 }
hggerdd 0:f7caac9b804e 89 }
hggerdd 0:f7caac9b804e 90 }