Terry Tam
/
DataLoggerRS232trial
Sample RS232 class lib inherits Serial Class
DataLoggerRS232/DataLoggerRS232.cpp@0:87fb6735eb09, 2014-06-16 (annotated)
- Committer:
- terrytamyh
- Date:
- Mon Jun 16 23:05:40 2014 +0000
- Revision:
- 0:87fb6735eb09
Sample RS232 class lib inherits Serial Class
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
terrytamyh | 0:87fb6735eb09 | 1 | #include "mbed.h" |
terrytamyh | 0:87fb6735eb09 | 2 | #include "DataLoggerRS232.h" |
terrytamyh | 0:87fb6735eb09 | 3 | |
terrytamyh | 0:87fb6735eb09 | 4 | |
terrytamyh | 0:87fb6735eb09 | 5 | DataLoggerRS232::DataLoggerRS232(PinName tx, PinName rx, const char* name) : Serial(tx, rx, name) { |
terrytamyh | 0:87fb6735eb09 | 6 | printf("Here!! \r\n"); |
terrytamyh | 0:87fb6735eb09 | 7 | // set up ring buffer |
terrytamyh | 0:87fb6735eb09 | 8 | ringBuffer = new char[65536]; |
terrytamyh | 0:87fb6735eb09 | 9 | // pointer to first sample |
terrytamyh | 0:87fb6735eb09 | 10 | rHead = ringBuffer; |
terrytamyh | 0:87fb6735eb09 | 11 | // pointer to indicate position in the Ring Buffer |
terrytamyh | 0:87fb6735eb09 | 12 | rPos = ringBuffer; |
terrytamyh | 0:87fb6735eb09 | 13 | // pointer to indicate display position in the Ring Buffer |
terrytamyh | 0:87fb6735eb09 | 14 | rDisplay = ringBuffer; |
terrytamyh | 0:87fb6735eb09 | 15 | |
terrytamyh | 0:87fb6735eb09 | 16 | printf("DataLogger_RS232 Ring Buffer setup complete!\r\n"); |
terrytamyh | 0:87fb6735eb09 | 17 | } |
terrytamyh | 0:87fb6735eb09 | 18 | |
terrytamyh | 0:87fb6735eb09 | 19 | void DataLoggerRS232::get_ECU_databyte() { |
terrytamyh | 0:87fb6735eb09 | 20 | |
terrytamyh | 0:87fb6735eb09 | 21 | while(Serial::readable()) { |
terrytamyh | 0:87fb6735eb09 | 22 | |
terrytamyh | 0:87fb6735eb09 | 23 | MSserial = Serial::getc(); |
terrytamyh | 0:87fb6735eb09 | 24 | // save the sample into ring buffer |
terrytamyh | 0:87fb6735eb09 | 25 | if( rPos == &ringBuffer[65535] ) |
terrytamyh | 0:87fb6735eb09 | 26 | rPos = ringBuffer; |
terrytamyh | 0:87fb6735eb09 | 27 | else |
terrytamyh | 0:87fb6735eb09 | 28 | rPos++; |
terrytamyh | 0:87fb6735eb09 | 29 | |
terrytamyh | 0:87fb6735eb09 | 30 | *rPos = MSserial; |
terrytamyh | 0:87fb6735eb09 | 31 | |
terrytamyh | 0:87fb6735eb09 | 32 | count++; |
terrytamyh | 0:87fb6735eb09 | 33 | } |
terrytamyh | 0:87fb6735eb09 | 34 | printf("get_ECU_databyte !!\r\n"); |
terrytamyh | 0:87fb6735eb09 | 35 | } |
terrytamyh | 0:87fb6735eb09 | 36 | |
terrytamyh | 0:87fb6735eb09 | 37 | void DataLoggerRS232::display_ECU_databyte() { |
terrytamyh | 0:87fb6735eb09 | 38 | |
terrytamyh | 0:87fb6735eb09 | 39 | while (rDisplay != rPos) { |
terrytamyh | 0:87fb6735eb09 | 40 | printf("%d, %X\n\r",count,rDisplay); |
terrytamyh | 0:87fb6735eb09 | 41 | if( rDisplay == &ringBuffer[65535] ) |
terrytamyh | 0:87fb6735eb09 | 42 | rDisplay = ringBuffer; |
terrytamyh | 0:87fb6735eb09 | 43 | else |
terrytamyh | 0:87fb6735eb09 | 44 | rDisplay++; |
terrytamyh | 0:87fb6735eb09 | 45 | } |
terrytamyh | 0:87fb6735eb09 | 46 | printf("display_ECU_databyte !!\r\n"); |
terrytamyh | 0:87fb6735eb09 | 47 | } |
terrytamyh | 0:87fb6735eb09 | 48 | |
terrytamyh | 0:87fb6735eb09 | 49 | |
terrytamyh | 0:87fb6735eb09 | 50 | DataLoggerRS232::~DataLoggerRS232() { |
terrytamyh | 0:87fb6735eb09 | 51 | } |