mbed project met ethernet communicatie (UDP) Master/slave
Dependencies: EthernetInterface LM75B mbed-rtos mbed
Hey
Master.cpp@1:db9b9bec0133, 2018-03-14 (annotated)
- Committer:
- RobinMechele
- Date:
- Wed Mar 14 14:38:43 2018 +0000
- Revision:
- 1:db9b9bec0133
- Child:
- 2:ecc0c5c14bc1
Alles werkt yayyyy, nu nog bitj kushn;
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 | 1:db9b9bec0133 | 25 | char buffer[MAX_BUFFER_SIZE] = {0}; |
RobinMechele | 1:db9b9bec0133 | 26 | for(int i = 0; i < MAX_BUFFER_SIZE; i++){ |
RobinMechele | 1:db9b9bec0133 | 27 | char temp = pc.getc(); |
RobinMechele | 1:db9b9bec0133 | 28 | if(temp == 13){ |
RobinMechele | 1:db9b9bec0133 | 29 | break; |
RobinMechele | 1:db9b9bec0133 | 30 | } |
RobinMechele | 1:db9b9bec0133 | 31 | pc.putc(temp); |
RobinMechele | 1:db9b9bec0133 | 32 | buffer[i] = temp; |
RobinMechele | 1:db9b9bec0133 | 33 | } |
RobinMechele | 1:db9b9bec0133 | 34 | printf("You will send the next message: %s \n\r", buffer); |
RobinMechele | 1:db9b9bec0133 | 35 | printf("Enter the full IP address to send the message to \n\r"); |
RobinMechele | 1:db9b9bec0133 | 36 | |
RobinMechele | 1:db9b9bec0133 | 37 | for(int i = 0; i < 14; i++){ |
RobinMechele | 1:db9b9bec0133 | 38 | char temp = pc.getc(); |
RobinMechele | 1:db9b9bec0133 | 39 | pc.putc(temp); |
RobinMechele | 1:db9b9bec0133 | 40 | receiveID[i] = temp; |
RobinMechele | 1:db9b9bec0133 | 41 | } |
RobinMechele | 1:db9b9bec0133 | 42 | |
RobinMechele | 1:db9b9bec0133 | 43 | UDPSocket sock; |
RobinMechele | 1:db9b9bec0133 | 44 | sock.init(); |
RobinMechele | 1:db9b9bec0133 | 45 | Endpoint slave; |
RobinMechele | 1:db9b9bec0133 | 46 | slave.set_address(receiveID,PORT); |
RobinMechele | 1:db9b9bec0133 | 47 | |
RobinMechele | 1:db9b9bec0133 | 48 | printf("You will send the message to ip-address: %s \n\r", receiveID); |
RobinMechele | 1:db9b9bec0133 | 49 | |
RobinMechele | 1:db9b9bec0133 | 50 | sock.sendTo(slave, buffer, sizeof(buffer)); |
RobinMechele | 1:db9b9bec0133 | 51 | printf("Bericht verstuurd btw \n\r"); |
RobinMechele | 1:db9b9bec0133 | 52 | |
RobinMechele | 1:db9b9bec0133 | 53 | char receive[MAX_BUFFER_SIZE] = {0}; |
RobinMechele | 1:db9b9bec0133 | 54 | int n = sock.receiveFrom(slave, receive, sizeof(receive)); |
RobinMechele | 1:db9b9bec0133 | 55 | receive[n]='\0'; |
RobinMechele | 1:db9b9bec0133 | 56 | |
RobinMechele | 1:db9b9bec0133 | 57 | printf("Received an answer from the slave \n\r"); |
RobinMechele | 1:db9b9bec0133 | 58 | printf("Answer: %s \n\r", receive); |
RobinMechele | 1:db9b9bec0133 | 59 | |
RobinMechele | 1:db9b9bec0133 | 60 | sock.close(); |
RobinMechele | 1:db9b9bec0133 | 61 | } |
RobinMechele | 1:db9b9bec0133 | 62 | } |