mbed project met ethernet communicatie (UDP) Master/slave

Dependencies:   EthernetInterface LM75B mbed-rtos mbed

Hey

Committer:
RobinMechele
Date:
Fri Mar 23 11:06:09 2018 +0000
Revision:
8:556a5738c2fa
Parent:
6:4f13276fd1e2
Added final touch on the console output layout + removed 1 line of trash in slave.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RobinMechele 1:db9b9bec0133 1 #include "master.h"
RobinMechele 1:db9b9bec0133 2
RobinMechele 1:db9b9bec0133 3 #define MAX_BUFFER_SIZE 512
RobinMechele 1:db9b9bec0133 4 #define PORT 4000
RobinMechele 1:db9b9bec0133 5
RobinMechele 1:db9b9bec0133 6 Serial pc(USBTX, USBRX);
RobinMechele 1:db9b9bec0133 7
RobinMechele 1:db9b9bec0133 8 Master::Master()
RobinMechele 1:db9b9bec0133 9 :buffer(), receiveID()
RobinMechele 1:db9b9bec0133 10 {
RobinMechele 1:db9b9bec0133 11 //Constructor
RobinMechele 1:db9b9bec0133 12 }
RobinMechele 1:db9b9bec0133 13
RobinMechele 1:db9b9bec0133 14 void Master::masterRun(const char* ip)
RobinMechele 1:db9b9bec0133 15 {
RobinMechele 1:db9b9bec0133 16 EthernetInterface ethernet;
RobinMechele 1:db9b9bec0133 17 ethernet.init(ip,"255.255.255.0", "192.168.0.1");
RobinMechele 1:db9b9bec0133 18 ethernet.connect();
RobinMechele 1:db9b9bec0133 19
RobinMechele 6:4f13276fd1e2 20 //printf("Your ip is: %s \n\r", ethernet.getIPAddress());
RobinMechele 1:db9b9bec0133 21
RobinMechele 1:db9b9bec0133 22 while(1)
RobinMechele 1:db9b9bec0133 23 {
RobinMechele 2:ecc0c5c14bc1 24 printf("######################\n\r");
RobinMechele 2:ecc0c5c14bc1 25 printf("# ENTER YOUR COMMAND #\n\r");
RobinMechele 3:fbf3c92f10ee 26 printf("# IP:%s #\n\r", ip);
RobinMechele 2:ecc0c5c14bc1 27 printf("######################\n\r\n");
RobinMechele 2:ecc0c5c14bc1 28 printf("Command: ");
RobinMechele 2:ecc0c5c14bc1 29
RobinMechele 1:db9b9bec0133 30 char buffer[MAX_BUFFER_SIZE] = {0};
RobinMechele 1:db9b9bec0133 31 for(int i = 0; i < MAX_BUFFER_SIZE; i++){
RobinMechele 1:db9b9bec0133 32 char temp = pc.getc();
RobinMechele 1:db9b9bec0133 33 if(temp == 13){
RobinMechele 1:db9b9bec0133 34 break;
RobinMechele 1:db9b9bec0133 35 }
RobinMechele 1:db9b9bec0133 36 pc.putc(temp);
RobinMechele 1:db9b9bec0133 37 buffer[i] = temp;
RobinMechele 1:db9b9bec0133 38 }
RobinMechele 2:ecc0c5c14bc1 39
RobinMechele 3:fbf3c92f10ee 40 printf("\n\r\nEnter the ID you want to send your command: ");
RobinMechele 1:db9b9bec0133 41
RobinMechele 3:fbf3c92f10ee 42 for(int i = 0; i < 4; i++){
RobinMechele 1:db9b9bec0133 43 char temp = pc.getc();
RobinMechele 1:db9b9bec0133 44 pc.putc(temp);
RobinMechele 1:db9b9bec0133 45 receiveID[i] = temp;
RobinMechele 1:db9b9bec0133 46 }
RobinMechele 3:fbf3c92f10ee 47 char address[15] = "192.168.0.";
RobinMechele 3:fbf3c92f10ee 48 strcat(address,receiveID);
RobinMechele 1:db9b9bec0133 49
RobinMechele 1:db9b9bec0133 50 UDPSocket sock;
RobinMechele 1:db9b9bec0133 51 sock.init();
RobinMechele 1:db9b9bec0133 52 Endpoint slave;
RobinMechele 3:fbf3c92f10ee 53 slave.set_address(address,PORT);
RobinMechele 1:db9b9bec0133 54
RobinMechele 1:db9b9bec0133 55 sock.sendTo(slave, buffer, sizeof(buffer));
RobinMechele 1:db9b9bec0133 56
RobinMechele 1:db9b9bec0133 57 char receive[MAX_BUFFER_SIZE] = {0};
RobinMechele 1:db9b9bec0133 58 int n = sock.receiveFrom(slave, receive, sizeof(receive));
RobinMechele 1:db9b9bec0133 59 receive[n]='\0';
RobinMechele 1:db9b9bec0133 60
RobinMechele 3:fbf3c92f10ee 61 printf("\n\rReceived an answer from the slave!\n\r");
RobinMechele 3:fbf3c92f10ee 62 printf("Answer: %s \n\r", receive);
RobinMechele 2:ecc0c5c14bc1 63 printf("------------------------------------------\r\n\n");
RobinMechele 1:db9b9bec0133 64
RobinMechele 1:db9b9bec0133 65 sock.close();
RobinMechele 1:db9b9bec0133 66 }
RobinMechele 1:db9b9bec0133 67 }