summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2012-06-13 19:16:56 +0000
committerChristian Pointner <equinox@mur.at>2012-06-13 19:16:56 +0000
commite1d4f9988a2e3a6e556c6072563880e289120e3c (patch)
tree932a5b4bda9973019b836a5755131927b271d230 /tools
parentcleanup (diff)
better handling if stdin=file
git-svn-id: https://svn.spreadspace.org/mur.sat@526 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'tools')
-rw-r--r--tools/idm-ringbuffer/ringbuffer.c33
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;
}
}