Serial Passthrough program with Ring Buffer.
Fork of SerialPassthrough by
Revision 7:44d819c8b2c8, committed 2017-06-03
- Comitter:
- nameless129
- Date:
- Sat Jun 03 19:24:45 2017 +0000
- Parent:
- 6:2a3a62ee17fa
- Commit message:
- add ringbuffer
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RingBuffer.lib Sat Jun 03 19:24:45 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/okini3939/code/RingBuffer/#ea0c0a46dbdd
--- a/main.cpp Tue Apr 11 20:16:53 2017 +0000 +++ b/main.cpp Sat Jun 03 19:24:45 2017 +0000 @@ -1,35 +1,44 @@ #include "mbed.h" +#include "RingBuffer.h" RawSerial pc(USBTX, USBRX); RawSerial dev(D1, D0); -DigitalOut led1(LED1); -DigitalOut led4(LED4); + +RingBuffer pc2devBuffer(1024); +RingBuffer dev2pcBuffer(1024); void dev_recv() { - led1 = !led1; - while(dev.readable()) { - pc.putc(dev.getc()); - } + dev2pcBuffer.put(dev.getc()); } void pc_recv() { - led4 = !led4; - while(pc.readable()) { - dev.putc(pc.getc()); - } + pc2devBuffer.put(pc.getc()); } int main() { + char tmp; + int ret; pc.baud(115200); dev.baud(115200); pc.attach(&pc_recv, Serial::RxIrq); dev.attach(&dev_recv, Serial::RxIrq); - while(1) { - sleep(); + while(1) + { + ret = dev2pcBuffer.get(&tmp); + if( ret == 0 ) + { + pc.putc(tmp); + } + + ret = pc2devBuffer.get(&tmp); + if( ret == 0 ) + { + dev.putc(tmp); + } } }
--- a/mbed.bld Tue Apr 11 20:16:53 2017 +0000 +++ b/mbed.bld Sat Jun 03 19:24:45 2017 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/433970e64889 \ No newline at end of file +https://mbed.org/users/mbed_official/code/mbed/builds/86740a56073b \ No newline at end of file