diff options
| author | Bdale Garbee <bdale@gag.com> | 2016-09-05 21:01:35 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2016-09-05 21:01:35 -0600 | 
| commit | 6af87e5cf98e644d2455faf6526a9f11880686f5 (patch) | |
| tree | d23017ea0a0fd693cbef18979c35cfca7ce1db69 /src/drivers | |
| parent | 6ec9f2a78aa8c99d48006b14c936c59edd08addf (diff) | |
| parent | 168c39a37415b1bdc09aa00bbaaafb5d879ce8bd (diff) | |
Merge branch 'branch-1.6' into debian
Diffstat (limited to 'src/drivers')
79 files changed, 274 insertions, 168 deletions
| diff --git a/src/drivers/ao_25lc1024.c b/src/drivers/ao_25lc1024.c index fac0a430..a9c897b3 100644 --- a/src/drivers/ao_25lc1024.c +++ b/src/drivers/ao_25lc1024.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 diff --git a/src/drivers/ao_25lc1024.h b/src/drivers/ao_25lc1024.h index 44e52387..7e48f0dd 100644 --- a/src/drivers/ao_25lc1024.h +++ b/src/drivers/ao_25lc1024.h @@ -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 diff --git a/src/drivers/ao_74hc165.c b/src/drivers/ao_74hc165.c index 143f4e3f..8842801d 100644 --- a/src/drivers/ao_74hc165.c +++ b/src/drivers/ao_74hc165.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 diff --git a/src/drivers/ao_74hc165.h b/src/drivers/ao_74hc165.h index 3ae51353..febbf1b3 100644 --- a/src/drivers/ao_74hc165.h +++ b/src/drivers/ao_74hc165.h @@ -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 diff --git a/src/drivers/ao_74hc497.c b/src/drivers/ao_74hc497.c index 4c13ee71..b3fd3c91 100644 --- a/src/drivers/ao_74hc497.c +++ b/src/drivers/ao_74hc497.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 diff --git a/src/drivers/ao_74hc497.h b/src/drivers/ao_74hc497.h index 6df7bcae..bb14f20a 100644 --- a/src/drivers/ao_74hc497.h +++ b/src/drivers/ao_74hc497.h @@ -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 diff --git a/src/drivers/ao_aprs.h b/src/drivers/ao_aprs.h index a033fa0b..8f70d2d0 100644 --- a/src/drivers/ao_aprs.h +++ b/src/drivers/ao_aprs.h @@ -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 diff --git a/src/drivers/ao_at24c.c b/src/drivers/ao_at24c.c index 2a23be3a..8f91e3ca 100644 --- a/src/drivers/ao_at24c.c +++ b/src/drivers/ao_at24c.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 diff --git a/src/drivers/ao_at45db161d.c b/src/drivers/ao_at45db161d.c index e7e74153..abba3f1f 100644 --- a/src/drivers/ao_at45db161d.c +++ b/src/drivers/ao_at45db161d.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 diff --git a/src/drivers/ao_at45db161d.h b/src/drivers/ao_at45db161d.h index 9ee6f1b6..db52f0f4 100644 --- a/src/drivers/ao_at45db161d.h +++ b/src/drivers/ao_at45db161d.h @@ -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 diff --git a/src/drivers/ao_btm.c b/src/drivers/ao_btm.c index 8e7052cb..c65a8548 100644 --- a/src/drivers/ao_btm.c +++ b/src/drivers/ao_btm.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 diff --git a/src/drivers/ao_bufio.c b/src/drivers/ao_bufio.c index 70e30b67..f212da53 100644 --- a/src/drivers/ao_bufio.c +++ b/src/drivers/ao_bufio.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 diff --git a/src/drivers/ao_bufio.h b/src/drivers/ao_bufio.h index 6629f143..b0a11944 100644 --- a/src/drivers/ao_bufio.h +++ b/src/drivers/ao_bufio.h @@ -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 diff --git a/src/drivers/ao_button.c b/src/drivers/ao_button.c index 8e7dead7..725ac45a 100644 --- a/src/drivers/ao_button.c +++ b/src/drivers/ao_button.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 @@ -92,6 +93,12 @@ _ao_button_init(uint8_t b)  } +uint8_t +ao_button_get(uint8_t b) +{ +	return ao_button_state[b].value; +} +  static void  ao_button_isr(void)  { diff --git a/src/drivers/ao_button.h b/src/drivers/ao_button.h index ce349d65..601472f9 100644 --- a/src/drivers/ao_button.h +++ b/src/drivers/ao_button.h @@ -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 @@ -18,6 +19,9 @@  #ifndef _AO_BUTTON_H_  #define _AO_BUTTON_H_ +uint8_t +ao_button_get(uint8_t b); +  void  ao_button_init(void); diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c index 6b800585..efe5f996 100644 --- a/src/drivers/ao_cc1120.c +++ b/src/drivers/ao_cc1120.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 @@ -182,9 +183,8 @@ ao_radio_fifo_write_start(void)  	return status;  } -static inline uint8_t ao_radio_fifo_write_stop(uint8_t status) { +static inline void ao_radio_fifo_write_stop(void) {  	ao_radio_deselect(); -	return status;  }  static uint8_t @@ -192,7 +192,8 @@ ao_radio_fifo_write(uint8_t *data, uint8_t len)  {  	uint8_t	status = ao_radio_fifo_write_start();  	ao_radio_spi_send(data, len); -	return ao_radio_fifo_write_stop(status); +	ao_radio_fifo_write_stop(); +	return status;  }  static uint8_t @@ -200,7 +201,8 @@ ao_radio_fifo_write_fixed(uint8_t data, uint8_t len)  {  	uint8_t status = ao_radio_fifo_write_start();  	ao_radio_spi_send_fixed(data, len); -	return ao_radio_fifo_write_stop(status); +	ao_radio_fifo_write_stop(); +	return status;  }  static uint8_t @@ -773,11 +775,10 @@ void  ao_radio_continuity(uint8_t c)  {  	uint8_t	i; -	uint8_t status;  	ao_rdf_start(AO_RADIO_CONT_TOTAL_LEN); -	status = ao_radio_fifo_write_start(); +	(void) ao_radio_fifo_write_start();  	for (i = 0; i < 3; i++) {  		ao_radio_spi_send_fixed(0x00, AO_RADIO_CONT_PAUSE_LEN);  		if (i < c) @@ -786,8 +787,7 @@ ao_radio_continuity(uint8_t c)  			ao_radio_spi_send_fixed(0x00, AO_RADIO_CONT_TONE_LEN);  	}  	ao_radio_spi_send_fixed(0x00, AO_RADIO_CONT_PAUSE_LEN); -	status = ao_radio_fifo_write_stop(status); -	(void) status; +	ao_radio_fifo_write_stop();  	ao_rdf_run();  } @@ -998,6 +998,8 @@ ao_radio_rx_isr(void)  {  	uint8_t	d; +	if (ao_radio_abort) +		return;  	if (rx_task_id) {  		if (ao_radio_try_select(rx_task_id)) {  			++rx_fast_start; diff --git a/src/drivers/ao_cc1120.h b/src/drivers/ao_cc1120.h index 943f3449..87b083d4 100644 --- a/src/drivers/ao_cc1120.h +++ b/src/drivers/ao_cc1120.h @@ -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 diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c index 24180f34..a67071d2 100644 --- a/src/drivers/ao_cc115l.c +++ b/src/drivers/ao_cc115l.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 diff --git a/src/drivers/ao_cc115l.h b/src/drivers/ao_cc115l.h index 811c14aa..c40f5358 100644 --- a/src/drivers/ao_cc115l.h +++ b/src/drivers/ao_cc115l.h @@ -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 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)  { diff --git a/src/drivers/ao_cc1200.h b/src/drivers/ao_cc1200.h index b2b63cde..8e17bbd9 100644 --- a/src/drivers/ao_cc1200.h +++ b/src/drivers/ao_cc1200.h @@ -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 diff --git a/src/drivers/ao_companion.c b/src/drivers/ao_companion.c index 5f07e8b0..f82558a3 100644 --- a/src/drivers/ao_companion.c +++ b/src/drivers/ao_companion.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 diff --git a/src/drivers/ao_event.c b/src/drivers/ao_event.c index 8f88d778..9856c2aa 100644 --- a/src/drivers/ao_event.c +++ b/src/drivers/ao_event.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 diff --git a/src/drivers/ao_event.h b/src/drivers/ao_event.h index ea89da23..d1c69d81 100644 --- a/src/drivers/ao_event.h +++ b/src/drivers/ao_event.h @@ -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 diff --git a/src/drivers/ao_fat.c b/src/drivers/ao_fat.c index cbcd42bc..fb8eecff 100644 --- a/src/drivers/ao_fat.c +++ b/src/drivers/ao_fat.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 diff --git a/src/drivers/ao_fat.h b/src/drivers/ao_fat.h index 01435363..39f4207b 100644 --- a/src/drivers/ao_fat.h +++ b/src/drivers/ao_fat.h @@ -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 diff --git a/src/drivers/ao_gps_sirf.c b/src/drivers/ao_gps_sirf.c index d89435b9..8bebd610 100644 --- a/src/drivers/ao_gps_sirf.c +++ b/src/drivers/ao_gps_sirf.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 diff --git a/src/drivers/ao_gps_skytraq.c b/src/drivers/ao_gps_skytraq.c index 066df6ff..c483382e 100644 --- a/src/drivers/ao_gps_skytraq.c +++ b/src/drivers/ao_gps_skytraq.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 diff --git a/src/drivers/ao_gps_ublox.c b/src/drivers/ao_gps_ublox.c index 74c29e0a..22af413a 100644 --- a/src/drivers/ao_gps_ublox.c +++ b/src/drivers/ao_gps_ublox.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 diff --git a/src/drivers/ao_gps_ublox.h b/src/drivers/ao_gps_ublox.h index e4a358a8..1d9bcee8 100644 --- a/src/drivers/ao_gps_ublox.h +++ b/src/drivers/ao_gps_ublox.h @@ -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 diff --git a/src/drivers/ao_hmc5883.c b/src/drivers/ao_hmc5883.c index f761671a..f668fb66 100644 --- a/src/drivers/ao_hmc5883.c +++ b/src/drivers/ao_hmc5883.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 diff --git a/src/drivers/ao_hmc5883.h b/src/drivers/ao_hmc5883.h index ff2725eb..78637b02 100644 --- a/src/drivers/ao_hmc5883.h +++ b/src/drivers/ao_hmc5883.h @@ -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 diff --git a/src/drivers/ao_lcd.c b/src/drivers/ao_lcd.c index 6def0c80..c35093bc 100644 --- a/src/drivers/ao_lcd.c +++ b/src/drivers/ao_lcd.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 diff --git a/src/drivers/ao_lco.c b/src/drivers/ao_lco.c index 6c192537..00f10ecc 100644 --- a/src/drivers/ao_lco.c +++ b/src/drivers/ao_lco.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 diff --git a/src/drivers/ao_lco.h b/src/drivers/ao_lco.h index 253f9702..5721eed5 100644 --- a/src/drivers/ao_lco.h +++ b/src/drivers/ao_lco.h @@ -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 diff --git a/src/drivers/ao_lco_cmd.c b/src/drivers/ao_lco_cmd.c index 6a365687..dcc0c6d0 100644 --- a/src/drivers/ao_lco_cmd.c +++ b/src/drivers/ao_lco_cmd.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 diff --git a/src/drivers/ao_lco_cmd.h b/src/drivers/ao_lco_cmd.h index c55448cd..2975bffe 100644 --- a/src/drivers/ao_lco_cmd.h +++ b/src/drivers/ao_lco_cmd.h @@ -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 diff --git a/src/drivers/ao_lco_func.c b/src/drivers/ao_lco_func.c index 08d45467..862cb1be 100644 --- a/src/drivers/ao_lco_func.c +++ b/src/drivers/ao_lco_func.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 diff --git a/src/drivers/ao_lco_func.h b/src/drivers/ao_lco_func.h index 42754352..6b06f928 100644 --- a/src/drivers/ao_lco_func.h +++ b/src/drivers/ao_lco_func.h @@ -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 diff --git a/src/drivers/ao_lco_two.c b/src/drivers/ao_lco_two.c index f53fef7d..1cb0546c 100644 --- a/src/drivers/ao_lco_two.c +++ b/src/drivers/ao_lco_two.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 @@ -18,6 +19,7 @@  #include <ao.h>  #include <ao_lco.h>  #include <ao_event.h> +#include <ao_button.h>  #include <ao_lco_func.h>  #include <ao_radio_cmac.h> @@ -36,7 +38,6 @@ static uint8_t	ao_lco_debug;  #define AO_LCO_VALID_EVER	2  static uint8_t	ao_lco_suspended; -static uint8_t	ao_lco_selected;  static uint8_t	ao_lco_valid;  static uint8_t	ao_lco_channels;  static uint16_t	ao_lco_tick_offset; @@ -44,29 +45,34 @@ static uint16_t	ao_lco_tick_offset;  /* UI values */  static uint8_t	ao_lco_armed;  static uint8_t	ao_lco_firing; - -#define ao_lco_box	(ao_config.pad_box) +static uint8_t	ao_lco_box;  static struct ao_pad_query	ao_pad_query; -#define MASK_SIZE(n)	(((n) + 7) >> 3) -#define MASK_ID(n)	((n) >> 3) -#define MASK_SHIFT(n)	((n) & 7) +/* TeleFireTwo boxes have a single pad */ +#define ao_lco_pad	0  static void -ao_lco_set_armed(int pad, int armed) +ao_lco_set_box(int box)  { -	uint8_t	bit = (1 << pad); +	ao_lco_box = ao_config.pad_box + box; +	ao_lco_valid = 0; +	ao_lco_armed = 0; +	ao_wakeup(&ao_lco_armed); +} + +static void +ao_lco_set_armed(int armed) +{ +	uint8_t	bit = (1 << ao_lco_pad);  	if (armed) { -		ao_lco_selected |= bit; -		ao_lco_armed |= bit; +		ao_lco_armed = bit;  	} else { -		ao_lco_selected &= ~bit; -		ao_lco_armed &= ~bit; +		ao_lco_armed = 0;  	} -	PRINTD(DEBUG_EVENT, "pad %d bit 0x%x armed %d ao_lco_selected 0x%x ao_lco_armed 0x%x\n", -	       pad, bit, armed, ao_lco_selected, ao_lco_armed); +	PRINTD(DEBUG_EVENT, "pad %d bit 0x%x armed %d ao_lco_armed 0x%x\n", +	       ao_lco_pad, bit, armed, ao_lco_armed);  	ao_wakeup(&ao_lco_armed);  } @@ -76,7 +82,6 @@ ao_lco_suspend(void)  	if (!ao_lco_suspended) {  		PRINTD(DEBUG_EVENT, "suspend\n");  		ao_lco_suspended = 1; -		ao_lco_selected = 0;  		ao_lco_armed = 0;  		ao_wakeup(&ao_pad_query);  	} @@ -97,7 +102,6 @@ ao_lco_input(void)  	static struct ao_event	event;  	uint8_t	timeout; -	ao_config_get();  	for (;;) {  		if (ao_config.pad_idle && !ao_lco_suspended) {  			timeout = ao_event_get_for(&event, AO_SEC_TO_TICKS(ao_config.pad_idle)); @@ -114,14 +118,12 @@ ao_lco_input(void)  		switch (event.type) {  		case AO_EVENT_BUTTON:  			switch (event.unit) { -			case AO_BUTTON_ARM_0: -				ao_lco_set_armed(0, event.value); +			case AO_BUTTON_BOX: +				ao_lco_set_box(event.value);  				break; -#if AO_BUTTON_ARM_NUM > 1 -			case AO_BUTTON_ARM_1: -				ao_lco_set_armed(1, event.value); +			case AO_BUTTON_ARM: +				ao_lco_set_armed(event.value);  				break; -#endif  			case AO_BUTTON_FIRE:  				if (ao_lco_armed) {  					ao_lco_firing = event.value; @@ -185,6 +187,7 @@ ao_lco_igniter_status(void)  	uint8_t		t = 0;  	for (;;) { +		uint8_t	all_status;  		ao_sleep(&ao_pad_query);  		while (ao_lco_suspended) {  			ao_led_off(AO_LED_GREEN|AO_LED_AMBER|AO_LED_RED|AO_LED_REMOTE_ARM); @@ -192,13 +195,14 @@ ao_lco_igniter_status(void)  				ao_led_off(continuity_led[c]);  			ao_sleep(&ao_lco_suspended);  		} -		PRINTD(DEBUG_STATUS, "RSSI %d VALID %d\n", ao_radio_cmac_rssi, ao_lco_valid); +		PRINTD(DEBUG_STATUS, "RSSI %d VALID %d channels %d arm_status %d\n", +		       ao_radio_cmac_rssi, ao_lco_valid, +		       ao_lco_channels, ao_pad_query.arm_status);  		if (!(ao_lco_valid & AO_LCO_VALID_LAST)) {  			ao_led_on(AO_LED_RED);  			ao_led_off(AO_LED_GREEN|AO_LED_AMBER); -			continue; -		} -		if (ao_radio_cmac_rssi < -90) { +			memset(&ao_pad_query, '\0', sizeof (ao_pad_query)); +		} else if (ao_radio_cmac_rssi < -90) {  			ao_led_on(AO_LED_AMBER);  			ao_led_off(AO_LED_RED|AO_LED_GREEN);  		} else { @@ -210,15 +214,28 @@ ao_lco_igniter_status(void)  		else  			ao_led_off(AO_LED_REMOTE_ARM); +		all_status = AO_PAD_IGNITER_STATUS_NO_IGNITER_RELAY_OPEN; +		for (c = 0; c < 8; c++) { +			if (ao_pad_query.channels & (1 << c)) { +				uint8_t status = ao_pad_query.igniter_status[c]; +				if (status > all_status) +					all_status = status; +				PRINTD(DEBUG_STATUS, "\tchannel %d status %d\n", c, status); +			} +		}  		for (c = 0; c < AO_LED_CONTINUITY_NUM; c++) { -			uint8_t	status; - -			if (ao_pad_query.channels & (1 << c)) -				status = ao_pad_query.igniter_status[c]; -			else -				status = AO_PAD_IGNITER_STATUS_NO_IGNITER_RELAY_OPEN; -			PRINTD(DEBUG_STATUS, "\tchannel %d status %d\n", c, status); -			if (status == AO_PAD_IGNITER_STATUS_GOOD_IGNITER_RELAY_OPEN) +			uint8_t	on = 0; +			if (c == (ao_lco_box - ao_config.pad_box) % AO_LED_CONTINUITY_NUM) { +				switch (all_status) { +				case AO_PAD_IGNITER_STATUS_GOOD_IGNITER_RELAY_OPEN: +					on = 1; +					break; +				case AO_PAD_IGNITER_STATUS_NO_IGNITER_RELAY_CLOSED: +				case AO_PAD_IGNITER_STATUS_UNKNOWN: +					on = t & 1; +				} +			} +			if (on)  				ao_led_on(continuity_led[c]);  			else  				ao_led_off(continuity_led[c]); @@ -254,10 +271,14 @@ ao_lco_monitor(void)  {  	uint16_t		delay; +	ao_config_get(); +	ao_lco_set_box(ao_button_get(AO_BUTTON_BOX));  	ao_add_task(&ao_lco_input_task, ao_lco_input, "lco input");  	ao_add_task(&ao_lco_arm_warn_task, ao_lco_arm_warn, "lco arm warn");  	ao_add_task(&ao_lco_igniter_status_task, ao_lco_igniter_status, "lco igniter status"); +	ao_led_on(~0);  	ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(200)); +	ao_led_off(~0);  	for (;;) {  		while (ao_lco_suspended)  			ao_sleep(&ao_lco_suspended); @@ -270,13 +291,11 @@ ao_lco_monitor(void)  		} else {  			ao_lco_get_channels();  			if (ao_lco_armed) { -				if (ao_lco_selected) { -					PRINTD(DEBUG_STATUS, "Arming pads %x\n", -					       ao_lco_selected); -					if (ao_lco_valid & AO_LCO_VALID_EVER) { -						ao_lco_arm(ao_lco_box, ao_lco_selected, ao_lco_tick_offset); -						ao_delay(AO_MS_TO_TICKS(10)); -					} +				PRINTD(DEBUG_STATUS, "Arming pads %x\n", +				       ao_lco_armed); +				if (ao_lco_valid & AO_LCO_VALID_EVER) { +					ao_lco_arm(ao_lco_box, ao_lco_armed, ao_lco_tick_offset); +					ao_delay(AO_MS_TO_TICKS(10));  				}  			}  		} diff --git a/src/drivers/ao_log_fat.c b/src/drivers/ao_log_fat.c index 45b67012..62e97868 100644 --- a/src/drivers/ao_log_fat.c +++ b/src/drivers/ao_log_fat.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 diff --git a/src/drivers/ao_m25.c b/src/drivers/ao_m25.c index e6c7bb4d..b506b0a7 100644 --- a/src/drivers/ao_m25.c +++ b/src/drivers/ao_m25.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 diff --git a/src/drivers/ao_mma655x.c b/src/drivers/ao_mma655x.c index c36858ad..b9f1709c 100644 --- a/src/drivers/ao_mma655x.c +++ b/src/drivers/ao_mma655x.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 diff --git a/src/drivers/ao_mma655x.h b/src/drivers/ao_mma655x.h index e57e3377..87f7384d 100644 --- a/src/drivers/ao_mma655x.h +++ b/src/drivers/ao_mma655x.h @@ -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 diff --git a/src/drivers/ao_mpu6000.c b/src/drivers/ao_mpu6000.c index c0458027..650407ad 100644 --- a/src/drivers/ao_mpu6000.c +++ b/src/drivers/ao_mpu6000.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 diff --git a/src/drivers/ao_mpu6000.h b/src/drivers/ao_mpu6000.h index dc3a9fbf..ae42d4b4 100644 --- a/src/drivers/ao_mpu6000.h +++ b/src/drivers/ao_mpu6000.h @@ -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 diff --git a/src/drivers/ao_mr25.c b/src/drivers/ao_mr25.c index 53cbf9d7..2d355c9f 100644 --- a/src/drivers/ao_mr25.c +++ b/src/drivers/ao_mr25.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 diff --git a/src/drivers/ao_ms5607.c b/src/drivers/ao_ms5607.c index ef31882e..261df67f 100644 --- a/src/drivers/ao_ms5607.c +++ b/src/drivers/ao_ms5607.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 diff --git a/src/drivers/ao_ms5607.h b/src/drivers/ao_ms5607.h index b58178fd..18f99bf8 100644 --- a/src/drivers/ao_ms5607.h +++ b/src/drivers/ao_ms5607.h @@ -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 diff --git a/src/drivers/ao_ms5607_convert.c b/src/drivers/ao_ms5607_convert.c index 4d412cbe..0e96f60b 100644 --- a/src/drivers/ao_ms5607_convert.c +++ b/src/drivers/ao_ms5607_convert.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 diff --git a/src/drivers/ao_ms5607_convert_8051.c b/src/drivers/ao_ms5607_convert_8051.c index a74086d9..b7081107 100644 --- a/src/drivers/ao_ms5607_convert_8051.c +++ b/src/drivers/ao_ms5607_convert_8051.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 diff --git a/src/drivers/ao_packet.c b/src/drivers/ao_packet.c index 18330ead..008af5db 100644 --- a/src/drivers/ao_packet.c +++ b/src/drivers/ao_packet.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 diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c index 2beda4cb..e63771e5 100644 --- a/src/drivers/ao_packet_master.c +++ b/src/drivers/ao_packet_master.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 diff --git a/src/drivers/ao_packet_slave.c b/src/drivers/ao_packet_slave.c index 0872682f..b877128a 100644 --- a/src/drivers/ao_packet_slave.c +++ b/src/drivers/ao_packet_slave.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 diff --git a/src/drivers/ao_pad.c b/src/drivers/ao_pad.c index 99a90e77..ffa833fe 100644 --- a/src/drivers/ao_pad.c +++ b/src/drivers/ao_pad.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 diff --git a/src/drivers/ao_pad.h b/src/drivers/ao_pad.h index d77d105a..648d3005 100644 --- a/src/drivers/ao_pad.h +++ b/src/drivers/ao_pad.h @@ -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 diff --git a/src/drivers/ao_pca9922.c b/src/drivers/ao_pca9922.c index 6d1b5fae..09f52a0e 100644 --- a/src/drivers/ao_pca9922.c +++ b/src/drivers/ao_pca9922.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 diff --git a/src/drivers/ao_pwm.h b/src/drivers/ao_pwm.h index 2dd2ffd5..1751ebfd 100644 --- a/src/drivers/ao_pwm.h +++ b/src/drivers/ao_pwm.h @@ -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 diff --git a/src/drivers/ao_pyro_slave.c b/src/drivers/ao_pyro_slave.c index f07c2cba..a293d929 100644 --- a/src/drivers/ao_pyro_slave.c +++ b/src/drivers/ao_pyro_slave.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 diff --git a/src/drivers/ao_quadrature.c b/src/drivers/ao_quadrature.c index 0cdcc9fb..deecfb79 100644 --- a/src/drivers/ao_quadrature.c +++ b/src/drivers/ao_quadrature.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 diff --git a/src/drivers/ao_quadrature.h b/src/drivers/ao_quadrature.h index d7dda682..a99e4cc5 100644 --- a/src/drivers/ao_quadrature.h +++ b/src/drivers/ao_quadrature.h @@ -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 diff --git a/src/drivers/ao_radio_master.c b/src/drivers/ao_radio_master.c index 128fcf32..79e4b22b 100644 --- a/src/drivers/ao_radio_master.c +++ b/src/drivers/ao_radio_master.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 diff --git a/src/drivers/ao_radio_slave.c b/src/drivers/ao_radio_slave.c index 9a0612e5..2f1dab29 100644 --- a/src/drivers/ao_radio_slave.c +++ b/src/drivers/ao_radio_slave.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 diff --git a/src/drivers/ao_radio_spi.h b/src/drivers/ao_radio_spi.h index 2957f70d..9dccdd29 100644 --- a/src/drivers/ao_radio_spi.h +++ b/src/drivers/ao_radio_spi.h @@ -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 diff --git a/src/drivers/ao_rfpa0133.c b/src/drivers/ao_rfpa0133.c index a98e261a..7ef32ef3 100644 --- a/src/drivers/ao_rfpa0133.c +++ b/src/drivers/ao_rfpa0133.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 diff --git a/src/drivers/ao_rfpa0133.h b/src/drivers/ao_rfpa0133.h index 2ba7f699..793cdf76 100644 --- a/src/drivers/ao_rfpa0133.h +++ b/src/drivers/ao_rfpa0133.h @@ -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 diff --git a/src/drivers/ao_science_slave.c b/src/drivers/ao_science_slave.c index 996e98d9..775318f9 100644 --- a/src/drivers/ao_science_slave.c +++ b/src/drivers/ao_science_slave.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 diff --git a/src/drivers/ao_sdcard.c b/src/drivers/ao_sdcard.c index 47188ef3..4b17c5e3 100644 --- a/src/drivers/ao_sdcard.c +++ b/src/drivers/ao_sdcard.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 diff --git a/src/drivers/ao_sdcard.h b/src/drivers/ao_sdcard.h index 50b70c73..8f794efc 100644 --- a/src/drivers/ao_sdcard.h +++ b/src/drivers/ao_sdcard.h @@ -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 diff --git a/src/drivers/ao_servo.c b/src/drivers/ao_servo.c index b48a4112..78978e3e 100644 --- a/src/drivers/ao_servo.c +++ b/src/drivers/ao_servo.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 diff --git a/src/drivers/ao_servo.h b/src/drivers/ao_servo.h index e1df347a..23059c44 100644 --- a/src/drivers/ao_servo.h +++ b/src/drivers/ao_servo.h @@ -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 diff --git a/src/drivers/ao_seven_segment.c b/src/drivers/ao_seven_segment.c index f1339ee5..d2e1248f 100644 --- a/src/drivers/ao_seven_segment.c +++ b/src/drivers/ao_seven_segment.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 diff --git a/src/drivers/ao_seven_segment.h b/src/drivers/ao_seven_segment.h index f997f3b5..bdac98c7 100644 --- a/src/drivers/ao_seven_segment.h +++ b/src/drivers/ao_seven_segment.h @@ -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 diff --git a/src/drivers/ao_trng.c b/src/drivers/ao_trng.c index e69cd30b..d89cc81a 100644 --- a/src/drivers/ao_trng.c +++ b/src/drivers/ao_trng.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 diff --git a/src/drivers/ao_trng.h b/src/drivers/ao_trng.h index 78577428..307a20fd 100644 --- a/src/drivers/ao_trng.h +++ b/src/drivers/ao_trng.h @@ -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 diff --git a/src/drivers/ao_trng_send.c b/src/drivers/ao_trng_send.c index 4ac6ee5e..85034efd 100644 --- a/src/drivers/ao_trng_send.c +++ b/src/drivers/ao_trng_send.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 @@ -96,18 +97,7 @@ ao_trng_send_raw(void)  #endif -/* Make sure there's at least 8 bits of variance in the samples */ -#define MIN_VARIANCE		(128 * 128) - -/* Make sure the signal is spread around a bit */ -#define MAX_VARIANCE		(512 * 512) - -#define ADD_STATS(value) do {			\ -		sum += (value);			\ -		sum2 += (value) * (value);	\ -	} while(0) - -#define VARIANCE(n)	((sum2 - (sum / (n) * sum)) / (n)) +static uint32_t	previous[AO_USB_IN_SIZE / sizeof (uint16_t)];  static int  ao_trng_get_cooked(uint16_t *buf) @@ -115,29 +105,24 @@ ao_trng_get_cooked(uint16_t *buf)  	uint16_t	i;  	uint16_t	t;  	uint32_t	*rnd = (uint32_t *) ao_adc_ring; -	int32_t 	sum, sum2, var; +	uint8_t		mismatch = 0; -	sum = sum2 = 0;  	t = ao_adc_get(AO_USB_IN_SIZE) >> 1;		/* one 16-bit value per output byte */  	for (i = 0; i < AO_USB_IN_SIZE / sizeof (uint16_t); i++) {  		uint32_t	v; -		uint16_t	v1, v2;  		/* Fetch two values in one operation */  		v = rnd[t]; +		if (v != previous[i]) { +			mismatch = 1; +			previous[i] = v; +		}  		t = (t + 1) & ((AO_ADC_RING_SIZE >> 1) - 1);  		*buf++ = ao_crc_in_32_out_16(v); - -		v1 = v; -		v2 = v >> 16; - -		ADD_STATS(v1); -		ADD_STATS(v2);  	}  	ao_adc_ack(AO_USB_IN_SIZE); -	var = VARIANCE(2 * AO_USB_IN_SIZE / sizeof (uint16_t)); -	return var >= MIN_VARIANCE && var <= MAX_VARIANCE; +	return mismatch;  }  #define AO_TRNG_START_WAIT	1024 diff --git a/src/drivers/ao_trng_send.h b/src/drivers/ao_trng_send.h index 83312d59..4a41637f 100644 --- a/src/drivers/ao_trng_send.h +++ b/src/drivers/ao_trng_send.h @@ -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 diff --git a/src/drivers/ao_watchdog.c b/src/drivers/ao_watchdog.c index 096a5564..1a877fcb 100644 --- a/src/drivers/ao_watchdog.c +++ b/src/drivers/ao_watchdog.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 diff --git a/src/drivers/ao_watchdog.h b/src/drivers/ao_watchdog.h index 73e1559d..e40475f6 100644 --- a/src/drivers/ao_watchdog.h +++ b/src/drivers/ao_watchdog.h @@ -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 | 
