|
|
@@ -15,6 +15,7 @@ |
|
|
|
|
|
|
|
int hex = 0; |
|
|
|
int screen = 0; |
|
|
|
int unprocessed = 0; |
|
|
|
|
|
|
|
int process(const uint8_t *buf, int len); |
|
|
|
|
|
|
@@ -73,6 +74,7 @@ int main(int argc, char *argv[]) |
|
|
|
{ "device", required_argument, NULL, 'd' }, |
|
|
|
{ "rate", required_argument, NULL, 'r' }, |
|
|
|
{ "hex", no_argument, NULL, 'x' }, |
|
|
|
{ "unprocessed", no_argument, NULL, 'u' }, |
|
|
|
{ "screen", no_argument, NULL, 's' }, |
|
|
|
{ "help", no_argument, NULL, 'h' }, |
|
|
|
{ 0, 0, 0, 0 } |
|
|
@@ -80,7 +82,7 @@ int main(int argc, char *argv[]) |
|
|
|
int help=0; |
|
|
|
char c; |
|
|
|
|
|
|
|
while ((c = getopt_long(argc, argv, "d:r:xsh?", |
|
|
|
while ((c = getopt_long(argc, argv, "d:r:xush?", |
|
|
|
long_opts, &getopt_index)) != -1) { |
|
|
|
switch(c) |
|
|
|
{ |
|
|
@@ -96,6 +98,9 @@ int main(int argc, char *argv[]) |
|
|
|
case 'x': |
|
|
|
hex = 1; |
|
|
|
break; |
|
|
|
case 'u': |
|
|
|
unprocessed = 1; |
|
|
|
break; |
|
|
|
case 's': |
|
|
|
screen = 1; |
|
|
|
break; |
|
|
@@ -112,8 +117,9 @@ int main(int argc, char *argv[]) |
|
|
|
fprintf(stderr, "usage: %s [options]\n\n", *argv); |
|
|
|
fprintf(stderr, " -d, --device /dev/ttyUSB3 serial port\n"); |
|
|
|
fprintf(stderr, " -r, --rate 1000000 baud rate\n"); |
|
|
|
fprintf(stderr, " -x, --hex hex out\n"); |
|
|
|
fprintf(stderr, " -s, --screen send \\r instead of \\n\n"); |
|
|
|
fprintf(stderr, " -x, --hex hex out\n"); |
|
|
|
fprintf(stderr, " -u, --unprocessed dump raw unprocessed data\n"); |
|
|
|
fprintf(stderr, " -s, --screen send \\r instead of \\n\n"); |
|
|
|
fprintf(stderr, " -h, --help this cruft\n"); |
|
|
|
return 1; |
|
|
|
} |
|
|
@@ -141,6 +147,13 @@ int process(const uint8_t *buf, int len) |
|
|
|
int n = 0; |
|
|
|
uint16_t dac, adc; |
|
|
|
|
|
|
|
if (unprocessed) { |
|
|
|
n = write(fileno(stdout), buf, len); |
|
|
|
if (n >= 0) |
|
|
|
return n; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
/* Process blocks */ |
|
|
|
retry: |
|
|
|
for (; (n + 4) <= len; buf += 4, n += 4) { |
|
|
|