summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-08-15 19:13:45 -0700
committerKeith Packard <keithp@keithp.com>2018-10-13 08:22:50 -0700
commitc417ab1de2a083b5fcff2e081e4feb2a65887903 (patch)
tree614c7564321ea38402883992daeaea8f30bfe6b1 /src/drivers
parentc6e57291d91f1f6c4de5c54a5cfd3eef66d9f830 (diff)
altos: Make cmd number parsing functions return value
Don't use a global variable to hold the result. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/ao_btm.c19
-rw-r--r--src/drivers/ao_cc1120.c3
-rw-r--r--src/drivers/ao_cc115l.c6
-rw-r--r--src/drivers/ao_cc1200.c22
-rw-r--r--src/drivers/ao_gps_ublox.c4
-rw-r--r--src/drivers/ao_lco.c4
-rw-r--r--src/drivers/ao_lco_cmd.c12
-rw-r--r--src/drivers/ao_lco_two.c4
-rw-r--r--src/drivers/ao_mpu9250.c18
-rw-r--r--src/drivers/ao_pad.c18
-rw-r--r--src/drivers/ao_pca9922.c6
-rw-r--r--src/drivers/ao_quadrature.c3
-rw-r--r--src/drivers/ao_seven_segment.c6
-rw-r--r--src/drivers/ao_watchdog.c4
14 files changed, 55 insertions, 74 deletions
diff --git a/src/drivers/ao_btm.c b/src/drivers/ao_btm.c
index 3591f8f2..2930d00e 100644
--- a/src/drivers/ao_btm.c
+++ b/src/drivers/ao_btm.c
@@ -32,7 +32,7 @@
int8_t ao_btm_stdio;
uint8_t ao_btm_connected;
-#define BT_DEBUG 0
+#define BT_DEBUG 1
#if BT_DEBUG
char ao_btm_buffer[256];
@@ -76,6 +76,7 @@ ao_btm_dump(void)
{
int i;
char c;
+ uint16_t r;
for (i = 0; i < ao_btm_ptr; i++) {
c = ao_btm_buffer[i];
@@ -85,8 +86,8 @@ ao_btm_dump(void)
putchar(ao_btm_buffer[i]);
}
putchar('\n');
- ao_cmd_decimal();
- if (ao_cmd_status == ao_cmd_success && ao_cmd_lex_i)
+ r = ao_cmd_decimal();
+ if (ao_cmd_status == ao_cmd_success && r)
ao_btm_ptr = 0;
ao_cmd_status = ao_cmd_success;
}
@@ -94,13 +95,17 @@ ao_btm_dump(void)
static void
ao_btm_speed(void)
{
- ao_cmd_decimal();
- if (ao_cmd_lex_u32 == 57600)
+ switch (ao_cmd_decimal()) {
+ case 57600:
ao_serial_btm_set_speed(AO_SERIAL_SPEED_57600);
- else if (ao_cmd_lex_u32 == 19200)
+ break;
+ case 19200:
ao_serial_btm_set_speed(AO_SERIAL_SPEED_19200);
- else
+ break;
+ default:
ao_cmd_status = ao_cmd_syntax_error;
+ break;
+ }
}
static uint8_t ao_btm_enable;
diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c
index d581c246..aea0a3fe 100644
--- a/src/drivers/ao_cc1120.c
+++ b/src/drivers/ao_cc1120.c
@@ -805,8 +805,7 @@ ao_radio_test_cmd(void)
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 = ao_cmd_decimal();
}
mode++;
if ((mode & 2) && !radio_on) {
diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c
index c1c21e0d..a8f2c4f5 100644
--- a/src/drivers/ao_cc115l.c
+++ b/src/drivers/ao_cc115l.c
@@ -700,10 +700,8 @@ ao_radio_test_cmd(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;
- }
+ if (ao_cmd_lex_c != '\n')
+ mode = ao_cmd_decimal();
mode++;
if ((mode & 2) && !radio_on) {
#if HAS_MONITOR
diff --git a/src/drivers/ao_cc1200.c b/src/drivers/ao_cc1200.c
index f2f9c372..45f5711e 100644
--- a/src/drivers/ao_cc1200.c
+++ b/src/drivers/ao_cc1200.c
@@ -858,10 +858,8 @@ 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;
- }
+ if (ao_cmd_lex_c != '\n')
+ mode = ao_cmd_decimal();
mode++;
if ((mode & 2))
ao_radio_test_on();
@@ -1362,14 +1360,15 @@ ao_radio_aprs(void)
static void
ao_radio_strobe_test(void)
{
+ uint8_t addr;
uint8_t r;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- r = ao_radio_strobe(ao_cmd_lex_i);
+ r = ao_radio_strobe(addr);
printf ("Strobe %02x -> %02x (rdy %d state %d)\n",
- ao_cmd_lex_i,
+ addr,
r,
r >> 7,
(r >> 4) & 0x7);
@@ -1381,14 +1380,12 @@ ao_radio_write_test(void)
uint16_t addr;
uint8_t data;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
- ao_cmd_hex();
+ data = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- data = ao_cmd_lex_i;
printf ("Write %04x = %02x\n", addr, data);
ao_radio_reg_write(addr, data);
}
@@ -1399,10 +1396,9 @@ ao_radio_read_test(void)
uint16_t addr;
uint8_t data;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
data = ao_radio_reg_read(addr);
printf ("Read %04x = %02x\n", addr, data);
}
diff --git a/src/drivers/ao_gps_ublox.c b/src/drivers/ao_gps_ublox.c
index f5268aa7..a6d93083 100644
--- a/src/drivers/ao_gps_ublox.c
+++ b/src/drivers/ao_gps_ublox.c
@@ -783,12 +783,12 @@ ao_gps(void)
#if AO_UBLOX_DEBUG
static void ao_gps_option(void)
{
- ao_cmd_hex();
+ uint16_t r = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success) {
ao_cmd_status = ao_cmd_success;
ao_gps_show();
} else {
- ao_gps_dbg_enable = ao_cmd_lex_i;
+ ao_gps_dbg_enable = r;
printf ("gps debug set to %d\n", ao_gps_dbg_enable);
}
}
diff --git a/src/drivers/ao_lco.c b/src/drivers/ao_lco.c
index 86635200..5f5db572 100644
--- a/src/drivers/ao_lco.c
+++ b/src/drivers/ao_lco.c
@@ -319,9 +319,9 @@ ao_lco_main(void)
void
ao_lco_set_debug(void)
{
- ao_cmd_decimal();
+ uint16_t r = ao_cmd_decimal();
if (ao_cmd_status == ao_cmd_success)
- ao_lco_debug = ao_cmd_lex_i != 0;
+ ao_lco_debug = r != 0;
}
const struct ao_cmds ao_lco_cmds[] = {
diff --git a/src/drivers/ao_lco_cmd.c b/src/drivers/ao_lco_cmd.c
index 3fcdc859..6f195e55 100644
--- a/src/drivers/ao_lco_cmd.c
+++ b/src/drivers/ao_lco_cmd.c
@@ -33,10 +33,8 @@ static uint16_t tick_offset;
static void
lco_args(void)
{
- ao_cmd_decimal();
- lco_box = ao_cmd_lex_i;
- ao_cmd_hex();
- lco_channels = ao_cmd_lex_i;
+ lco_box = ao_cmd_decimal();
+ lco_channels = ao_cmd_hex();
}
static struct ao_pad_query ao_pad_query;
@@ -129,8 +127,7 @@ lco_fire_cmd(void)
int8_t r;
lco_args();
- ao_cmd_decimal();
- secs = ao_cmd_lex_i;
+ secs = ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
return;
r = lco_query();
@@ -163,8 +160,7 @@ lco_static_cmd(void)
int8_t r;
lco_args();
- ao_cmd_decimal();
- secs = ao_cmd_lex_i;
+ secs = ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
return;
r = lco_query();
diff --git a/src/drivers/ao_lco_two.c b/src/drivers/ao_lco_two.c
index 12c02e88..49ea1236 100644
--- a/src/drivers/ao_lco_two.c
+++ b/src/drivers/ao_lco_two.c
@@ -124,9 +124,9 @@ ao_lco_main(void)
void
ao_lco_set_debug(void)
{
- ao_cmd_decimal();
+ uint16_t r = ao_cmd_decimal();
if (ao_cmd_status == ao_cmd_success)
- ao_lco_debug = ao_cmd_lex_i;
+ ao_lco_debug = r;
}
const struct ao_cmds ao_lco_cmds[] = {
diff --git a/src/drivers/ao_mpu9250.c b/src/drivers/ao_mpu9250.c
index ae8dacd0..9dce9f1a 100644
--- a/src/drivers/ao_mpu9250.c
+++ b/src/drivers/ao_mpu9250.c
@@ -472,10 +472,9 @@ ao_mpu9250_read(void)
uint8_t addr;
uint8_t val;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
ao_mpu9250_spi_get();
val = _ao_mpu9250_reg_read(addr);
ao_mpu9250_spi_put();
@@ -488,14 +487,12 @@ ao_mpu9250_write(void)
uint8_t addr;
uint8_t val;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
- ao_cmd_hex();
+ val = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- val = ao_cmd_lex_i;
printf("Addr %02x val %02x\n", addr, val);
ao_mpu9250_spi_get();
_ao_mpu9250_reg_write(addr, val);
@@ -508,10 +505,9 @@ ao_mpu9250_mag_read(void)
uint8_t addr;
uint8_t val;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
ao_mpu9250_spi_get();
val = _ao_mpu9250_mag_reg_read(addr);
ao_mpu9250_spi_put();
@@ -524,14 +520,12 @@ ao_mpu9250_mag_write(void)
uint8_t addr;
uint8_t val;
- ao_cmd_hex();
+ addr = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- addr = ao_cmd_lex_i;
- ao_cmd_hex();
+ val = ao_cmd_hex();
if (ao_cmd_status != ao_cmd_success)
return;
- val = ao_cmd_lex_i;
printf("Addr %02x val %02x\n", addr, val);
ao_mpu9250_spi_get();
_ao_mpu9250_mag_reg_write(addr, val);
diff --git a/src/drivers/ao_pad.c b/src/drivers/ao_pad.c
index 7e139c78..c08798ac 100644
--- a/src/drivers/ao_pad.c
+++ b/src/drivers/ao_pad.c
@@ -509,16 +509,14 @@ ao_pad_manual(void)
ao_cmd_white();
if (!ao_match_word("DoIt"))
return;
- ao_cmd_decimal();
+ ignite = 1 << ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
return;
- ignite = 1 << ao_cmd_lex_i;
- ao_cmd_decimal();
+ repeat = ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success) {
repeat = 1;
ao_cmd_status = ao_cmd_success;
- } else
- repeat = ao_cmd_lex_i;
+ }
while (repeat-- > 0) {
ao_pad_ignite = ignite;
ao_wakeup(&ao_pad_ignite);
@@ -534,9 +532,9 @@ static struct ao_task ao_pad_monitor_task;
void
ao_pad_set_debug(void)
{
- ao_cmd_decimal();
+ uint16_t r = ao_cmd_decimal();
if (ao_cmd_status == ao_cmd_success)
- ao_pad_debug = ao_cmd_lex_i != 0;
+ ao_pad_debug = r != 0;
}
@@ -544,14 +542,12 @@ static void
ao_pad_alarm_debug(void)
{
uint8_t which, value;
- ao_cmd_decimal();
+ which = ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
return;
- which = ao_cmd_lex_i;
- ao_cmd_decimal();
+ value = ao_cmd_decimal();
if (ao_cmd_status != ao_cmd_success)
return;
- value = ao_cmd_lex_i;
printf ("Set %s to %d\n", which ? "siren" : "strobe", value);
if (which)
ao_siren(value);
diff --git a/src/drivers/ao_pca9922.c b/src/drivers/ao_pca9922.c
index 3516f03a..91d62026 100644
--- a/src/drivers/ao_pca9922.c
+++ b/src/drivers/ao_pca9922.c
@@ -72,11 +72,11 @@ ao_led_set_mask(uint8_t colors, uint8_t mask)
static void
ao_led_test(void)
{
- ao_cmd_hexbyte();
+ AO_LED_TYPE r = ao_cmd_hexbyte();
if (ao_cmd_status != ao_cmd_success)
return;
- ao_led_set(ao_cmd_lex_i);
- printf("LEDs set to %02x\n", ao_cmd_lex_i);
+ ao_led_set(r);
+ printf("LEDs set to %x\n", r);
}
static const struct ao_cmds ao_led_cmds[] = {
diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c
index 20781c40..a5fbd1da 100644
--- a/src/drivers/ao_quadrature.c
+++ b/src/drivers/ao_quadrature.c
@@ -170,8 +170,7 @@ ao_quadrature_test(void)
int8_t t = 0;
#endif
- ao_cmd_decimal();
- q = ao_cmd_lex_i;
+ q = ao_cmd_decimal();
if (q >= AO_QUADRATURE_COUNT)
ao_cmd_status = ao_cmd_syntax_error;
if (ao_cmd_status != ao_cmd_success)
diff --git a/src/drivers/ao_seven_segment.c b/src/drivers/ao_seven_segment.c
index d2e1248f..1be305e5 100644
--- a/src/drivers/ao_seven_segment.c
+++ b/src/drivers/ao_seven_segment.c
@@ -209,10 +209,8 @@ static void
ao_seven_segment_show(void)
{
uint8_t digit, value;
- ao_cmd_decimal();
- digit = ao_cmd_lex_i;
- ao_cmd_decimal();
- value = ao_cmd_lex_i;
+ digit = ao_cmd_decimal();
+ value = ao_cmd_decimal();
ao_seven_segment_set(digit, value);
}
diff --git a/src/drivers/ao_watchdog.c b/src/drivers/ao_watchdog.c
index 01c3cd0e..c0582c12 100644
--- a/src/drivers/ao_watchdog.c
+++ b/src/drivers/ao_watchdog.c
@@ -38,9 +38,9 @@ ao_watchdog(void)
static void
ao_watchdog_set(void)
{
- ao_cmd_hex();
+ uint32_t r = ao_cmd_hex();
if (ao_cmd_status == ao_cmd_success) {
- ao_watchdog_enabled = ao_cmd_lex_i != 0;
+ ao_watchdog_enabled = r != 0;
ao_wakeup(&ao_watchdog_enabled);
}
}