oijoijoij
Dependencies: EthernetInterface mbed-rtos mbed
Fork of TCPSocket_HelloWorld by
client.cpp@16:b9b148b32ca8, 2015-07-02 (annotated)
- Committer:
- educalle00
- Date:
- Thu Jul 02 21:03:39 2015 +0000
- Revision:
- 16:b9b148b32ca8
v0.2;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
educalle00 | 16:b9b148b32ca8 | 1 | /*#include "mbed.h" |
educalle00 | 16:b9b148b32ca8 | 2 | #include "EthernetInterface.h" |
educalle00 | 16:b9b148b32ca8 | 3 | |
educalle00 | 16:b9b148b32ca8 | 4 | #define PORT 54321 |
educalle00 | 16:b9b148b32ca8 | 5 | |
educalle00 | 16:b9b148b32ca8 | 6 | #define LEN_PACKET 1460 |
educalle00 | 16:b9b148b32ca8 | 7 | |
educalle00 | 16:b9b148b32ca8 | 8 | #define IP "192.168.0.10" |
educalle00 | 16:b9b148b32ca8 | 9 | #define GATEWAY "192.168.0.1" |
educalle00 | 16:b9b148b32ca8 | 10 | #define MASK "255.255.255.0" |
educalle00 | 16:b9b148b32ca8 | 11 | #define DES_ADDR "192.168.0.12" |
educalle00 | 16:b9b148b32ca8 | 12 | #define DES_LAPTOP "192.168.0.11" |
educalle00 | 16:b9b148b32ca8 | 13 | |
educalle00 | 16:b9b148b32ca8 | 14 | #define LEN 18980 |
educalle00 | 16:b9b148b32ca8 | 15 | uint16_t sample_array0[LEN]; |
educalle00 | 16:b9b148b32ca8 | 16 | |
educalle00 | 16:b9b148b32ca8 | 17 | Serial pc(USBTX,USBRX); |
educalle00 | 16:b9b148b32ca8 | 18 | |
educalle00 | 16:b9b148b32ca8 | 19 | int main (void) { |
educalle00 | 16:b9b148b32ca8 | 20 | for(int i = 0; i < LEN; i++) sample_array0[i] = ((0x0031<<8) | 0x0032); |
educalle00 | 16:b9b148b32ca8 | 21 | pc.baud(9600); |
educalle00 | 16:b9b148b32ca8 | 22 | pc.printf("Starting test client\r\n"); |
educalle00 | 16:b9b148b32ca8 | 23 | EthernetInterface eth; |
educalle00 | 16:b9b148b32ca8 | 24 | eth.init(IP, MASK, GATEWAY); |
educalle00 | 16:b9b148b32ca8 | 25 | eth.connect(); |
educalle00 | 16:b9b148b32ca8 | 26 | pc.printf("IP Address is %s\r\n", eth.getIPAddress()); |
educalle00 | 16:b9b148b32ca8 | 27 | |
educalle00 | 16:b9b148b32ca8 | 28 | TCPSocketConnection mallet; |
educalle00 | 16:b9b148b32ca8 | 29 | mallet.set_blocking(false,5000); |
educalle00 | 16:b9b148b32ca8 | 30 | char buffer[LEN_PACKET]; |
educalle00 | 16:b9b148b32ca8 | 31 | |
educalle00 | 16:b9b148b32ca8 | 32 | for(int i = 0; i < LEN_PACKET; i++) buffer[i] = i; |
educalle00 | 16:b9b148b32ca8 | 33 | while (true) { |
educalle00 | 16:b9b148b32ca8 | 34 | if(pc.readable() > 0){ |
educalle00 | 16:b9b148b32ca8 | 35 | char temp = pc.getc(); |
educalle00 | 16:b9b148b32ca8 | 36 | int var = 0; |
educalle00 | 16:b9b148b32ca8 | 37 | switch(temp){ |
educalle00 | 16:b9b148b32ca8 | 38 | case 'Q': |
educalle00 | 16:b9b148b32ca8 | 39 | case 'q': |
educalle00 | 16:b9b148b32ca8 | 40 | pc.printf("Intentando conectar a DES_LAPTOP (192.168.0.11) ..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 41 | var = mallet.connect(DES_LAPTOP,PORT); |
educalle00 | 16:b9b148b32ca8 | 42 | if(var == 0) pc.printf("Connected to laptop successfully\r\n"); |
educalle00 | 16:b9b148b32ca8 | 43 | else if(var == -1) pc.printf("Connecting failed\r\n"); |
educalle00 | 16:b9b148b32ca8 | 44 | break; |
educalle00 | 16:b9b148b32ca8 | 45 | case 'A': |
educalle00 | 16:b9b148b32ca8 | 46 | case 'a': |
educalle00 | 16:b9b148b32ca8 | 47 | pc.printf("Intentando conectar a DES_ACER (192.168.0.12) ..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 48 | var = mallet.connect(DES_ADDR,PORT); |
educalle00 | 16:b9b148b32ca8 | 49 | if(var == 0) pc.printf("Connected to ACER server successfully\r\n"); |
educalle00 | 16:b9b148b32ca8 | 50 | else if(var == -1) pc.printf("Connecting failed\r\n"); |
educalle00 | 16:b9b148b32ca8 | 51 | break; |
educalle00 | 16:b9b148b32ca8 | 52 | case 'S': |
educalle00 | 16:b9b148b32ca8 | 53 | case 's': |
educalle00 | 16:b9b148b32ca8 | 54 | pc.printf("Enviando informacion..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 55 | var = mallet.send(buffer,LEN_PACKET); |
educalle00 | 16:b9b148b32ca8 | 56 | pc.printf("Sent %i bytes\r\n",var); |
educalle00 | 16:b9b148b32ca8 | 57 | break; |
educalle00 | 16:b9b148b32ca8 | 58 | case 'D': |
educalle00 | 16:b9b148b32ca8 | 59 | case 'd': |
educalle00 | 16:b9b148b32ca8 | 60 | pc.printf("Recibiendo informacion..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 61 | var = mallet.receive_all((char *)sample_array0,LEN*2); |
educalle00 | 16:b9b148b32ca8 | 62 | pc.printf("Received %i bytes\r\n",var); |
educalle00 | 16:b9b148b32ca8 | 63 | break; |
educalle00 | 16:b9b148b32ca8 | 64 | case 'F': |
educalle00 | 16:b9b148b32ca8 | 65 | case 'f': |
educalle00 | 16:b9b148b32ca8 | 66 | pc.printf("Cerrando conexion..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 67 | var = mallet.close(); |
educalle00 | 16:b9b148b32ca8 | 68 | if(var == 0) pc.printf("Connection closed\r\n"); |
educalle00 | 16:b9b148b32ca8 | 69 | else pc.printf("Error while closing connection\r\n"); |
educalle00 | 16:b9b148b32ca8 | 70 | break; |
educalle00 | 16:b9b148b32ca8 | 71 | case 'Z': |
educalle00 | 16:b9b148b32ca8 | 72 | case 'z': |
educalle00 | 16:b9b148b32ca8 | 73 | pc.printf("Status: "); |
educalle00 | 16:b9b148b32ca8 | 74 | if(mallet.is_connected()) pc.printf("Connected\r\n"); |
educalle00 | 16:b9b148b32ca8 | 75 | else pc.printf("Not connected\r\n"); |
educalle00 | 16:b9b148b32ca8 | 76 | break; |
educalle00 | 16:b9b148b32ca8 | 77 | case 'R': |
educalle00 | 16:b9b148b32ca8 | 78 | case 'r': |
educalle00 | 16:b9b148b32ca8 | 79 | pc.printf("Haciendo todo un proceso de abrir socket y enviar informacion..\n\r"); |
educalle00 | 16:b9b148b32ca8 | 80 | // open connection |
educalle00 | 16:b9b148b32ca8 | 81 | var = mallet.connect(DES_ADDR,PORT); |
educalle00 | 16:b9b148b32ca8 | 82 | if(var == 0) pc.printf("Connected successfully\r\n"); |
educalle00 | 16:b9b148b32ca8 | 83 | else if(var == -1) pc.printf("Connection already open\r\n"); |
educalle00 | 16:b9b148b32ca8 | 84 | |
educalle00 | 16:b9b148b32ca8 | 85 | // send data |
educalle00 | 16:b9b148b32ca8 | 86 | var = mallet.send(buffer,LEN_PACKET); |
educalle00 | 16:b9b148b32ca8 | 87 | pc.printf("Sent %i bytes\r\n",var); |
educalle00 | 16:b9b148b32ca8 | 88 | |
educalle00 | 16:b9b148b32ca8 | 89 | // receive data |
educalle00 | 16:b9b148b32ca8 | 90 | var = mallet.receive_all((char *)sample_array0,LEN*2); |
educalle00 | 16:b9b148b32ca8 | 91 | pc.printf("Received %i bytes\r\n",var); |
educalle00 | 16:b9b148b32ca8 | 92 | |
educalle00 | 16:b9b148b32ca8 | 93 | // closed connection |
educalle00 | 16:b9b148b32ca8 | 94 | var = mallet.close(); |
educalle00 | 16:b9b148b32ca8 | 95 | if(var == 0) pc.printf("Connection closed\r\n\n"); |
educalle00 | 16:b9b148b32ca8 | 96 | else pc.printf("Error while closing connection\r\n\n"); |
educalle00 | 16:b9b148b32ca8 | 97 | break; |
educalle00 | 16:b9b148b32ca8 | 98 | case 'L': |
educalle00 | 16:b9b148b32ca8 | 99 | case 'l': |
educalle00 | 16:b9b148b32ca8 | 100 | for(int i = 0; i < 1000; i++){ |
educalle00 | 16:b9b148b32ca8 | 101 | //wait_ms(100); |
educalle00 | 16:b9b148b32ca8 | 102 | pc.printf("%3i: ",i); |
educalle00 | 16:b9b148b32ca8 | 103 | |
educalle00 | 16:b9b148b32ca8 | 104 | // open connection |
educalle00 | 16:b9b148b32ca8 | 105 | var = mallet.connect(DES_ADDR,PORT); |
educalle00 | 16:b9b148b32ca8 | 106 | if(var == -1) {i = 50; break;} |
educalle00 | 16:b9b148b32ca8 | 107 | |
educalle00 | 16:b9b148b32ca8 | 108 | // send data |
educalle00 | 16:b9b148b32ca8 | 109 | var = mallet.send(buffer,LEN_PACKET); |
educalle00 | 16:b9b148b32ca8 | 110 | pc.printf("Sent %i: ",var); |
educalle00 | 16:b9b148b32ca8 | 111 | if(var == -1) {i = 50; break;} |
educalle00 | 16:b9b148b32ca8 | 112 | |
educalle00 | 16:b9b148b32ca8 | 113 | // receive data |
educalle00 | 16:b9b148b32ca8 | 114 | var = mallet.receive_all((char *)sample_array0,LEN*2); |
educalle00 | 16:b9b148b32ca8 | 115 | pc.printf("Rec %i: ",var); |
educalle00 | 16:b9b148b32ca8 | 116 | if(var == -1) {i = 50; break;} |
educalle00 | 16:b9b148b32ca8 | 117 | |
educalle00 | 16:b9b148b32ca8 | 118 | // closed connection |
educalle00 | 16:b9b148b32ca8 | 119 | var = mallet.close(); |
educalle00 | 16:b9b148b32ca8 | 120 | if(var == -1) {i = 50; break;} |
educalle00 | 16:b9b148b32ca8 | 121 | pc.printf("\r\n"); |
educalle00 | 16:b9b148b32ca8 | 122 | |
educalle00 | 16:b9b148b32ca8 | 123 | } |
educalle00 | 16:b9b148b32ca8 | 124 | break; |
educalle00 | 16:b9b148b32ca8 | 125 | } |
educalle00 | 16:b9b148b32ca8 | 126 | } |
educalle00 | 16:b9b148b32ca8 | 127 | } |
educalle00 | 16:b9b148b32ca8 | 128 | } |
educalle00 | 16:b9b148b32ca8 | 129 | */ |