Just a very very basic Test Programm to Send TCP Packets...
Dependencies: EthernetNetIf mbed
main.cpp@0:6df434dd2e1e, 2011-01-02 (annotated)
- Committer:
- dominik
- Date:
- Sun Jan 02 11:50:25 2011 +0000
- Revision:
- 0:6df434dd2e1e
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dominik | 0:6df434dd2e1e | 1 | #include "mbed.h" |
dominik | 0:6df434dd2e1e | 2 | #include "EthernetNetIf.h" |
dominik | 0:6df434dd2e1e | 3 | #include "TCPSocket.h" |
dominik | 0:6df434dd2e1e | 4 | |
dominik | 0:6df434dd2e1e | 5 | EthernetNetIf eth( |
dominik | 0:6df434dd2e1e | 6 | IpAddr(192,168,1,2), //IP Address |
dominik | 0:6df434dd2e1e | 7 | IpAddr(255,255,255,0), //Network Mask |
dominik | 0:6df434dd2e1e | 8 | IpAddr(192,168,1,1), //Gateway |
dominik | 0:6df434dd2e1e | 9 | IpAddr(192,168,1,1) //DNS |
dominik | 0:6df434dd2e1e | 10 | ); |
dominik | 0:6df434dd2e1e | 11 | |
dominik | 0:6df434dd2e1e | 12 | TCPSocket tcp; |
dominik | 0:6df434dd2e1e | 13 | |
dominik | 0:6df434dd2e1e | 14 | void onTCPSocketEvent(TCPSocketEvent e) |
dominik | 0:6df434dd2e1e | 15 | { |
dominik | 0:6df434dd2e1e | 16 | switch(e) |
dominik | 0:6df434dd2e1e | 17 | { |
dominik | 0:6df434dd2e1e | 18 | case TCPSOCKET_CONNECTED: |
dominik | 0:6df434dd2e1e | 19 | printf("Connected\n"); |
dominik | 0:6df434dd2e1e | 20 | break; |
dominik | 0:6df434dd2e1e | 21 | |
dominik | 0:6df434dd2e1e | 22 | case TCPSOCKET_ACCEPT: |
dominik | 0:6df434dd2e1e | 23 | printf("Accepted\n"); |
dominik | 0:6df434dd2e1e | 24 | break; |
dominik | 0:6df434dd2e1e | 25 | |
dominik | 0:6df434dd2e1e | 26 | case TCPSOCKET_READABLE: |
dominik | 0:6df434dd2e1e | 27 | printf("Readable\n"); |
dominik | 0:6df434dd2e1e | 28 | break; |
dominik | 0:6df434dd2e1e | 29 | |
dominik | 0:6df434dd2e1e | 30 | case TCPSOCKET_WRITEABLE: |
dominik | 0:6df434dd2e1e | 31 | printf("Writeable\n"); |
dominik | 0:6df434dd2e1e | 32 | break; |
dominik | 0:6df434dd2e1e | 33 | |
dominik | 0:6df434dd2e1e | 34 | case TCPSOCKET_CONTIMEOUT: |
dominik | 0:6df434dd2e1e | 35 | printf("Timeout\n"); |
dominik | 0:6df434dd2e1e | 36 | break; |
dominik | 0:6df434dd2e1e | 37 | |
dominik | 0:6df434dd2e1e | 38 | case TCPSOCKET_CONRST: |
dominik | 0:6df434dd2e1e | 39 | printf("Reset\n"); |
dominik | 0:6df434dd2e1e | 40 | break; |
dominik | 0:6df434dd2e1e | 41 | case TCPSOCKET_CONABRT: |
dominik | 0:6df434dd2e1e | 42 | printf("Aborted\n"); |
dominik | 0:6df434dd2e1e | 43 | break; |
dominik | 0:6df434dd2e1e | 44 | |
dominik | 0:6df434dd2e1e | 45 | case TCPSOCKET_ERROR: |
dominik | 0:6df434dd2e1e | 46 | printf("Error\n"); |
dominik | 0:6df434dd2e1e | 47 | break; |
dominik | 0:6df434dd2e1e | 48 | |
dominik | 0:6df434dd2e1e | 49 | case TCPSOCKET_DISCONNECTED: |
dominik | 0:6df434dd2e1e | 50 | printf("Disconnected\n"); |
dominik | 0:6df434dd2e1e | 51 | tcp.close(); |
dominik | 0:6df434dd2e1e | 52 | break; |
dominik | 0:6df434dd2e1e | 53 | } |
dominik | 0:6df434dd2e1e | 54 | } |
dominik | 0:6df434dd2e1e | 55 | |
dominik | 0:6df434dd2e1e | 56 | int main() |
dominik | 0:6df434dd2e1e | 57 | { |
dominik | 0:6df434dd2e1e | 58 | printf("Welcome to wireFUSE\n"); |
dominik | 0:6df434dd2e1e | 59 | printf("Setting up...\n"); |
dominik | 0:6df434dd2e1e | 60 | EthernetErr ethErr = eth.setup(); |
dominik | 0:6df434dd2e1e | 61 | if(ethErr) |
dominik | 0:6df434dd2e1e | 62 | { |
dominik | 0:6df434dd2e1e | 63 | printf("Error %d in setup.\n", ethErr); |
dominik | 0:6df434dd2e1e | 64 | return -1; |
dominik | 0:6df434dd2e1e | 65 | } |
dominik | 0:6df434dd2e1e | 66 | printf("Setup OK\n"); |
dominik | 0:6df434dd2e1e | 67 | |
dominik | 0:6df434dd2e1e | 68 | tcp.setOnEvent(&onTCPSocketEvent); |
dominik | 0:6df434dd2e1e | 69 | Host server(IpAddr(192, 168, 1, 1), 12345); |
dominik | 0:6df434dd2e1e | 70 | |
dominik | 0:6df434dd2e1e | 71 | Timer tmr; |
dominik | 0:6df434dd2e1e | 72 | tmr.start(); |
dominik | 0:6df434dd2e1e | 73 | while(true) |
dominik | 0:6df434dd2e1e | 74 | { |
dominik | 0:6df434dd2e1e | 75 | Net::poll(); |
dominik | 0:6df434dd2e1e | 76 | if(tmr.read() > 3) |
dominik | 0:6df434dd2e1e | 77 | { |
dominik | 0:6df434dd2e1e | 78 | tmr.reset(); |
dominik | 0:6df434dd2e1e | 79 | printf("\nSocket verbinden...\n"); |
dominik | 0:6df434dd2e1e | 80 | |
dominik | 0:6df434dd2e1e | 81 | |
dominik | 0:6df434dd2e1e | 82 | TCPSocketErr bindErr = tcp.connect(server); |
dominik | 0:6df434dd2e1e | 83 | if(bindErr == 0) |
dominik | 0:6df434dd2e1e | 84 | { |
dominik | 0:6df434dd2e1e | 85 | printf("Socket verbunden.."); |
dominik | 0:6df434dd2e1e | 86 | } |
dominik | 0:6df434dd2e1e | 87 | else |
dominik | 0:6df434dd2e1e | 88 | { |
dominik | 0:6df434dd2e1e | 89 | printf("Verbindungsfehler %i", bindErr); |
dominik | 0:6df434dd2e1e | 90 | } |
dominik | 0:6df434dd2e1e | 91 | |
dominik | 0:6df434dd2e1e | 92 | |
dominik | 0:6df434dd2e1e | 93 | const char* str = "Testdaten zum Senden: 1234567890abc..."; |
dominik | 0:6df434dd2e1e | 94 | int err = tcp.send(str, strlen(str)); |
dominik | 0:6df434dd2e1e | 95 | if(err < 0) |
dominik | 0:6df434dd2e1e | 96 | { |
dominik | 0:6df434dd2e1e | 97 | printf("Fehler beim Senden der Daten!\n"); |
dominik | 0:6df434dd2e1e | 98 | } |
dominik | 0:6df434dd2e1e | 99 | else |
dominik | 0:6df434dd2e1e | 100 | { |
dominik | 0:6df434dd2e1e | 101 | printf("Daten gesendet : %s\n", str); |
dominik | 0:6df434dd2e1e | 102 | } |
dominik | 0:6df434dd2e1e | 103 | } |
dominik | 0:6df434dd2e1e | 104 | } |
dominik | 0:6df434dd2e1e | 105 | } |