summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-08-07 22:30:55 -0400
committerKeith Packard <keithp@keithp.com>2010-08-07 22:30:55 -0400
commit294d9c7db21eaf1e71504dbcca5040371abcce55 (patch)
tree013a0f8e5147647af9c58c2c4e628e713753341d
parentf317f1324b69b4241f4bb192e164b33d712d5a43 (diff)
ao-dumplog: add --channel option (for use with -R option)
Sets the channel when downloading data with the -R option. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--ao-tools/ao-dumplog/ao-dumplog.c9
-rw-r--r--ao-tools/lib/cc-usb.c5
-rw-r--r--ao-tools/lib/cc-usb.h2
3 files changed, 11 insertions, 5 deletions
diff --git a/ao-tools/ao-dumplog/ao-dumplog.c b/ao-tools/ao-dumplog/ao-dumplog.c
index 440a02b5..57c43290 100644
--- a/ao-tools/ao-dumplog/ao-dumplog.c
+++ b/ao-tools/ao-dumplog/ao-dumplog.c
@@ -30,12 +30,13 @@ static const struct option options[] = {
{ .name = "tty", .has_arg = 1, .val = 'T' },
{ .name = "device", .has_arg = 1, .val = 'D' },
{ .name = "remote", .has_arg = 1, .val = 'R' },
+ { .name = "channel", .has_arg = 1, .val = 'C' },
{ 0, 0, 0, 0},
};
static void usage(char *program)
{
- fprintf(stderr, "usage: %s [--tty <tty-name>] [--device <device-name>] [-R]\n", program);
+ fprintf(stderr, "usage: %s [--tty <tty-name>] [--device <device-name>] [--remote] [--channel <radio-channel>]\n", program);
exit(1);
}
@@ -75,6 +76,7 @@ main (int argc, char **argv)
FILE *out;
char *filename;
int serial_number = 0;
+ int channel = 0;
int flight = 0;
char cmd;
int tick, a, b;
@@ -100,6 +102,9 @@ main (int argc, char **argv)
case 'R':
remote = 1;
break;
+ case 'C':
+ channel = atoi(optarg);
+ break;
default:
usage(argv[0]);
break;
@@ -119,7 +124,7 @@ main (int argc, char **argv)
if (!cc)
exit(1);
if (remote)
- cc_usb_open_remote(cc);
+ cc_usb_open_remote(cc, channel);
/* send a 'version' command followed by a 'log' command */
cc_usb_printf(cc, "v\n");
out = NULL;
diff --git a/ao-tools/lib/cc-usb.c b/ao-tools/lib/cc-usb.c
index 53a50741..1580c6d9 100644
--- a/ao-tools/lib/cc-usb.c
+++ b/ao-tools/lib/cc-usb.c
@@ -375,10 +375,11 @@ cc_usb_reset(struct cc_usb *cc)
}
void
-cc_usb_open_remote(struct cc_usb *cc)
+cc_usb_open_remote(struct cc_usb *cc, int channel)
{
if (!cc->remote) {
- cc_usb_printf(cc, "\np\nE 0\n");
+ printf ("channel %d\n", channel);
+ cc_usb_printf(cc, "\nc r %d\np\nE 0\n", channel);
do {
cc->in_count = cc->in_pos = 0;
_cc_usb_sync(cc, 100);
diff --git a/ao-tools/lib/cc-usb.h b/ao-tools/lib/cc-usb.h
index 627f1b5d..d3539281 100644
--- a/ao-tools/lib/cc-usb.h
+++ b/ao-tools/lib/cc-usb.h
@@ -63,7 +63,7 @@ void
cc_usb_printf(struct cc_usb *cc, char *format, ...);
void
-cc_usb_open_remote(struct cc_usb *cc);
+cc_usb_open_remote(struct cc_usb *cc, int channel);
void
cc_usb_close_remote(struct cc_usb *cc);