Jelle Raes / Mbed 2 deprecated Projec_1_projectlab

Dependencies:   EthernetInterface LM75B mbed-rtos mbed

Fork of communication by Jelle Raes

master.cpp

Committer:
JelleRaes
Date:
2018-03-13
Revision:
1:550192b4ae8e
Parent:
0:52e944ca21ea
Child:
2:067142778937

File content as of revision 1:550192b4ae8e:

#include "mbed.h"
#include "master.h"
#include <string.h>
#include "EthernetInterface.h"

Serial masterpc(USBTX, USBRX);

void startMaster(const char* ip){
        EthernetInterface eth;
        eth.init(ip, "255.255.255.0", "192.168.0.1");
        eth.connect();
        masterpc.printf("ip = %s\n\r",eth.getIPAddress());
        masterpc.printf("gateway = %s\n\r",eth.getGateway());
        masterpc.printf("mask = %s\n\r",eth.getNetworkMask());
        UDPSocket sock;
        
        while(true){
            char masterBuffer[512]={NULL};
            masterpc.printf("type for request:\n\r");
            for(int i = 0;i<512;i++){
                char key = masterpc.getc();
                if(key != 13){
                    masterpc.putc(key);
                    masterBuffer[i]=key;
                }
                else{
                    masterBuffer[i]='\0';
                    break;
                }
            }
            
            char ipArray[14]={NULL};
            masterpc.printf("\n\rinsert ip address to send to:\n\r  ");
            for(int i = 0;i<14;i++){
                char key = masterpc.getc();
                if(key != 13){
                    masterpc.putc(key);
                    ipArray[i]=key;
                }
                else{
                    ipArray[i]='\0';
                    break;
                }
            }            
        
            sock.init();
            const char *ECHO_SERVER_ADDRESS = ipArray;
            Endpoint echo_server;
            echo_server.set_address(ECHO_SERVER_ADDRESS,4000);
            masterpc.printf("\n\rSending \"%s\" to IPAddress :%s\n\r",masterBuffer,ECHO_SERVER_ADDRESS);
            sock.sendTo(echo_server,masterBuffer,sizeof(masterBuffer));
            
            int n = sock.receiveFrom(echo_server, masterBuffer, sizeof(masterBuffer));
            masterBuffer[n] = '\0';
            masterpc.printf("Received message from server: '%s'\n\r", masterBuffer);
            sock.close();
        }
}