diff options
author | Bdale Garbee <bdale@gag.com> | 2016-09-05 20:59:11 -0600 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2016-09-05 20:59:11 -0600 |
commit | c0ad087008856cfc2233b977abfc3f1dcbaccdcc (patch) | |
tree | adc46abc430793112858ce5d1822d3fe0a395e71 /src/drivers/ao_cc1200.c | |
parent | 148b013dd29c26920ddfb53449ed4d8cc5a4b5ee (diff) | |
parent | 4fdf8ca9ca1cd5a84b03bd7a03c5806af64b413d (diff) |
Merge branch 'master' into branch-1.6
Diffstat (limited to 'src/drivers/ao_cc1200.c')
-rw-r--r-- | src/drivers/ao_cc1200.c | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/src/drivers/ao_cc1200.c b/src/drivers/ao_cc1200.c index cd85f208..2bc99734 100644 --- a/src/drivers/ao_cc1200.c +++ b/src/drivers/ao_cc1200.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -802,18 +803,12 @@ ao_radio_rdf_abort(void) ao_wakeup(&ao_radio_wake); } -static void -ao_radio_test_cmd(void) +static uint8_t radio_on; + +void +ao_radio_test_on(void) { - uint8_t mode = 2; - static uint8_t radio_on; - ao_cmd_white(); - if (ao_cmd_lex_c != '\n') { - ao_cmd_decimal(); - mode = (uint8_t) ao_cmd_lex_u32; - } - mode++; - if ((mode & 2) && !radio_on) { + if (!radio_on) { #if HAS_MONITOR ao_monitor_disable(); #endif @@ -836,12 +831,12 @@ ao_radio_test_cmd(void) #endif radio_on = 1; } - if (mode == 3) { - printf ("Hit a character to stop..."); flush(); - getchar(); - putchar('\n'); - } - if ((mode & 1) && radio_on) { +} + +void +ao_radio_test_off(void) +{ + if (radio_on) { ao_radio_idle(); ao_radio_put(); radio_on = 0; @@ -854,6 +849,27 @@ ao_radio_test_cmd(void) } } +static void +ao_radio_test_cmd(void) +{ + uint8_t mode = 2; + ao_cmd_white(); + if (ao_cmd_lex_c != '\n') { + ao_cmd_decimal(); + mode = (uint8_t) ao_cmd_lex_u32; + } + mode++; + if ((mode & 2)) + ao_radio_test_on(); + if (mode == 3) { + printf ("Hit a character to stop..."); flush(); + getchar(); + putchar('\n'); + } + if ((mode & 1)) + ao_radio_test_off(); +} + void ao_radio_send(const void *d, uint8_t size) { |