Bluetooth communication for flocking.
Fork of BeautifulMemeProject by
Diff: PsiSwarm/serial.cpp
- Revision:
- 20:e08376c0b4ea
- Parent:
- 18:5921c1853e8a
- Child:
- 21:e5ab8c56a769
--- a/PsiSwarm/serial.cpp Tue Jan 12 17:28:12 2016 +0000 +++ b/PsiSwarm/serial.cpp Fri Jan 15 14:42:42 2016 +0000 @@ -47,10 +47,10 @@ for(int i = 0; i < length; i++) { flocking_headings[i] = message[i]; - debug("%d, ", message[i]); +// debug("%d, ", message[i]); } - debug("\n"); +// debug("\n"); } } } @@ -63,8 +63,8 @@ buffer[i]=message[i]; } buffer[length]=0; - if(interface) debug("Received BT message:%s [%d chars]\n",buffer,length); - else debug("Received USB message:%s [%d chars]\n",buffer,length); +// if(interface) debug("Received BT message:%s [%d chars]\n",buffer,length); +// else debug("Received USB message:%s [%d chars]\n",buffer,length); handle_user_serial_message(message,length,interface); } @@ -874,8 +874,41 @@ } if(!pc_command_message_started && count>0) IF_handle_user_serial_message(message_array, count, 0); } + +Timeout bt_message_timeout; +static float bt_message_timeout_period = 0.001; // 1 millisecond +char bt_buffer[255]; +int bt_buffer_index = 0; + +void IF_bt_message_timeout() +{ + char buffer[255]; + + sprintf(buffer, bt_buffer, bt_buffer_index); + buffer[bt_buffer_index] = 0; + +// debug("BT message timeout: %s [%d chars]\n", buffer, bt_buffer_index); + + IF_handle_user_serial_message(bt_buffer, bt_buffer_index, 1); + + bt_buffer_index = 0; +} + void IF_bt_rx_callback() { + while(bt.readable()) + { + char byte = bt.getc(); + + bt_buffer[bt_buffer_index] = byte; + bt_buffer_index++; + } + + bt_message_timeout.attach(&IF_bt_message_timeout, bt_message_timeout_period); +} + +//void IF_bt_rx_callback() +//{ // int count = 0; // char message_array[255]; // @@ -919,4 +952,4 @@ // } // } // if(!bt_command_message_started && count>0) IF_handle_user_serial_message(message_array, count, 1); -} \ No newline at end of file +//} \ No newline at end of file