mbed project met ethernet communicatie (UDP) Master/slave
Dependencies: EthernetInterface LM75B mbed-rtos mbed
Hey
Master.cpp@2:ecc0c5c14bc1, 2018-03-16 (annotated)
- Committer:
- RobinMechele
- Date:
- Fri Mar 16 13:05:57 2018 +0000
- Revision:
- 2:ecc0c5c14bc1
- Parent:
- 1:db9b9bec0133
- Child:
- 3:fbf3c92f10ee
Console interface gemaakt master
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:db9b9bec0133 | 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 | 1:db9b9bec0133 | 24 | //Aanmaken van het bericht in het consolevenster |
RobinMechele | 2:ecc0c5c14bc1 | 25 | printf("######################\n\r"); |
RobinMechele | 2:ecc0c5c14bc1 | 26 | printf("# ENTER YOUR COMMAND #\n\r"); |
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 | 2:ecc0c5c14bc1 | 40 | printf("\n\r\nEnter the full IP address: "); |
RobinMechele | 1:db9b9bec0133 | 41 | |
RobinMechele | 1:db9b9bec0133 | 42 | for(int i = 0; i < 14; 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 | 1:db9b9bec0133 | 47 | |
RobinMechele | 1:db9b9bec0133 | 48 | UDPSocket sock; |
RobinMechele | 1:db9b9bec0133 | 49 | sock.init(); |
RobinMechele | 1:db9b9bec0133 | 50 | Endpoint slave; |
RobinMechele | 1:db9b9bec0133 | 51 | slave.set_address(receiveID,PORT); |
RobinMechele | 1:db9b9bec0133 | 52 | |
RobinMechele | 1:db9b9bec0133 | 53 | sock.sendTo(slave, buffer, sizeof(buffer)); |
RobinMechele | 1:db9b9bec0133 | 54 | |
RobinMechele | 1:db9b9bec0133 | 55 | char receive[MAX_BUFFER_SIZE] = {0}; |
RobinMechele | 1:db9b9bec0133 | 56 | int n = sock.receiveFrom(slave, receive, sizeof(receive)); |
RobinMechele | 1:db9b9bec0133 | 57 | receive[n]='\0'; |
RobinMechele | 1:db9b9bec0133 | 58 | |
RobinMechele | 1:db9b9bec0133 | 59 | printf("Received an answer from the slave \n\r"); |
RobinMechele | 2:ecc0c5c14bc1 | 60 | printf("Answer: %s \n\r\n", receive); |
RobinMechele | 2:ecc0c5c14bc1 | 61 | printf("------------------------------------------\r\n\n"); |
RobinMechele | 1:db9b9bec0133 | 62 | |
RobinMechele | 1:db9b9bec0133 | 63 | sock.close(); |
RobinMechele | 1:db9b9bec0133 | 64 | } |
RobinMechele | 1:db9b9bec0133 | 65 | } |