diff options
Diffstat (limited to 'tools/idm-ringbuffer/ringbuffer.c')
-rw-r--r-- | tools/idm-ringbuffer/ringbuffer.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/tools/idm-ringbuffer/ringbuffer.c b/tools/idm-ringbuffer/ringbuffer.c index 5468074..53e9365 100644 --- a/tools/idm-ringbuffer/ringbuffer.c +++ b/tools/idm-ringbuffer/ringbuffer.c @@ -123,14 +123,16 @@ void triggerByteTransferred() { /* ##### test environment ##### */ -void debugPrint() { - printf("wPtr: %d, rPtr: %d, cbl: %d, ovr: %d, udr: %d\n", - (int) (writePtr - bufferStart), - (int) (readPtr - bufferStart), - (int) currentByteLoaded, - (int) overrun, - (int) underrun); +void debugPrint(char cmd) { + printf("cmd('%c'): wPtr=%d, rPtr=%d, cbl=%d, ovr=%d, udr=%d\n", + cmd, + (int) (writePtr - bufferStart), + (int) (readPtr - bufferStart), + (int) currentByteLoaded, + (int) overrun, + (int) underrun); int i; + printf(" "); for(i = 0; i < BUFFER_SIZE; ++i) { printf("%02x ", bufferStart[i]); } @@ -146,17 +148,20 @@ int main() tcgetattr(STDIN_FILENO, &t); t.c_lflag &= ~(ICANON | ECHO); tcsetattr(STDIN_FILENO, TCSANOW, &t); - - char key; + + int key; + debugPrint(' '); for(;;) { - debugPrint(); key = getchar(); - switch(key) { + case EOF: + case 4: case 'q': return 0; - case '+': storeSample(); break; - case '0': spiData = 0; triggerByteTransferred(); break; - default: spiData = key; triggerByteTransferred(); break; + case '\r': + case '\n': break; + case '+': storeSample(); debugPrint(key); break; + case '0': spiData = 0; triggerByteTransferred(); debugPrint(key); break; + default: spiData = key; triggerByteTransferred(); debugPrint(key); break; } } |