servodisc goodness
communication.cpp
- Committer:
- benkatz
- Date:
- 2018-03-07
- Revision:
- 11:16d807d6b9c5
- Parent:
- 6:1143996ac690
- Child:
- 7:a278f58cdbd3
File content as of revision 11:16d807d6b9c5:
#include <stdint.h> #include <stdio.h> #include "mbed.h" #include "communication.h" #include "cube.h" uint8_t message_buffer[MAX_MESSAGE_LENGTH]; int message_length = -1; void clear_message_buffer() { for(int i = 0; i < MAX_MESSAGE_LENGTH; i++) message_buffer[i] = 0; } void echo_message_buffer() { printf("Message buffer - message of length %d\r\n",message_length); if(message_length < 1) { printf("\tINVALID!\r\n"); return; } for(int i = 0; i < message_length; i++) printf("\tbyte %d: %c (0x%hhx)\r\n",i,message_buffer[i],message_buffer[i]); } void receive_move_sequence(Serial* pc,mbed_info_t* sm) { //printf("waiting for move sequence...\r\n"); int i = 0; for(;;) { if(pc->readable()) { message_buffer[i] = pc->getc(); i++; } if(i >= MAX_MESSAGE_LENGTH) { printf("Buffer overflow\r\n"); break; } if(message_buffer[i-1] == '\r') break; } message_length = i; echo_message_buffer(); serial_to_sequence(get_sequence(),message_buffer,i); print_sequence(get_sequence()); sm->seq = get_sequence(); reset_mbed(); } void print_sample_sequence_hex() { char move_str[] = "U D L R F B "; string_to_sequence(move_str); print_sequence(get_sequence()); uint8_t hex_buf[100]; int size = sequence_to_serial(get_sequence(),hex_buf,100); printf("Hex sequence, %d bytes\r\n",size); for(int i = 0; i < size; i++) printf("\tbyte %d: 0x%hhx\r\n",i,hex_buf[i]); }