Test client

Dependencies:   EthernetInterface mbed-rtos mbed

main.cpp

Committer:
timmey9
Date:
2015-03-04
Revision:
0:52cf7c36ef83

File content as of revision 0:52cf7c36ef83:

#include "mbed.h"
#include "EthernetInterface.h"

#define PORT   54321

#define LEN_PACKET 1460

#define IP         "169.254.225.220"
#define GATEWAY    "169.254.225.1"
#define MASK       "255.255.0.0"
#define DES_ADDR   "169.254.225.206"
#define DES_LAPTOP "169.254.225.210"

#define LEN 18980
uint16_t sample_array0[LEN];

Serial pc(USBTX,USBRX);

int main (void) {
    for(int i = 0; i < LEN; i++) sample_array0[i] = ((0x0031<<8) | 0x0032);
    pc.baud(230400);
    pc.printf("Starting test client\r\n");
    EthernetInterface eth;
    eth.init(IP, MASK, GATEWAY);
    eth.connect();
    pc.printf("IP Address is %s\r\n", eth.getIPAddress());
    
    TCPSocketConnection mallet;
    mallet.set_blocking(false,5000);
    char buffer[LEN_PACKET];
    
    for(int i = 0; i < LEN_PACKET; i++) buffer[i] = i;
    while (true) {
        if(pc.readable() > 0){
            char temp = pc.getc();
            int var = 0;
            switch(temp){
                case 'Q':
                case 'q':
                    var = mallet.connect(DES_LAPTOP,5005);
                    if(var == 0) pc.printf("Connected to laptop successfully\r\n");
                    else if(var == -1) pc.printf("Connecting failed\r\n");
                    break;
                case 'A':
                case 'a':
                    var = mallet.connect(DES_ADDR,PORT);
                    if(var == 0) pc.printf("Connected to FRDM server successfully\r\n");
                    else if(var == -1) pc.printf("Connecting failed\r\n");
                    break;
                case 'S':
                case 's':
                    var = mallet.send(buffer,LEN_PACKET);
                    pc.printf("Sent %i bytes\r\n",var);
                    break;
                case 'D':
                case 'd':
                    var = mallet.receive_all((char *)sample_array0,LEN*2);
                    pc.printf("Received %i bytes\r\n",var);
                    break;
                case 'F':
                case 'f':
                    var = mallet.close();
                    if(var == 0) pc.printf("Connection closed\r\n");
                    else pc.printf("Error while closing connection\r\n");
                    break;
                case 'Z':
                case 'z':
                    pc.printf("Status: ");
                    if(mallet.is_connected()) pc.printf("Connected\r\n");
                    else pc.printf("Not connected\r\n");
                    break;
                case 'R':
                case 'r':
                    // open connection
                    var = mallet.connect(DES_ADDR,PORT);
                    if(var == 0) pc.printf("Connected successfully\r\n");
                    else if(var == -1) pc.printf("Connection already open\r\n");
                    
                    // send data
                    var = mallet.send(buffer,LEN_PACKET);
                    pc.printf("Sent %i bytes\r\n",var);
                    
                    // receive data
                    var = mallet.receive_all((char *)sample_array0,LEN*2);
                    pc.printf("Received %i bytes\r\n",var);
                    
                    // closed connection
                    var = mallet.close();
                    if(var == 0) pc.printf("Connection closed\r\n\n");
                    else pc.printf("Error while closing connection\r\n\n");
                    break;
                case 'L':
                case 'l':
                    for(int i = 0; i < 1000; i++){
                        //wait_ms(100);
                        pc.printf("%3i: ",i);
                        
                        // open connection
                        var = mallet.connect(DES_ADDR,PORT);
                        if(var == -1) {i = 50; break;}
                        
                        // send data
                        var = mallet.send(buffer,LEN_PACKET);
                        pc.printf("Sent %i: ",var);
                        if(var == -1) {i = 50; break;}
                        
                        // receive data
                        var = mallet.receive_all((char *)sample_array0,LEN*2);
                        pc.printf("Rec %i: ",var);
                        if(var == -1) {i = 50; break;}
                        
                        // closed connection
                        var = mallet.close();
                        if(var == -1) {i = 50; break;}
                        pc.printf("\r\n");
                        
                    }
                    break;
            }
        }
    }
}