João Pedro Castilho
/
Lab4
lab 4
Communication.cpp@0:0d3a25d4697e, 2021-05-27 (annotated)
- Committer:
- ccpjboss
- Date:
- Thu May 27 08:53:19 2021 +0000
- Revision:
- 0:0d3a25d4697e
tet
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ccpjboss | 0:0d3a25d4697e | 1 | #include "Communication.h" |
ccpjboss | 0:0d3a25d4697e | 2 | #include "mbed.h" |
ccpjboss | 0:0d3a25d4697e | 3 | #include "MessageBuilder.h" |
ccpjboss | 0:0d3a25d4697e | 4 | |
ccpjboss | 0:0d3a25d4697e | 5 | Serial *serial_object; |
ccpjboss | 0:0d3a25d4697e | 6 | MessageBuilder bin_msg; |
ccpjboss | 0:0d3a25d4697e | 7 | |
ccpjboss | 0:0d3a25d4697e | 8 | void init_communication(Serial *serial_in) |
ccpjboss | 0:0d3a25d4697e | 9 | { |
ccpjboss | 0:0d3a25d4697e | 10 | serial_object = serial_in; |
ccpjboss | 0:0d3a25d4697e | 11 | } |
ccpjboss | 0:0d3a25d4697e | 12 | |
ccpjboss | 0:0d3a25d4697e | 13 | void write_bytes(char *ptr, unsigned char len) |
ccpjboss | 0:0d3a25d4697e | 14 | { |
ccpjboss | 0:0d3a25d4697e | 15 | for(int i=0; i<len; i++) |
ccpjboss | 0:0d3a25d4697e | 16 | { |
ccpjboss | 0:0d3a25d4697e | 17 | serial_object->putc(ptr[i]); |
ccpjboss | 0:0d3a25d4697e | 18 | } |
ccpjboss | 0:0d3a25d4697e | 19 | } |
ccpjboss | 0:0d3a25d4697e | 20 | |
ccpjboss | 0:0d3a25d4697e | 21 | void send_odometry(float x, float y, float theta) |
ccpjboss | 0:0d3a25d4697e | 22 | { |
ccpjboss | 0:0d3a25d4697e | 23 | bin_msg.reset(); |
ccpjboss | 0:0d3a25d4697e | 24 | bin_msg.add('O'); |
ccpjboss | 0:0d3a25d4697e | 25 | |
ccpjboss | 0:0d3a25d4697e | 26 | bin_msg.add(x); |
ccpjboss | 0:0d3a25d4697e | 27 | bin_msg.add(y); |
ccpjboss | 0:0d3a25d4697e | 28 | bin_msg.add(theta); |
ccpjboss | 0:0d3a25d4697e | 29 | |
ccpjboss | 0:0d3a25d4697e | 30 | write_bytes(bin_msg.message, bin_msg.length()); |
ccpjboss | 0:0d3a25d4697e | 31 | } |
ccpjboss | 0:0d3a25d4697e | 32 | |
ccpjboss | 0:0d3a25d4697e | 33 | void send_map(int x, int y, float map) |
ccpjboss | 0:0d3a25d4697e | 34 | { |
ccpjboss | 0:0d3a25d4697e | 35 | bin_msg.reset(); |
ccpjboss | 0:0d3a25d4697e | 36 | bin_msg.add('M'); |
ccpjboss | 0:0d3a25d4697e | 37 | |
ccpjboss | 0:0d3a25d4697e | 38 | bin_msg.add(x); |
ccpjboss | 0:0d3a25d4697e | 39 | bin_msg.add(y); |
ccpjboss | 0:0d3a25d4697e | 40 | bin_msg.add(map); |
ccpjboss | 0:0d3a25d4697e | 41 | |
ccpjboss | 0:0d3a25d4697e | 42 | write_bytes(bin_msg.message, bin_msg.length()); |
ccpjboss | 0:0d3a25d4697e | 43 | } |